- 一,while循环
- 二,for循环
- 三,练习题
语法结构
while (循环条件): 循环体 (要注意缩进)
举个例子,计算100以内的奇数和
sum = 0 #给sum赋初值 n = 1 #给n赋初值 while n < 100: #判断当n小于100时,执行循环体 sum += n #循环计算sum加n n += 2 #同上 print(sum) #输出sum的最终值
输出结果
打印一个递增的 “ * ”图案
layer = int(input("请输入要打印的行数:")) index = 1 #用来执行至与行数相同的次数所设的值 while index <= layer: j = 1 #从第一行开始,每行*的个数 while j <= index: #嵌套循环 print("*",end="") #end=“”表示不换行 j += 1 print() index += 1
输出结果
(这里仅介绍 for in 类型 )
for in 是用来遍历容器的一种循环(这里的容器一般为可迭代对象)
结构为
for 变量名 in 容器: 循环体 在循环体中添加: break #表示结束循环 continue #继续循环
容器是python中的一种数据类型,常用的容器函数为 range()
range()常见两种格式:
- range(参数) ——表示从0开始到参数结束的此区间内所有的整数,属于前闭后开区间
- range(参数1,参数2)——表示参数1到参数2区间内的整数,前闭后开
- range(参数1,参数2,step)------表示参数1到参数2区间内的整数,step为步长(即两个数之间的间隔,比如1到10,step为2,则打印出来就是1,3,5,7,9),默认为1,(当step为-1时可倒序打印),前闭后开
举例说明:计算0~100以内所有偶数和
sum = 0 for i in range(0,101,2): #从0开始,步长为2,遍历到101是为了包含100在内 sum += i print("0~100内偶数和是:",sum)
输出结果
打印等腰三角形(其实是属于找规律类型,行数,空格数,*数,逐级循环),每行先计算空格数在计算 * 的数量
layer = int(input("请输入你要打印的行数:")) for i in range(1,layer+1): #因为是前闭后开,所以要+1 #计算空格的个数 space= layer - i for j in range(0,space): print(" ",end="") #计算*个数 star = 2*i-1 for j in range(0,star): print("*",end="") print("")
输出结果
1.
import random print("猜一猜电脑里存储的数字(0-100)") num = int(input("请输入你猜的数字:")) pcnum = random.randrange(1,100) print(pcnum) while num < pcnum: print("你猜的数过小") num = int(input("请重新输入:")) while num > pcnum: print("你猜的数过大") num = int(input("请重新输入:")) if pcnum == num: print("你猜对了")
n1,n2 = map(int,input("请输入两个整数:").split()) if n1 > n2: #min 可以比较两个数中小的数 num = n2 else: num = n1 for i in range(1,num+1): if n1 % i == 0 and n2 % i == 0: gcd = i print("它们的最大公约数为%s" %gcd)
import random num = 0 for i in range(0,1000000): x = random.uniform(-1,1) #random()------产生的0-1之间的数 y = random.uniform(-1,1) if (x**2+y**2)**0.5 <= 1: num += 1 else: num += 0 pai = 4*num/1000000 print("pai的值是:"+str(pai))
num = 0 j = 0 n = 0 sum = 0 average = 0 for i in range(0,100): num = int(input("请输入一个整数(输入0结束输入):")) if num == 0: break while num > 0: j += 1 break while num < 0: n += 1 break sum += num average = sum / i print("n这些数字中有%s个正数" %j) print("这些数字中有%s个负数" %n) print("他们的和为:%s" %sum) print("平均值为:%.2f" %average)
num = int(input("请输入一个整数:")) while num != 1: flag = True #循环是否正常 for i in range(2,num // 2+1): if num % i == 0: print(i,end=", ") num = num // i flag = False break if flag: print(num,end="") break
num = int(input("请输入一个数(1-15):")) for i in range(1,num+1): for j in range(0,num - i): #计算空格的个数 print(" ",end=" ") for j in range(i,0,-1): #计算数字的个数 print(j,end=" ") for j in range(2,i+1): #计算右边循环的数字 print(j,end=" ") print()
A num = int(input("请输入行数:")) for i in range(1,num+1): num_num = i+1 #计算每行数字的个数 for j in range(1,num_num): print(j,end=" ") print() B num = int(input("请输入行数:")) for i in range(num+1,1,-1): num_num = i #计算每行数字的个数 for j in range(1,num_num): print(j,end=" ") print() C num = int(input("请输入行数:")) for i in range(1,num+1): space_num = num - i #计算空格的个数 for j in range(0,space_num): print(" ",end=" ") num_num = i #计算数字的个数 for j in range(num_num,0,-1): print(j,end=" ") print() D num = int(input("请输入行数:")) for i in range(1,num+1): space_num = i-1 #计算空格的个数 for j in range(0,space_num): print(" ",end=" ") num_num = num+1-i #计算数字的个数 for j in range(1,num_num+1): print(j,end=" ") print()
num = int(input("请输入行数:")) for i in range(1,num+1): space_num = num-i #计算空格的个数 for j in range(0,space_num): print(" ",end=" ") num_num = i #计算数字的个数 for j in range(0,num_num): num_power = j #计算2的n-1次方 print(2**num_power,end=" ") num_agan = i+1 #计算右边循环的数字 for j in range(num_agan,2,-1): num_power = j-3 #计算2的n-1次方 print(2**num_power,end=" ") print()
num = int(input("请输入10000,20000,......,100000其中一个:")) pai = 0 for i in range(0,num): i += 1 a = 4 * ((-1)**(i+1) / (2*i-1)) pai += a #求i等于输入数值时的和 print(pai)
num = int(input("请输入10000,20000,......,100000其中一个:")) item = 1 e = 1 for i in range(0,num): i += 1 for j in range(0,i): j += 1 item *= j a = 1 / item e += a print(e)
num_num = int(input("输入数据的个数:n")) a = 1 while a <= num_num: num = int(input('请输入第{}个数:'.format(a))) #字符串中的方法 if a == 1: #这句一定会执行,而且只执行一次,目的就是让你输入的第一个数作为根据与之后的数比较 max = min = num #第二个及以后的数都会走else, else: #第一次走else时,比较中的min和max都是你第一次输入的数,以后走else就不一定了 if num < min: min = num elif num > max: max = num a += 1 print('最大数据是:', max)
以上题目的代码非最优代码,可根据自己理解加以改进,如有错误敬请指正!感谢!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)