Python基础——条件控制语句
1.条件判断语句(if语句)
- 执行的流程:
- if语句在执行时,会先对条件表达式进行求值判断,
- 如果为True,则执行if后的语句
- 如果为False,则不执行
- 语法:if 条件表达式 :
代码块 - 代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行
- 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
- 代码块就是一种为代码分组的机制
age = 20
if age >= 18 : #True
#代码块
print('成年了,') #成年了,
print("长大了!") #要有担当!
age = 15
if age >= 18 : #False
#代码块
print('成年了,') #不输出
print("长大了!") #不输出
2.input() 函数
- 该函数用来获取用户的输入
- input()调用后,程序会立即暂停,等待用户输入
- 用户输入完内容以后,点击回车程序才会继续向下执行
- 用户输入完成以后,其所输入的的内容会以返回值的形式返回
#调用input函数获取用户的年龄
age = input('请输入你的年龄:')
print('你的年龄是:',age,'岁')
执行后就会显示光标,需要自己输入,
输入20后按下回车,程序执行完成。
3.if-else语句
- 语法:
if 条件表达式 :
代码块
else :
代码块 - 执行流程:
- if-else语句在执行时,先对if后的条件表达式进行求值判断
- 如果为True,则执行if后的代码块
- 如果为False,则执行else后的代码块
#if-else语句
age = 20
if age > 18 : #True
print('你是成年人!') #你是成年人!
else :
print('你是未成年!')
age = 13
if age > 18 : #False
print('你是成年人!') #不输出
else : #True
print('你是未成年!') #你是未成年!
4.if-elif-else 语句
- 语法:
if 条件表达式 :
代码块
elif 条件表达式 :
代码块
elif 条件表达式 :
代码块
…
else :
代码块 - 执行流程:
- if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
- 如果表达式的结果为True,则执行当前代码块,然后语句结束
- 如果表达式的结果为False,则继续向下判断,直到找到True为止
- 如果所有的表达式都是False,则执行else后的代码块
- 总结: if-elif-else中只会有一个代码块会执行
#if-elif-else语句
age = int(input('请输入你的年龄:')) #input返回的是str类型,需要转化为int类型
print('你的年龄是:',str(age),'岁')
if age < 0 :
print('输入错误!')
elif age < 7 :
print('你是婴幼儿!')
elif age < 13 :
print('你是少儿!')
elif age < 18 :
print('你是青少年!')
elif age < 46 :
print('你是青年!')
elif age < 70:
print('你是中年!')
else :
print('你是老年!')
5.while语句
- 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 和 for循环
- 语法:
while 条件表达式 :
代码块
else:
代码块
实例: - while循环
#while语句
age = 0
while age < 18 :
print('我现在',str(age),'岁了!')
age += 1
else :
print('我终于成年了!')
执行结果:
- for循环
#for循环
for age in range(0,5):
print(age)
执行结果:
小练习
学完了这些条件控制语句,让我们来小试牛刀试一下吧!
- 1.求1000以内所有的水仙花数
- 2.获取用户输入的任意数,判断其是否是质数?
- 3.控制台输出9 9乘法表
- 4.给用户9次机会 猜1-10个数字内随机来猜数字。如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对。
- 第1题:
# 求1000以内所有的水仙花数
num = 0
while num < 100 :
num += 1
else : #满足三位水仙花数
while num < 1000 :
bai = num//100
shi = (num%100)//10
ge = num% 10
if bai**3 + shi**3 + ge**3 ==num :
print(str(num),'是水仙花数!')
num += 1
else :
print('查找完毕!')
执行结果:
- 第2题:
# 获取用户输入的任意数,判断其是否是质数?
import math
num = int(input('请输入一个正整数:'))
mid = int(math.sqrt(num)) #求其平方根
mul_num = 2 #质数和合数的因子都有1,所以从2开始循环
Flag = 0 #质数合数标志位
while mul_num <= mid :
if int(num/mul_num) * mul_num ==num:
Flag = 1
mul_num = mid + 1 #直接可以跳出循环
else :
mul_num += 1
if Flag == 1 or num == 1 :
print(str(num),'不是质数!')
else :
print(str(num), '是质数!')
为了测试其效果,我们修改代码判断输入1-50来进行判断:
# 查看1-19哪些是合数,哪些是质数
import math
for num in range(1,20):
mid = int(math.sqrt(num)) #求其平方根
mul_num = 2 #质数和合数的因子都有1,所以从2开始循环
Flag = 0 #质数合数标志位
while mul_num <= mid :
if int(num/mul_num) * mul_num ==num:
Flag = 1
mul_num = mid + 1 #直接可以跳出循环
else :
mul_num += 1
if Flag == 1 or num == 1 :
print(str(num),'不是质数!')
else :
print(str(num), '是质数!')
执行结果:
- 第3题:
控制台输出9 9乘法表
# 控制台输出9 9乘法表
i = 0 #行
space = ' ' #用于占位的空格符
while i < 9:
j = i
print(space*i,end="") #乘法项缩进
i += 1
while j < 9 :
j += 1
if i*j >= 10 : #判断结果位数,用于对齐
print(str(i)+'x'+str(j)+'='+str(i*j),' ',end="") #加end="",确保不换行
else :
print(str(i)+'x'+str(j)+'=',str(i*j),' ',end="")
else :
print('\n') #输入完一行,换行
执行结果:
- 第4题:
# 给用户9次机会猜1-10个数字内随机来猜数字。
# 如果随机的数字和用户输入的数字一致则表示正确,
# 如果不一致则表示错误。最终结果要求用户怎么也猜不对
times = 9 #猜测次数
num_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] #存放所有结果的列表
while times!=0 : #次数未用完就继续猜
num = int(input('请随机猜一个1-10的数:'))
if num in num_list: #用来检验用户是否故意猜同一数字
times -= 1 #次数减一
num_list.remove(num) #移除用户猜的数,也就是他永远猜不对的原因
print('你猜的数是:' + str(num))
print('真可惜!你猜错了!')
print('你还有' + str(times) + '次机会!')
else :
print('你已经猜过这个数字了,请换一个')
else:
print('很遗憾,你的机会用完了!')
print('正确的答案是:' + str(num_list[0])) #输出正确结果
由于执行结果过长,这里就不贴图了,有兴趣的可以自己试试。