python学习(3)——循环、循环嵌套、常用格式化字符的两种方法

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’,其中包含大括号内的表达式。
# 表达式会将大括号中的内容替换为其值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值