循环内嵌套if
案例:打印1-100之间的3的倍数
for i in range(1,101):
if i % 3 == 0:
print(i)
循环内嵌套循环
简单实现:
for i in range(1,6):
print("第%d次循环"%i)
for j in range(1,3):
print(j)
经典案例 :九九乘法表
法1:while+for
num = 1
while num<10:
for n in range(1,num+1):
print("%d * %d = %d"%(n,num,n*num),end="\t")
print()
num+=1
法2: for+for
for num in range(1,10):
for n in range(1,num+1):
print("%d * %d = %d"%(n,num,n*num),end="\t")
print()
结果显示:
综合案例
案例1
用户输入一个3位数,判定是否是水仙花数
#1.准备一个三位数的数值
#1.1输入数据
num = input("请输入一个三位数值:")
#1.2 保证这个数是三位数值
num = int(num)
if not(100 < num < 1000):
print("你输入的数据无效,直接退出程序")
exit()
print("数据有效")
#2.根据这个三位数,判定是否为水仙花数
#2.1分解百位、十位、个位
a = num//100
b = (num%100)//10
c = num%10
#2.2代入公式,判定是否为水仙花数
result = a**3+b**3+c**3 == num
#3.打印结果
if result:
print("%d,是水仙花数"%num)
else:
print("%d,不是水仙花数" % num)
#------------------------------------------
#功能优化:我们可以重复使用这个功能,并且可以随时退出
while True:
#1.准备一个三位数的数值
#1.1输入数据
num = input("请输入一个三位数值:")
#1.2 保证这个数是三位数值
num = int(num)
if not(100 < num < 1000):
print("你输入的数据无效,直接退出程序")
exit()
print("数据有效")
#2.根据这个三位数,判定是否为水仙花数
#2.1分解百位、十位、个位
a = num//100
b = (num%100)//10
c = num%10
#2.2代入公式,判定是否为水仙花数
result = a**3+b**3+c**3 == num
#3.打印结果
if result:
print("%d,是水仙花数"%num)
else:
print("%d,不是水仙花数" % num)
#判定是否继续
isP =input("您是否想要继续(p:暂停并退出,其他:继续):")
if isP == "p":
print("您已退出")
exit()
案例2
给定一个数值,让用户猜
#1准备数据(采用随机数)
import random
num = random.randint(1,100)
while True:
#2让用户输入数据
U_num = int(input("请输入您猜的数字:"))
#3判定输入数据是否正确
result = num == U_num
if result:
print("恭喜你回答正确!答案就是%d"%num)
break#exit()
#3.1如果错误判断,给出提示输入太大还是太小
else:
if U_num > num:
print("太大了,应该小一点")
else:
print("太小了,应该大一点")
#优化:---加一个计数器,记录总共猜了多少次-------------------------
import random
num = random.randint(1,100)
# print(num)
count = 1
while True:
#2让用户输入数据
U_num = int(input("请输入您猜的数字:"))
#3判定输入数据是否正确
result = num == U_num
if result:
print("恭喜你回答正确!答案就是%d,您共计猜了%d次"%(num,count))
break
#3.1如果错误判断,给出提示输入太大还是太小
else:
if U_num > num:
print("太大了,应该小一点")
else:
print("太小了,应该大一点")
count +=1