循环与布尔值
来源:互联网 发布:杭州圆周率网络 编辑:程序博客网 时间:2024/04/30 23:13
基础
代码块以冒号开始,并且缩进相同的代码属于同一代码块。因此,if等表达式后需要跟一个冒号。
逻辑运算
True:真。非零与非空的变量都是真。
False:假。0、None或者空的量都是False。如
a={"dict":1}a.clear()if a: print(a)else: print("else")
如果将a.clear()不注释掉,则输出的是else,也就是说if a的判断为False。如果注释则if a:就是True。
and:与。
or:或。
not:非。
if
与别的语言中的if表达式完全一致,除了判断语句后面需要跟一个冒号外。
elif:等同于java中else if。
for
for xx in xxxx:——for与in关键字结合。
结合着字典的items()方法,可以通过一个for循环将它的Key,value都取出来。如下:
>>> a={"aba":1213,"cfe":4324}>>> for k,v in a.items():... print(k)... print(v)... aba1213cfe4324这是因为a.items()返回的是一个列表,其中的元素又都是一个元组。for循环首先取出列表中的每一个元素,而元组又可以通过k,v=()进行分解,所以for k,v in {}是可以一次性将字典的key,value值都取出来的。
与else结合
当for循环正常结束时,会执行else操作;当for循环不正常结束时,不会执行else。如:
a = {34: "value1", 12: 4234}for k, v in a.items(): print(k, " = ", v) if k == 12: breakelse: print("ending")当没有if判断块时,会执行else语句块;但加上if判断块后,就不会执行,因为for循环不是正常结束的,是被break打断的。
与java不同的用法
1,for循环中的变量可以直接用于生成列表,如:
L = [d for d in range(11)]print(L) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]2,也可直接使用d进行操作。如:
L = [d**2 for d in range(11)] # 直接求取d的平方print(L) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
当然,也可将d**2换成一个函数。如下:
def test(m, n): return (m*2)+","+nL = [test(m, n) for m in 'xyz' for n in 'abc'] # 直接使用循环变量m,n,并将函数返回值当作列表元素print(L) # ['xx,a', 'xx,b', 'xx,c', 'yy,a', 'yy,b', 'yy,c', 'zz,a', 'zz,b', 'zz,c']
3,for循环后可跟if判断,这样只有满足判断条件的变量才会被使用,如:
L = [d**2 for d in range(11) if d % 2 == 0] # 求取偶数的平方print(L) # [0, 4, 16, 36, 64, 100]4,for循环后可直接跟for循环。如:
L = [m+","+n for m in 'xyz' for n in 'abc'] # for循环后跟另一个循环,直接使用循环中的变量print(L) # ['x,a', 'x,b', 'x,c', 'y,a', 'y,b', 'y,c', 'z,a', 'z,b', 'z,c']从上面生成的列表中可以看出一共生成了9个元素,而且它的生成效果与下面代码的效果一样:
for m in 'xyz': for n in 'abc': l.append(m+","+n)因此,for循环后跟for循环只是能java中for循环嵌套的简化写法。按此种写法可以写多个for循环。并且按照此思路,for后面跟的if判断也可以跟多个。如:
L = [a+b for a in range(5) for b in range(5, 8) if b % 2 == 0 if a % 2 != 0]print(L) # [7, 9]
第一个if判断决定了b只能是偶数,所以b=6;第二个if判断决定了a为奇数,所以a为1,3,故返回的元素只有7和9。
记住:for循环后跟for循环,只是对java中for循环嵌套的简写;for循环后跟if判断也是对java中for循环中嵌套if的简写。
0 0
- 循环与布尔值
- if 语句与布尔值
- if 语句与布尔值
- 布尔变量与零值比较
- 布尔值
- Python基础入门(十)- 布尔类型条件判断与循环
- 布尔代数与编码
- 布尔,整形,浮点,指针与零值比较
- Gson 布尔值bool与整形int相互转化
- Javascript Boolean对象与布尔值之间的差异
- C语言速成手册(二):布尔值、条件判断、循环
- 布尔代数与网页搜索
- 法布尔与昆虫记
- [随笔]布尔代数与计算机
- 布尔转数值
- python中的布尔值
- PHP 布尔值
- C++ 布尔值用法
- 对软件架构设计的一些总结和理解
- linux上udev的配置(转载)
- 科目三考试训练大纲
- python中的赋值、浅拷贝、深拷贝
- 文章标题 Gym 100971K : Palindromization
- 循环与布尔值
- storm drpc远程调用
- Unix / Linux 线程的实质
- HDU 2097 Sky数
- PLSQL学习——数据类型
- 斐波那契数列
- Android使用GSON和FASTJSON解析服务器返回的JSON数据
- VSCode python环境运行搭建
- Spring4深入理解IOC&DI02----Bean配置--自动装配、bean之间的继承与依赖、使用外部属性文件