条件判断语句
• 执行的流程:
• if语句在执行时,会先对条件表达式进行求值判断,
• 如果为True,则执行if后的语句
• 如果为False,则不执行
• 语法:
if 条件表达式::
代码块
• 代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
• 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
• 代码块就是一种为代码分组的机制
input() 函数
• 该函数用来获取用户的输入
• input()调用后,程序会立即暂停,等待用户输入
• 用户输入完内容以后,点击回车程序才会继续向下执行
• 用户输入完成以后,其所输入的的内容会以返回值得形式返回
if-else语句
• 语法:
if 条件表达式 :
代码块1
else :
代码块2
• 执行流程:
• if-else语句在执行时,先对if后的条件表达式进行求值判断
• 如果为True,则执行if后的代码块1
• 如果为False,则执行else后的代码块2
if-elif-else 语句
• 语法
if 条件表达式 :
代码块1
elif 条件表达式 :
代码块2
elif 条件表达式 :
代码块3
........
else :
代码块n
• 示例
value = 30000
if value >= 30000:
print('有钱任性')
elif value >= 20000:
print('有钱真好')
elif value >= 10000:
print('哥也月薪上万了')
elif value >= 5000:
print('工资还说的过去')
elif value >= 2000:
print('能养活自己了')
• 执行流程:
• if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
• 如果表达式的结果为True,则执行当前代码块1,然后语句结束
• 如果表达式的结果为False,则继续向下判断,直到找到True为止
• 如果所有的表达式都是False,则执行else后的代码块n
• 总结: if-elif-else中只会有一个代码块会执行
循环控制
while语句
• 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
• 语法:
while 条件表达式 :
代码块1
else:
代码块2
• break和continue
• break 可以用来立即退出循环语句,包括else语句
• continue 用来跳过当次循环
• 示例代码1:
#100以内的数求和
i=1
Total=0
while i<=100:
Total+=+i
i+=1
print(Total)
• 结果:
5050
• 示例代码2:
i=0
while i<5:
i+= 1
print('*'*i)
• 结果:
*
**
***
****
*****
• 示例代码3:
# 九九乘法表
i=0
while i<9:
i+=1
j=0
while j<i:
j+=1
print(f'{i}X{j}={i*j}',end='\t')
print()
• 结果:
1X1=1
2X1=2 2X2=4
3X1=3 3X2=6 3X3=9
4X1=4 4X2=8 4X3=12 4X4=16
5X1=5 5X2=10 5X3=15 5X4=20 5X5=25
6X1=6 6X2=12 6X3=18 6X4=24 6X5=30 6X6=36
7X1=7 7X2=14 7X3=21 7X4=28 7X5=35 7X6=42 7X7=49
8X1=8 8X2=16 8X3=24 8X4=32 8X5=40 8X6=48 8X7=56 8X8=64
9X1=9 9X2=18 9X3=27 9X4=36 9X5=45 9X6=54 9X7=63 9X8=72 9X9=81
• 示例代码4:continue的使用
i=0
while i<10:
i += 1
if i==3:
continue #continue中断此次循环,跳到循环开始位置,所以要提前自增变量,否则死循环
print(i)
• 结果:3未输出
1
2
4
5
6
7
8
9
10
• 示例代码5:break使用
i=0
while i<10:
i += 1
if i==3:
break #break中止循环
print(i)
• 结果:从3循环中止
1
2
for循环遍历
• for循环
• 通过for循环来遍历列表
• 语法1
for 变量 in 序列 #(遍历的规则):
代码块
• 语法2:else中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行
for 变量 in 序列 #(遍历的规则):
代码块1
else:
代码块2
• 注意: for循环的代码块会执行多次,序列中有几个元素就会执行几次。每执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的元素
range(start, stop[, step])
参数说明
• 左闭右开
• start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
• stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
• step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
• 示例代码6:对比示例2,语句更少。
for i in range(1,6):
print('*'*i)
• 结果:
*
**
***
****
*****
• 示例代码7:
#100以内的质数
n=100
list=[2]
for i in range(2,n):
if i%2!=0: #偶数不是质数
for j in range(2,i):
if i%j==0 :
break
else:
list.append(i)
for l in list:
print(l,end=',')
print(f'\n{n}以内的质数有{len(list)}个')
• 结果:
2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,
100以内的质数有25个
• 示例代码6:
# 求1000以内所有的水仙花数
# 某三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。
for i in range(1,10):
for j in range(0,10):
for k in range(0,10):
if i**3+j**3+k**3==i*100+j*10+k:
print(i*100+j*10+k)
• 结果:
153
370
371
407
• 示例代码7:综合使用while\for\if\break\continue等知识点
# 猜拳游戏:
# • 出拳 玩家:手动输入 电脑:随机输入
# • 判断输赢: 玩家获胜 电脑获胜 平局
import random #引入随机数包
while True:
myInput = int(float(input('请出拳1(石头)2(剪刀)3(布)0(停止游戏):')))
npcInput = random.randint(1, 3)
dic={1:'石头',2:'剪刀',3:'布'}
if myInput > 3:
print('输入错误,请重新输入!!\n')
continue #退出本次循环,进入下一次循环
if myInput == 0:
print(f'游戏停止!')
break #终止循环
elif myInput == npcInput:
print(f'你是{dic[myInput]},',end='')
print(f'对方是{dic[npcInput]},平局!\n')
elif myInput == 3 and npcInput == 1: #3(布)赢1(石头)
print(f'你是{dic[myInput]},',end='')
print(f'对方是{dic[npcInput]},你赢了!\n')
elif myInput == 1 and npcInput == 3: #3(布)赢1(石头)
print(f'你是{dic[myInput]},',end='')
print(f'对方是{dic[npcInput]},你输了!\n')
elif myInput > npcInput: #谁小谁赢
print(f'你是{dic[myInput]},',end='')
print(f'对方是{dic[npcInput]},你输了!\n')
else:
print(f'你是{dic[myInput]},',end='')
print(f'对方是{dic[npcInput]},你赢了!\n')
• 结果:
请出拳1(石头)2(剪刀)3(布)0(停止游戏):>? 1
你是石头,对方是剪刀,你赢了!
请出拳1(石头)2(剪刀)3(布)0(停止游戏):>? 2
你是剪刀,对方是石头,你输了!
请出拳1(石头)2(剪刀)3(布)0(停止游戏):>? 3
你是布,对方是剪刀,你输了!
请出拳1(石头)2(剪刀)3(布)0(停止游戏):>? 4
输入错误,请重新输入!!
请出拳1(石头)2(剪刀)3(布)0(停止游戏):>? 0
游戏停止!
补充知识点:
•随机数模块:random
import random
print( random.randint(1,10) ) # 产生 1 到 10 的一个整数型随机数
print( random.random() ) # 产生 0 到 1 之间的随机浮点数
print( random.uniform(1.1,5.4) ) # 产生 1.1 到 5.4 之间的随机浮点数,区间可以不是整数
print( random.choice('tomorrow') ) # 从序列中随机选取一个元素
print( random.randrange(1,100,2) ) # 生成从1到100的间隔为2的随机整数
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print('源列表:\t\t',list)
random.shuffle(list) # 打乱排序,无返回值
print('随机新列表:\t',list)
print random.sample('zyxwvutsrqponmlkjihgfedcba',5)# 多个字符中生成指定数量的随机字符:
• 结果:
2
0.2648661614446267
3.7243855310150646
r
73
源列表: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
随机新列表: [6, 3, 1, 2, 4, 5, 9, 0, 7, 8]
['j', 'p', 'm', 'y', 'a']