总的来说,循环主要有两种循环:一种为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循环
最后,一定要测试运行,可能有细节的错误!