1、循环三个要点
(1)初始化表达式
i = 0
(2)条件表达式
while i < 10 :
(3)更新表达式
i = i+1
print(i,'hello!')
# 练习1
# 水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身
#(例如:1**3 + 5**3 + 3**3 = 153)。
# 求1000以内所有的水仙花数
#获取 100-999 的数
i = 100
while i < 1000 :
a = i//100
b = (i-a*100)//10
c = i-a*100-b*10
if i == a**3+b**3+c**3:
print(i,end=' ')
i = i+1
# 练习2
# 获取用户输入的任意数,判断其是否是质数。质数是只能被1和它自身整除的自然数,1不是质数也不是合数。
num = int(input('请输入任意自然数:'))
#获取到所有可能被num整除的整数
i = 2
flag = True # 标志,默认是质数
while i < num :
if num % i == 0 : # num不是质数
flag = False
i = i+1 # 如果num不能整除i,递增i
if flag == False :# 如果num不是质数,令i=num,提前结束循环
i = num
if flag == True :
print(num,'是质数!')
else :
print(num,'不是质数!')
2、循环嵌套
i = 0
while i < 5 : #外部循环
j = 0
while j < 5 : #内部循环
print('*',end='') # 结束符
j =j+1
print() # 打印换行符
i = i+1
# 练习1:
# 打印99乘法表
# 1*1=1
# 1*2=2 2*2=4
# 1*3=3 2*3=6 3*3=9
# ... 9*9=81
i = 1
while i < 10: # 外9层
j = 0
while j < i : #i= 1 ,0<1 / i=2,0<2,1<2
j = j+1 #j=1 / j=1,j=2
a = i*j #a=1 / a=2,a=4
# print(j,'*',i,'=',a,end=' ')#内层每输出一个,以空格符结束
print("%s*%s=%s"%(j,i,a),end=' ')
#print(f'{j}*{i}={a}',end=' ')
print('') #内层循环后,换行
i = i + 1
# 练习2
# 求100以内所有的质数
# 创建一个循环,求1-100以内所有的数
i = 2 # 从2开始
while i <= 100 :
flag = True # 放在循环内,每次循环开始都默认True
j = 2 # j从2开始递增,寻找i能整除j的数
while j < i :
if i % j == 0 : # 判断i不是质数
flag = False
j = j+1 # 判断之后,递增i
if flag==False :
j = i # 如果i不是质数,提前结束循环
if flag==True : # 在外循环判断i是否是质数
print(i)
i = i+1
3、常用格式化字符的两种方法
i=1
j=2
a=i*j
print("%s*%s=%s"%(j,i,a),end=' ') # 2*1=2
print(f'{j}*{i}={a}',end=' ') # 2*1=2
# print("DAY %s 格式化字符串 %s " % (value1,value2))
# f-string是2015年python 3.6 根据PEP 498新添加的一种字符串格式化方法,
# f-string实际上是在运行时计算的表达式,而不是常量值。
# 在Python源代码中,f-string是一个文字字符串,前缀为’f’,其中包含大括号内的表达式。
# 表达式会将大括号中的内容替换为其值。