对循环的理解与总结

总的来说,循环主要有两种循环:一种为for循环;一种为whlie循环

先列举几道for的例题:

#1.求一百以内的奇数和
sum1 = 0
for i in range (1,100,2):
    sum1 += i
print(sum1)
#2.求一百以内的偶数和
sum2 = 0
for i in range (2,101,2):
    sum2 += i
print(sum2)
#3.一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是多少?
index = 0
while True:
    if (index + 3) % 5 == 0 and (index - 3) % 6 == 0:
        print(index)
        break
    index += 1
"""for x in range(1,100):
    if (x + 3) % 5 == 0 and (x - 3) % 6 ==0 :
        print("这个自然数最小是%d"% x)
        break
    x += 1"""
#4.在400~500之间求一个数,它被2取余1,被5取余是3,被8取余是1,这个数是多少?
for a in range(400,501):
    if a % 2 == 1 and a % 5 == 3 and a % 8 == 1:
        print("这个数是%d"%a)
        break
#5.打印等腰三角形

layer = int (input("请输入要打印的层数:"))
#每一行
for i in range(1,layer+1):
    #计算空格的个数
    space_num = layer -i
    for j in range(0,space_num):
        print(" ",end="")
    #计算*的个数
    star_num =2 * i -1
    for j in range(0,star_num):
        print("*",end="")
    print("")
#6.
layer = int(input("请输入层数:"))
while layer // 2 == 0 :
	layer = int(input("请重新输入层数(奇数行):"))
	# 上半部分
	# index = layer // 2 + 1
