Python初学小知识(二):分支、循环
C语言和Python经常弄混,尤其总是忍不住给Python后面加分号……干脆给自己做个笔记省的忘了。。。(小甲鱼那边的)
六、分支、循环
1. if … elif … elif … (else) …
2. 一种不常用的
条件成立时执行的语句 if condition else 条件不成立时执行的语句:
>>>age = 16
>>>if age < 18:
print("no")
else:
print("yes")
no
改为:
>>>age = 16
>>>print("no") if age < 18 else print("yes")
no
优势是将四行语句转换成了一行:
#分数分级
>>> score = 66
>>> level = ("D" if 0 <= score < 60 else
"C" if 60 <= score < 80 else
"B" if 80 <= score < 90 else
"A" if 90 <= score < 100 else
"S" if score == 100 else
'请输入0~100之间的分值')
>>> print(level)
C
3. break与continue
break退出循环体,再也不会回来;continue跳出本轮循环,之后还会再回来。else同样可以用在循环中:
i = 1
while i < 5:
print("循环内的i是:",i)
i += 1
else:
print("循环外的i是:",i)
当循环内的条件不为真时,执行else语句;若使用break语句,循环内的条件依旧为真,else语句不执行。else语句可以非常方便地检测循环体的退出情况:
#7天坚持学习打卡小程序
day = 1
while day <= 7:
answer = input("今天有好好学习吗?")
if answer == "有":
day += 1
else:
print("你已经连续学习了",day-1,"天")
print("你第",day,"天没有好好学习")
break
else:
print("你已经学习了7天")
'''
结果:
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?没有
你已经连续学习了 3 天
你第 4 天没有好好学习'''
4. 循环的嵌套
#打印九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print(j,'×',i,'=',j*i,end=' ') #end=' '的作用是使print打印出的为横排
j += 1
else:
print() #起到换行的作用,如果用'\n',会空一行
i += 1
'''结果:
1 × 1 = 1
1 × 2 = 2 2 × 2 = 4
1 × 3 = 3 2 × 3 = 6 3 × 3 = 9
1 × 4 = 4 2 × 4 = 8 3 × 4 = 12 4 × 4 = 16
1 × 5 = 5 2 × 5 = 10 3 × 5 = 15 4 × 5 = 20 5 × 5 = 25
1 × 6 = 6 2 × 6 = 12 3 × 6 = 18 4 × 6 = 24 5 × 6 = 30 6 × 6 = 36
1 × 7 = 7 2 × 7 = 14 3 × 7 = 21 4 × 7 = 28 5 × 7 = 35 6 × 7 = 42 7 × 7 = 49
1 × 8 = 8 2 × 8 = 16 3 × 8 = 24 4 × 8 = 32 5 × 8 = 40 6 × 8 = 48 7 × 8 = 56 8 × 8 = 64
1 × 9 = 9 2 × 9 = 18 3 × 9 = 27 4 × 9 = 36 5 × 9 = 45 6 × 9 = 54 7 × 9 = 63 8 × 9 = 72 9 × 9 = 81
'''
5. for循环
for i in "abcd":
print(i)
a
b
c
d
错误用法:
>>> sum = 0
>>> for i in 100:
sum += i
Traceback (most recent call last):
File "<pyshell#47>", line 1, in <module>
for i in 100:
TypeError: 'int' object is not iterable
100并不是可迭代序列,这里使用range:
>>> for i in range(4): #从0到4-1的整数序列
print(i)
0
1
2
3
>>> for i in range(1,4): #从1到4-1的整数序列
print(i)
1
2
3
>>> for i in range(5,10,2):
print(i)
5
7
9
>>> for i in range(10,5,-2):
print(i)
10
8
6