- 条件分支
- 循环
if 表达式:
执行
我们知道表达式的值为False时,if代码块不会执行,相反为True则会执行,那么怎么确定表达式的值?
在python中,如果一个值的预定义是常量False,数字0,特殊对象None,空序列(如空的字符串或者空列表),空集合,该值的计算结果就是为False,相反为True.
来一段简单的代码:
x = 5
if x>0:
print(x)
else:
print(0)
可以看到需要注意的是一下几点:
if x>0:
pass #什么都不做
pass如语义所示,什么都不做,它的存在只是代表着一种语义性
以下我们都是以一段代码以及讲解的方式列出,这样理解会更好。
if x >0 :pass
如果只是一个简单语句,我们可以将其放在一行
x = 5
if 0 <= x <= 10:
print(x)
输出:5
比较运算符可以这么使用,这也是与java语言的不同之处
x = 5
if 0=and x>=10:
print(x);
输出:5
这段代码和上述的意思是一样的,但是推荐使用第一个,x出现一次而不是两次,易于维护
x = 59
if x <10:
print('small')
elif x <100:
print("medium")
else:
print("huge")
输出:medium
python中没有switch语句,因此我们只能这么做
x = 6
print('x>=0') if(x>=0) else print('x<0')
输出x>=0
# 格式:trueResult if expression else falseResult
条件表达式,相当于java中的三元运算符,只是格式有点怪.if语句如果执行成功,则执行trueResult,失败falseResult
count = 3
while count != 0:
print(count,end='')
count -= 1
#输出:321
这里使用end=” 可以将数据输入到一行
count = 3
while count != 0:
print(count,end='')
if count == 2:
break
count -= 1
输出:32
当满足条件的时候,用break语句控制循环的退出
count = 3
while count != 0:
print(count,end='')
count -= 1
else:
print('循环完毕!')
输出:321循环完毕!
--------------------------------------------------
count = 3
while count != 0:
print(count,end='')
if count == 2:
break
count -= 1
else:
print('循环完毕!')
输出:32
else可以用在循环中是个非常神奇的东西,如果循环执行完便会执行else中的代码,如果break了,那么else便不会执行
for variable in iterable:
代码块1
else:
代码块2
for循环在很多情况下很实用,例如知道遍历的次数
else的工作方式与while相同,也就是说循环完成就会执行。iterable是可遍历的对象,如字符串,一个元组,一个列表,一个字典,或者一个迭代器,如果是字典,遍历的是字典的键。
for char in "helloworld":
print(char,end = ord(char) )
输出:h e l l o w o r l d
可见,遍历字符串,就是遍历字符串中的每个字符
for i in range(10):
print(i,end= ' ')
输出:0 1 2 3 4 5 6 7 8 9
range内置函数会返回一个整数列表
presidents = dict(Washingtom=(1789,1897),Adams=(1797,1801),Jefferson=(1801,1809),Madison = (1809,1817))
for key in presidents:
print("%s:%d-%d"%(key,presidents[key][0],presidents[key][1]))
输出:
Adams:1797-1801
Jefferson:1801-1809
Madison:1809-1817
Washingtom:1789-1897
如果是遍历字典,我们不需要keys()方法来获取字典的各个键,上述的输出不一定是这个顺序,因为字典的键是无序的。
presidents = dict(Washingtom=(1789,1897),Adams=(1797,1801),
Jefferson=(1801,1809),Madison = (1809,1817))
for item in presidents.items():
print("%s:%d-%d" % (item[0], item[1][0], item[1][1]));
输出的结果和上面的一致,item是一个tuple,遍历第一个的值为(‘Washingtom’,(1789,1897)),因此item[0]的值就是Washingtom.
presidents = dict(Washingtom=(1789,1897),Adams=(1797,1801),
Jefferson=(1801,1809),Madison = (1809,1817))
for key in sorted(presidents):
print("%s:%d-%d" % (key, presidents[key][0], presidents[key][1]))
输出:
Adams:1797-1801
Jefferson:1801-1809
Madison:1809-1817
Washingtom:1789-1897
如果想要按次序的输出,那么可以用sorted()函数字典排序,而实际上,sorted()函数是对字典的键进行排序.上面的代码也等价于:
keys = presidents.keys();
sorted(keys)
for key in keys:
print("%s:%d-%d" % (key, presidents[key][0], presidents[key][1]))
输出:
Adams:1797-1801
Madison:1809-1817
Washingtom:1789-1897
Jefferson:1801-1809
for x in range(-5,6):
if x == 0:
continue
print(1.0/x)
continue x == 0 的时候跳出循环,这样就不会造成除0的异常。
总结:
1,python的条件分支if,:是语法的一部分,pass代表一种什么也不做的语义性,按照python的风格,缩进是4个空格。
2,循环的两种方式:while和for,并且它们两者都有else,即是在循环正常执行完毕的时候才会执行,如果遇到break跳出循环,else是不会执行的。
3,continue 可以跳出本层的循环
4,range()生成一个列表,我们可以方便的使用它来控制遍历的次数
5,如何遍历一个字典,因为字典的键是无序的,那么可以使用sorted()函数来有序的遍历它。
6,print(x,end=”“) end可以控制输出变量的末尾值