for i in range(0,layer // 2 + 2) :
	space_num = layer - i
	for j in range(0,space_num) :
		print(" ",end="")
	#计算*个数
	star_num = 2 * i - 1
	for j in range(0,star_num) :
		print("*",end="")
	print("")	
	# 下半部分
# index = layer // 2
for i in range(layer // 2,0,-1) :
	space_num = layer - i
	for j in range(0,space_num) :
		print(" ",end="")
	#计算*个数
	star_num = 2 * i - 1
	for j in range(0,star_num) :
		print("*",end="")
	print("")

#7.空心菱形
layer = int(input("请输入要打印的层数:"))
for i in range(0,layer // 2 + 2) :
	space_num = layer - i
	for j in range(0,space_num) :
		print(" ",end="")
	#计算*个数
	star_num = 2 * i - 1
	for j in range(0,star_num) :
		if j == 0 or j == star_num - 1 :
			print("*",end="")
		else :
			print(" ",end="")
	print("")	
for i in range(layer // 2,0,-1) :
	space_num = layer - i
	for j in range(0,space_num) :
		print(" ",end="")
	#计算*个数
	star_num = 2 * i - 1
	for j in range(0,star_num) :
		if j == 0 or j == star_num - 1 :
			print("*",end="")
		else :
			print(" ",end="")
	print("")
#8.菱形变形
layer = int(input("请输入要打印的层数:"))
for i in range(0,layer // 2 + 2) :
	space_num = layer - i
	for j in range(0,space_num) :
		print(" ",end="")
	#计算*个数
	star_num = 2 * i - 1
	for j in range(0,star_num) :
		if j == 0 or j == star_num - 1 or i == layer // 2  + 1 or j == star_num // 2:
			print("*",end="")
		else :
			print(" ",end="")
	print("")	
for i in range(layer // 2,0,-1) :
	space_num = layer - i
	for j in range(0,space_num) :
		print(" ",end="")
	#计算*个数
	star_num = 2 * i - 1
	for j in range(0,star_num) :
		if j == 0 or j == star_num - 1 or j == star_num // 2  :
			print("*",end="")
		else :
			print(" ",end="")
	print("")
#9.圣诞树
layer = int(input("请输入要打印的层数:"))
for i in range(0,layer // 2 + 2) :
	space_num = layer - i
	for j in range(0,space_num) :
		print(" ",end="")
	#计算*个数
	star_num = 2 * i - 1
	for j in range(0,star_num) :
		if j == 0 or j == star_num - 1 or i == layer // 2  + 1 or j == star_num // 2:
			print("*",end="")
		else :
			print(" ",end="")
	print("")	
for i in range(layer // 2,0,-1) :
	space_num = layer - i
	for j in range(0,space_num) :
		print(" ",end="")
	#计算*个数
	star_num = 2 * i - 1
	for j in range(0,star_num) :
		if j == star_num // 2  :
			print("*",end="")
		else :
			print(" ",end="")
	print("")

再来几道whlie循环的例题:

#用循环打印字符
#1.自己使用的方法
n = "*"
while n <= "******":
    print(n)
    n += "*"
#2.老师给的方法
layer = int (input("请输入要打印的层数:"))
index = 1
while index <= layer:
    #打印
    j = 1
    while j <= index :
        print("*",end="")
        j += 1
    print() #换行
    index += 1 
#3.打印九九乘法表
i = 1
while i <= 9 :
	j = 1
	while j <= i :
		res = i * j
		if res < 10 :
			print("%s * %s = %s  "%(j,i,(i*j)),end = "")
		else :
			print("%s * %s = %s "%(j,i,(i*j)),end = "")
		j += 1 
	print()
	i += 1

最后再展示一个用pothon循环写的一个登录页面:

while True:
    print("\n")
    print("               英雄联盟登陆页面                 ")
    print("***********************************************")
    print("                 1.用户登陆                     ")
    print("                 2.用户注册                     ")
    print("                 3.退出系统                     ")
    print("***********************************************")
    choose1 = int(input("请输入您的选择:"))
    if choose1 == 1:
        name1=input("请输入您的用户名称:")
        password =input("请输入您的用户密码:")
        if password == password1 and name1 == name2:
            print("登陆成功........")
            while True:
               print("                 英雄商城页面                   ")
               print("***********************************************")
               print("                 1.进入英雄超市                     ")
               print("                 2.休闲小游戏                     ")
               print("                 3.退出系统                     ")
               print("***********************************************")
               choose2 =int(input("请输入您的选择:"))
               if choose2 == 1:
                   print("英雄联盟新款皮肤折扣价3.8折,只需要支付28元人民币\n")
                   price = 28
                   count = int(input("请输入购买的数量:"))
                   money = count*price
                   print("您购买的皮肤,所需金额为%s" %money)
                   pay =int(input("请支付商品需要的金额:"))
                   if pay == money:
                       print("")
                       print("支付金额正确,购买成功!")
                       print("")
                       print("正在打印小票,请稍等···")
                   elif pay != money:
                       print("支付金额错误,请重新支付!")
               elif choose2 == 2:
                    print("欢迎进入休闲小游戏!")
                    print("游戏:石头、剪刀、布")
                    import random
                    com = random.randint(0,2)
                    y = int (input("输入数字 (scissor(0),rock(1)、paper(2)): "))
                    if com == y :
                        print("系统出的是%s 你出的也是%s 所以是平局" % (com,y))
                    elif com + 1 == y or y - 2 == com :
                        print("系统出的是%s 你出的是%s 所以你赢了" % (com,y))
                    elif com - 1 == y or com - 2 == y :
                        print("系统出的是%s 你出的是%s 所以你输了" % (com,y))
                    else:
                        print("输入错误请重新输入!")

               elif choose2 == 3 :
                    break
               else: 
                   print("输入错误!请重新输入")

        elif password != password1 or name1 != name2:
            input("用户名或密码错误,请重新登录,按任意键继续!")        
    elif choose1 == 2:
        tel =(input("请输入您要注册的手机电话号码:"))
        a = len(tel)
        if a == 11:
            test =input("请输入短信验证码:")
            b=len(test)
            if b==4 or b== 6:
                name2 = input("请输入游戏名:")
                password1 =input("请输入密码:")
                c =len(password1)
                password2 =input("请再次输入密码:")
                if password1 == password2 and c >=8:
                    print("注册成功,请重新登陆!")
                elif password1 != password2 and c:
                    print("两次密码输入不一致或设置密码过短,请重新注册:")
            else:
                print("验证码错误,请重新输入!")
        else:
            print("手机号已经被注册或手机号错误!")   
    elif choose1 == 3:
        break
    else :
        print("输入错误,请重新输入!")

 总结循环:

1循环应该怎么写?

首先,理清楚思路,思考应该按什么顺序、什么步骤来进行

其次,你应该思考清楚应该运用for循环,还是while循环

最后,一定要测试运行,可能有细节的错误!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值