Python练习3

1.输入一个大于0的正整数n,如果n==1,则返回1, 如果n是偶数,则返回n/ 2,如果n是奇数,则返回3n +1,将所有的返回值存放到一个列表中,注意:n是第一个元素,其他的元素根据上述要求生成。最后求返回的列表和列表长度。

n=[]
x=int(input("请输入>0的正整数: "))

while True:
    if x % 2 == 0:
        a=x//2
        n.append(a)

        if x != 1:
            print("当输入1时退出")
            x=int(input("请输入>0的正整数: "))
        else:
            break

    elif x % 2 == 1:
        b=3*x+1
        n.append(b)

        if x != 1:
            print("当输入1时退出")
            x=int(input("请输入>0的正整数: "))
        else:
            break

    elif x == 1:
        print(n)

print(n)
print(len(n))



2.猜拳游戏:石头、剪刀、布的游戏

while True:
        my = int(input("请输入1(石头),2(剪刀),3(布):"))

        import random
        computer=random.choice(['石头','剪子','布'])

        print(computer)

        if my==1 and computer=='剪子'or my==2 and computer=='布'or my==3 and computer=='石头':
                print("赢了!")
                choose=input("继续游戏 Y or y ,退出游戏其他:")
                if choose=="Y" or "y":
                        computer=random.choice(['石头','剪子','布'])
                else:
                        break
        elif my==1 and computer=='布' or my==2 and computer=='石头' or my==3 and computer=='剪刀':
                print("输了")
        else:
                print("平局")


3.求50~150之间的质数是那些?存储在列表中

a=[]
for x in range (50,151):
    if x % 2 == 0:
        a.append(x)
print(a)


4.打印输出标准水仙花数,输出这些水仙花数

‌ 注:水仙花数是指一个三位数,其各个位上的数字的三次幂之和等于它本身。‌

for y in range (100,1000):
    g = y % 10
    s = y // 10 % 10
    b = y // 100
    a = g**3 + s**3 + b**3
    if y == a:
        print(y)


5.验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

while True:
    y=int(input(">9整数:"))
    g = y % 10
    s = y // 10 % 10
    b = y // 100
    q = y // 1000
    if (y-g)%9==0 or (y-g-s)%9==0 or (y-g-s-b)%9==0 or (y-g-s-b-q)%9==0:
        print("true")
    else:
        print("false")


6.一个五位数,若在它的后面写上一个7,得到一个六位数A,
若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.

for i in range (10000,100000):
    A = i * 10 + 7
    B = i + 700000
    if A*5==B:
        print (i)


7.有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币[10,8,5,3,27,99]

x = [10,8,5,3,27,99]
for i in x:
    if i % 2 == 0:
        na = i // 2
        print(na)
    elif i % 2 == 1:
        na = i // 2 + 1
        print(na)


8.如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".

for a in range (1,100):
    for b in range (1,100):
        if a-b==2:
            print(a,"and",b,end=",")


9.给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和

x=[223,134,245,156,267,178,289,190]
max=x[0]
min=x[0]
S=0
long=len(x)

for i in x:
    if i>max:
        max=i

    if i<min:
        min=i

    S+=i

    v=S/long

print("max=",max)
print("min=",min)
print("平均值",v)
print("求和",S)


10.将list中的重复数据去重,至少使用两种方案

#way1
x=[12,23,34,23,45,22,44,34]
print(set(x))

#way2
y=[]
for i in x:
    if i not in y:
        y.append(i)
print(y)


11.如何将0-10随机存入列表中

y=[]
for x in range (0,11):
    y.append(x)
    
print(y)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值