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)

 

posted @ 2020-09-05 22:47  短戈行  阅读(3485)  评论(0编辑  收藏  举报