# 流程控制语句
# 简介
# python代码在执行的时候是按照自上向下顺序执行的
# 通过流程控制语句可以改变程序的执行顺序,也可以
# 让指定的程序反复执行多次。
# 流程控制语句分成两大类:条件判断语句和循环语句
# 一、条件判断语句,语法if 条件表达式 : 语句
# if执行时先对条件表达式进行求值判断,若为True,
# 执行if后的语句,否则不执行。
# 默认情况下,if只会执行紧随其后的语句,如果希望if
# 可以控制多条语句,可以在if后面加一个代码块。
if False :
print('hello')
# 代码块:代码块中保存着一组代码,同一个代码块中的
# 代码要么都执行,要么都不执行。如果要编写代码块,
# 语句不能紧随:后面,需要写下一行并严格缩进,代码块
# 以缩进开始,直到新的一行没有缩进结束。
num = 31
# 可以使用逻辑运算符来链接多个条件,满足所有条件
# 需要用and ,只满足一个条件用or
# num > 10 and num < 20 也可以简写10 < num < 20
if num > 10 and num < 20:
print('num is greater than 10')
print('the num is ten')
print('nothing')
# 二、input函数
# 该函数用来获取用户的输入,input()调用后,程序会
# 立即暂停,等待用户输入,用户输入完后,点击回车
# 程序才会继续向下执行,输入的值以返回值形式返回,
# input()的返回值是一个字符串。
username = input('请输入用户名')
if username == 'admin' :
print('输入的用户名是:' +username)
# 三、if-else
# if-else语句:
# 语法:
# if 条件表达式 :
# 代码块
# else :
# 代码块
# 执行流程:if-else语句在执行时,先对if后的条件
# 表达式进行求值判断,若为True,执行if后的代码块,
# 否则执行else后的代码块。
age = int(input('请输入年龄:'))
if age >= 18 :
print('the age is greater than 18!')
else :
print('the age is less than 18!')
# 四、if-elif-else
# 语法:
# if 条件表达式 :
# 代码块
# elif 条件表达式 :
# 代码块
# elif 条件表达式 :
# 代码块
# else :
# 代码块
# 执行流程,该语句在执行时,会自上向下一次对条件
# 表达式进行求值判断,如果判断为True,则执行当前
# 条件下的代码块,然后结束流程。若谷所有表达式都为
# False则只执行else中代码块。
age = 22
if age < 10 :
print('9')
elif 10 < age <20:
print('14')
elif 20 < age < 30:
print('22')
else :
print('33')
# 练习1:判断用户输入的整数是奇数还是偶数?
num = int(input('请输入一个整数:'))
if num % 2 ==0 :
print(num,'是偶数')
else :
print(num,'是奇数')
# 练习2:用户输入一个年份,判断是否闰年?
year = int(input('请输入一个年份:'))
if year % 4 ==0 and year % 100 !=0 or year % 400 ==0 :
print(year,'是闰年')
else :
print(year,'是平年')
# 练习3:5岁狗的年龄相当于人多大年龄?
dog_age = float(input('请输入狗的年龄:'))
if dog_age > 0 : # 狗的年龄必须大于0
like_person_age = 0
if dog_age <=2 :
like_person_age = dog_age * 10
else :
like_person_age = 2 * 10
like_person_age += (dog_age - 2) * 4
# 五、循环语句
# 循环语句可以使指定的代码块重复指定的次数。
# 循环语句分成两种,while循环和for循环
# while循环语法
# while 条件表达式 :
# 代码块
# 执行流程:该语句在执行时会对while后面的条件
# 表达式进行求值判断,若结果为True,则执行循环体,
# 循环体执行完毕后继续对条件表达式进行判断一次类推,
# 知道判断结果为False,则循环终止。
# 循环表达式三个要件:
# 1.初始化表达式
# 2.条件表达式
# 3.循环体
i = 0
while i < 10:
i +=1
print(i,'hello')
# 练习1:求100以为所有奇数的和?
# 方式一
# sum = 0
# num = 0
# while num < 100:
# num +=1
# if num % 2 != 0 :
# sum +=num
# print('sum = ',sum)
# 方式二
num = 1
sum = 0
while num < 100:
sum +=num
num += 2
print('sum = ',sum)
# 练习2:求100以内所有7的倍数之和?
num = 7
sum = 0
while num < 100:
sum += num
num += 7
# 练习3:求1000以内三位数的水仙花数
i = 100
while i < 1000:
a = i // 100 #百位数
b = i // 10 % 10 #十位数
c = i % 10 #个位数
if a**3 + b**3 + c**3 = i :
print(i)
# 练习4:获取用户输入任意数判断是否为质数
i = 2
num = int(input('请输入一个数字:'))
flag = True
while i < num:
if num % i == 0 :
flag = False
i +=1
if flag :
print(num,'是质数')
else :
print(num,'不是质数')
# 打印9*9乘法表
i = 0
while i < 9 :
i += 1
j = 0
while j < i:
j += 1
print(f"{j} * {i} = {i*j}",end=" ")
print()
# 求100以内所有质数
i = 2
while i <= 100:
flag = True
j = 2
while j < i:
if i % j == 0 :
flag = False
j += 1
if flag :
print(i)
i += 1