Python for循环 案例
#九九乘法表1 for a in range(1,10): for b in range(1,a+1): print("%s*%s=%s"%(a,b,a*b),end="\t") print()
#九九乘法表2 for a in range(1,10): for b in range(1,10): print("%s*%s=%s"%(a,b,a*b),end="\t") print()
#九九乘法表倒序 for a in reversed(range(1,10)): for b in reversed(range(1,a+1)): print("%s * %s = %s"%(a,b,a*b),end="\t") print()
for循环遍历字典
dict1={"abc":"123","def":"456","ghi":"789"} #输出结果:abc def ghi for a in dict1: print(a,end="\t") #输出结果:abc def ghi print() for a in dict1.keys(): print(a,end="\t") #输出结果:123 456 789 print() for a in dict1.values(): print(a,end="\t") #输出结果:abc 123 def 456 ghi 789 print() for a,b in dict1.items(): print(a,b,end="\t")
#折纸多少次超过珠穆朗玛峰 import sys h=0.08 for i in range(sys.maxsize): h+=h if h>8848130: print(i,h) break
#求5的阶乘,即5*4*3*2*1 num=5 for i in range(1,5): num*=i print(num)
#计算1+1/2+1/3+...1/20=? a=0 b=1 for i in range(1,21): print(i) b*=i a+=1/b print(a)
#打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。 #例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。 x=0 for i in range(100,1000): b=i//100 s=(i-100*b)//10 g=(i-s*10-b*100) if i==g*g*g+s*s*s+b*b*b: x+=1 print(i,end="\t")
#百钱买百鸡 #5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只? for a in range(0,21): for b in range(0,34): for c in range(0,300): if 5*a+3*b+c/3 == 100 and a+b+c==100: print(a,b,c)
#百马百担 #有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹? for a in range(0,34): for b in range(0,51): for c in range(0,201,2): if a*3+b*2+c//2==100 and a+b+c==100: print(a,b,c)
#输入两个数,求两个数的最大公约数和最小公倍数 #1.接收两个数字 num1 = int(input('Num1:')) num2 = int(input('Num2:')) # 2.找出两个数中最小的值 min_num = min(num1, num2) # 3.最大公约数的范围在1~min_num for i in range(1, min_num + 1): if num1 % i == 0 and num2 % i == 0: # 当循环结束的时候,gys中保存的就是最大公约数 Bgys = i # 4.最小公倍数 Lgbs = int((num2 * num1) / Bgys) print('%s和%s的最大公约数是:%s' % (num1, num2, Bgys)) print('%s和%s的最小公倍数是:%s' % (num1, num2, Lgbs))
#打印1-100之间所有7的倍数的个数及总和 list1=[] numm=0 for i in range(7,101,7): numm+=i list1.append(i) print(len(list1)) print(numm)
#打印1-100之间所有奇数之和 numm=0 for i in range(1,100,2): numm+=i print(numm)
#取出1~100之间的质数 #2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97 zhishu=[] for a in range(2,100): list1 = [] for i in range(1,a+1): if a%i==0: list1.append(i) if len(list1) > 2: continue else: # print(a) zhishu.append(a) print(zhishu) print(len(zhishu))
# 求一组数的最小值 a=[22,54,6,223,72354,30,11,22111,12] maxx=a[0] for x in range(len(a)-1): if maxx>=a[x+1]: maxx=a[x+1] print(maxx)
# 生成10个0-50之间的随机数,求第二大的值 import random list1=[] for i in range(10): num=random.randint(0,51) list1.append(num) print(list1) num1=list1[0] num2=list1[0] for i in range(1,len(list1)): if num1 < list1[i]: num2 = num1 num1 = list1[i] elif num2 < list1[i]: num2 = list1[i] print(num1,num2)
#随机1000个0-10之间的数。求每个数出现的次数 import random list1=[random.randint(0,10) for i in range(1000)] set1=set(list1) for i in set1: print("%s出现的次数是%s次"%(i,list1.count(i)))
# 耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:
# 13人围坐一圈,从第一个开始报号:1,2,3,1,2,3凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒 def josephus(n,k): #n代表总人数,k代表报数的数字 List = list(range(1,n+1)) index = 0 while List: temp = List.pop(0) index += 1 if index == k: index = 0 continue List.append(temp) if len(List)==2: print(List) break if __name__ == '__main__': josephus(13,3)
import random # 随机生成一个个数为5-10的列表 # 随机生成5-10个1-100的随机数放入这个列表并按从大到小排列 # 随机生成一个1-100的随机数,按该数字大小放到上面列表内相应的位置 list1=[] lenlist=random.randint(5,10) print("随机生成列表元素量为:",lenlist-1) for a in range(1,lenlist): list1.append(random.randint(1,100)) print("随机生成的随机列表为:",list1) list1.sort(reverse=True) print("随机列表从大到小排序:",list1) i=random.randint(1,100) print("随机生成的一个数字是:",i) for b in range(len(list1)): if i>list1[b]: list1.insert(b,i) break print("随机数加入随机列表后:",list1)