条件判断
条件判断语句(if语句)
- 执行的流程:
- if语句在执行时,会先对条件表达式进行求值判断,
- 如果为True,则执行if后的语句
- 如果为False,则不执行
- 语法:if 条件表达式 :
代码块 - GIF演示:
a = int(input('请输入012三个数字:'))
if a == 0:
print(1111)
if a == 1:
print('hahaha')
if a == 2:
print(666)
- 代码块代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
- 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
- 代码块就是一种为代码分组的机制
input() 函数
- 该函数用来获取用户的输入
- input()调用后,程序会立即暂停,等待用户输入
- 用户输入完内容以后,点击回车程序才会继续向下执行
- 用户输入完成以后,其所输入的的内容会以返回值得形式返回(str类型数据)
a = input('请输入012三个数字:')
print(type(a))
><class 'str'>
a = int(input('请输入012三个数字:')) # int()讲字符串强制转换为int类型 str()同理 float()同理
print(type(a))
><class 'int'> #执行结果
if a == 0:
print(1111)
if a == 1:
print('hahaha')
if a == 2:
print(666)
if-else语句
- 语法:
if 条件表达式 :
代码块
else :
代码块 - 执行流程:
- if-else语句在执行时,先对if后的条件表达式进行求值判断
- 如果为True,则执行if后的代码块
- 如果为False,则执行else后的代码块
a = int(input('请输入012三个数字:'))
print(type(a))
if a == 0:
print(1111)
else:
print(2222)
if-elif-else 语句
- 语法:
- if 条件表达式 :
- 代码块
- elif 条件表达式 :
- 代码块
- elif 条件表达式 :
- 代码块
- else :
- 代码块
- if 条件表达式 :
- 执行流程:
- if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断
- 如果表达式的结果为True,则执行当前代码块,然后语句结束
- 如果表达式的结果为False,则继续向下判断,直到找到True为止
- 如果所有的表达式都是False,则执行else后的代码块
- 总结: if-elif-else中只会有一个代码块会执行
value = 15000
if value >= 30000:
print('有钱任性')
elif value >= 20000:
print('有钱真好')
elif value >= 10000:
print('哥也月薪上万了')
elif value >= 5000:
print('工资还说的过去')
elif value >= 2000:
print('能养活自己了')
else:
print('吃土去吧!')
- 从上往下顺序执行如果输入值满足其中一个则不会执行下面的语句
value = 15000
if value >= 30000:
print('有钱任性')
elif value >= 10000:
print('哥也月薪上万了')# 判断后value满足此条件不继续执行
elif value >= 20000:
print('有钱真好')
elif value >= 5000:
print('工资还说的过去')
elif value >= 2000:
print('能养活自己了')
else:
print('吃土去吧!')
- 可以加强语句的严谨性
value = 15000
if value >= 30000:
print('有钱任性')
elif value >= 10000 and value < 20000:
print('哥也月薪上万了')
elif value >= 20000 and value < 30000:
print('有钱真好')
elif value >= 5000 and value < 10000:
print('工资还说的过去')
elif value >= 2000 and value < 5000:
print('能养活自己了')
else:
print('吃土去吧!')
循环控制
while语句
- 环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
- 语法:
while 条件表达式 :
代码块
else:
代码块 - GIF演示:
- 同样需要注意冒号和缩进。
以下实例使用了 while 来计算 1 到 100 的总和:
n = 100
sum = 0
counter = 1
while counter <= n:
sum = sum + counter
counter += 1
print("1 到 %d 之和为: %d" % (n,sum))
执行结果为
1 到 100 之和为: 5050
无限循环
- 我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下:
var = 1
while var == 1 : # 表达式永远为 true
num = int(input("输入一个数字 :"))
print ("你输入的数字是: ", num)
print ("Good bye!")
- 以上脚本的输出结果:
输入一个数字 :5
你输入的数字是: 5
输入一个数字 :
- 无限循环在服务器上客户端的实时请求非常有用。
while 循环使用 else 语句
-
在 while … else 在条件语句为 false 时执行 else 的语句块。
- 语法格式如下:
while <expr>:
<statement(s)>
else:
<additional_statement(s)>
- 循环输出数字,并判断大小
count = 0
while count < 5:
print (count, " 小于 5")
count = count + 1
else:
print (count, " 大于或等于 5")
输出结果:
0 小于 5
1 小于 5
2 小于 5
3 小于 5
4 小于 5
5 大于或等于 5
Practise
- 打印99乘法表.
a = 1
while a < 10:
c = 1
while c < 1 + a:
print('%s * %s = %s' % (c, a, c*a), end='\t')
c += 1
a += 1
print('\n')
- 求 1000 以内的水仙花数
i = 99
while i < 1000:
i += 1
c = str(i)
if int(c[0])**3 + int(c[1])**3 + int(c[2])**3 == int(i):
print(i)
- 获取用户输入的任意数,判断是否是质数 ?
num = int(input('请输入您任意整数:'))
if num ==2 or num == 3 or num == 5 or num == 7:
print('输入的是质数')
elif num % 2 == 0 or num % 3 == 0 or num % 5 == 0 or num % 7 == 0:
print('输入的不是质数')
elif num == 0:
print('输入的不是质数')
else:
print('输入的是质数')
- 猜拳游戏:
- 出拳 玩家: 手动输入 电脑:随机输入
- 判断输赢:玩家获胜 电脑胜 平局
import random
player = input("请输入要出的选项:剪刀(1)/石头(2)/布(3):")
if player.isdigit() and int(player) >= 1 and int(player) <= 3:
player = int(player)
cpu = random.randint(1, 3)
if player == 1:
player1 = "剪刀"
if player == 2:
player1 = "石头"
if player == 3:
player1 = "布"
if cpu == 1:
cpu1 = "剪刀"
if cpu == 2:
cpu1 = "石头"
if cpu == 3:
cpu1 = "布"
print("玩家出拳为:", player1, "电脑出拳为:", cpu1)
if (player == 1 and cpu == 3) or (player == 2 and cpu == 1) or (player == 3 and cpu == 2):
print("玩家胜利")
if (player == 1 and cpu == 2) or (player == 2 and cpu == 3) or (player == 3 and cpu == 1):
print("电脑胜利")
if (player == 1 and cpu == 1) or (player == 2 and cpu == 2) or (player == 3 and cpu == 3):
print("平局")
else:
print("出拳有误")