1、条件判断语句
条件判断语句(if语句)
• 执行的流程:
• if语句在执行时,会先对条件表达式进行求值判断,
• 如果为True,则执行if后的语句
• 如果为False,则不执行
• 语法:if 条件表达式 :
代码块
• 代码块中保存着一组代码,可以使得一段python代码作为一个单元、一个整体执行。
• 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
• 代码块就是一种为代码分组的机制
input() 函数
• 该函数用来获取用户的输入
• input()调用后,程序会立即暂停,等待用户输入
• 用户输入完内容以后,点击回车程序才会继续向下执行
• 用户输入完成以后,其所输入的的内容会以字符串形式返回
为什么input输入的数据不能int类型做比较运算符的计算?
input函数输入的数据都是属于str类型,str类型的数据是不能和int类型的数据进行比较的,需要使用int()函数转化str数据才能进行比较
if-else语句(只有两种情况)
• 语法:
if 条件表达式 :
代码块
else :
• 执行流程:
• if-else语句在执行时,先对if后的条件表达式进行求值判断
• 如果为True,则执行if后的代码块
• 如果为False,则执行else后的代码块)
if-elif-else 语句(多种情况)
value = input('请输入你的工资:')
if value >= 30000:
print('有钱任性')
elif value >= 20000:
print('有钱真好')
elif value >= 10000:
print('哥也月薪上万了')
elif value >= 5000:
print('工资还说的过去')
elif value >= 2000:
print('能养活自己了')
else:
print('穷到吃土了')
• 语法:
if 条件表达式 :
代码块
elif 条件表达式 :
代码块
elif 条件表达式 :
代码块
…
else :
• 执行流程:
• if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
• 如果表达式的结果为True,则执行当前代码块,然后语句结束
• 如果表达式的结果为False,则继续向下判断,直到找到True为止
• 如果所有的表达式都是False,则执行else后的代码块
• 总结: if-elif-else中只会有一个代码块会执行
2、循环控制
• 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
while语句
• 语法:
while 条件表达式 :
代码块
else:
代码块
break和continue
• break 可以用来立即退出循环语句,包括else语句
• continue 用来跳过当次循环
for语句
• 通过for循环来遍历序列中的元素
语法
for 变量 in 序列(遍历的规则):
代码块
• 注意: 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)
循环嵌套
• Python 语言允许在一个循环体里面嵌入另一个循环。
while 表达式:
while 表达式:
代码块
代码块
for 变量 in 循环规则:
for 变量 in 循环规则:
代码块
代码块
小练习
- 求1000以内所有的水仙花数(水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153))
# while语句实现
list1=[]
i=100
while 999>=i>=100:
str1=str(i)
if int(str1[0])**3+int(str1[1])**3+int(str1[2])**3 == i :
list1.append(i)
i+=1
print('1000以内的水仙花数有{}'.format(list1))
# for 语句实现
list1=[]
for i in range(100,1000):
str1=str(i)
if int(str1[0])**3+int(str1[1])**3+int(str1[2])**3 == i :
list1.append(i)
print('1000以内的水仙花数有{}'.format(list1))
- 获取用户输入的任意数,判断其是否是质数?(质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。)
# for语句
num = int(input('请输入一个数字:'))
if num > 1:
for i in range(2,num-1):
if num % i == 0:
print('{}不是质数'.format(num))
break
else:
continue
else:
print('{}是质数'.format(num))
# while 语句
num = int(input('请输入一个数字:'))
if num > 1:
i=2
while i < num-1:
if num % i == 0:
print('{}不是质数'.format(num))
break
else:
i+=1
continue
else:
print('{}是质数'.format(num))
- 猜拳游戏:
• 出拳 玩家:手动输入 电脑:随机输入
• 判断输赢: 玩家获胜 电脑获胜 平局
import random
list1=['石头','剪刀','布']
player=input('请输入你的选择:')
computer=random.choice(list1)
if player == computer:
print('平局')
elif player == '石头' and computer == '剪刀' or player == '剪刀' and computer == '布' or player == '布' and computer == '石头':
print('玩家获胜')
else:
print('电脑获胜')