python作业四

01:输入一个大于0的正整数n,如果n==1,则返回1,如果n是偶数,则返回n//2,如果n是奇数,则返回3*n+1

python 复制代码
"""
输入一个大于0的正整数n,如果n==1,则返回1,如果n是偶数,则返回n//2,如果n是奇数,则返回3*n+1
"""
biao = []
n = int(input("请输入一个大于0的正整数:"))
biao . append(n)

while True :
    
    if n != 1 and n % 2 == 0 : #判断n是否为偶数
        biao . append(n//2)
        n = n//2
       
    if n != 1 and n % 2 != 0 : #判断n是否为奇数
        m = 3*n+1
        biao . append(m)
        n = m

    if n == 1 :
        print(biao)
        break

02:猜拳

python 复制代码
print("1=石头 2=剪刀 3=布") #确定规则
i = 1
j = 0
k = 0

while True :
    import random
    computer = random.randint(1,3) #生成随机数

    print("我出:",computer)
    user = int(input("请输入一个数字:")) #设置输赢平局条件,并统计局数

    if computer == 1 and user == 2 :
        print ("你输了")
    elif computer == 1 and user == 3 :
        print ("你赢了")
        j += 1
    elif computer == 2 and user == 3 :
        print("你输了")
    elif computer == 2 and user == 1 :
        print("你赢了")
        j += 1
    elif computer == 3 and user == 1 :
        print("你输了")
    elif computer == 3 and user == 2 :
        print("你赢了")
        j += 1

    elif computer == user :
        print("平局")
        k += 1

    change = input("是否继续游戏(yes/no):")
    if change != 'yes' and change != 'no' :
        print("请输入yes/no")
    if change == 'yes' :
        i += 1
        continue
    else :
        print(f"共进行{i}场游戏")
        print(f"您获胜{j}场")
        print(f"您输了{i - j}场")
        print(f"平局{k}场")
        print("感谢游玩")
        break

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

python 复制代码
"""
求50~150之间的质数是那些?存储在列表中

"""
biao = []

for i in range(50,151):
    if i == 1 or i == 2:
        biao.append(i)
    elif i % 2 == 0 :
        continue
    else:
        biao.append(i)
 
print(biao)

04:打印输出标准水仙花数,输出这些水仙花数

python 复制代码
"""

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

"""

biao = []
for num1 in range(100,1000):
    bai = num1 // 100
    shi = num1 // 10 % 10
    ge  = num1 % 10
    if bai**3 + shi**3 + ge**3 == num1:
        biao.append(num1)
print(biao)

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

python 复制代码
"""
验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
"""
def ck(num):
    a = 0
    num = 0
    while num != 0:
        a += num % 10
        num //= 10
    if (num-a) % 9 == 0:
        return True
    return False
 
 
num = int(input('请输入一个大于9的整数:'))
if ck(num):
    print('符合')
else:
    print('不符合')

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

python 复制代码
"""
一个五位数,若在它的后面写上一个7,得到一个六位数A,
若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此
五位数.
"""


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

 

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

python 复制代码
"""
有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
"""

s = [10, 8, 5, 3, 27, 99]
num = 0
for i in s:
    x = i % 2
    if x == 0:
        num = i // 2 + num
    else:
        num = i // 2 + num + 1
print(f'需要取{num}次')

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

python 复制代码
"""
如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
"""
def is_prime(num):
	""" 判断一个数是否是素数"""
	for i in range(2, num // 2 + 1):
		if num % i == 0:
			return False
 
	return True
 
 
def twin_prime(num):
	primes = []
	for i in range(2, num + 1):
		if is_prime(i):
			primes.append(i)
 
	# 判断是否是孪生素数
	index = 1
	while index < len(primes):
		if primes[index] - primes[index - 1] == 2:
			print(f"{primes[index - 1]}和{primes[index]}这两个素数是孪生素数")
		index += 1
		
 
twin_prime(100)

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

python 复制代码
"""
给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和

"""
a = [input("请输入数字(数字间用空格分开):")]
print("给定列表为:",a)
a.sort()
print(a)
print("最小值为:",a[0])
b = len(a)
print("最大值为:",a[b-1])
c = 0
for i in a :
    c = c + i 
print("平均值为:",c%a[b-1])
print("和为:",c)

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

python 复制代码
"""
将list中的重复数据去重,至少使用两种方案

"""
#方法一
#a = list([1,1,2,2,3,3,4,4,5,5])
#print(a)
#b = list([1,2,3,4,5])
#print(b)
#c = set(list(a))

#方法二
a = list([1,1,2,2,3,3,4,4,5,5])
print(a)
b = list([])
for i in a:
    if i not in b:
        b.append(i)
print(b)

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

python 复制代码
"""
如何将0-10随机存入列表中

"""
import random
a = []
 
for i in range(0,10):
    b = random.randint(0,10)
    if b in a:
        continue
    else:
        a.append(b)
  
print(a)
 
相关推荐
luofeiju11 分钟前
数字图像处理与OpenCV初探
c++·图像处理·python·opencv·计算机视觉
luckywuxn11 分钟前
EurekaServer 工作原理
java·eureka
壹米饭14 分钟前
Java程序员学Python学习笔记一:学习python的动机与思考
java·后端·python
java金融16 分钟前
Java 锁升级机制详解
java
Young556619 分钟前
还不了解工作流吗(基础篇)?
java·workflow·工作流引擎
让我上个超影吧21 分钟前
黑马点评【缓存】
java·redis·缓存
ajassi200029 分钟前
开源 java android app 开发(十一)调试、发布
android·java·linux·开源
电院工程师36 分钟前
SM3算法Python实现(无第三方库)
开发语言·python·算法·安全·密码学
YuTaoShao43 分钟前
Java八股文——MySQL「存储引擎篇」
java·开发语言·mysql
crud1 小时前
Java 中的 synchronized 与 Lock:深度对比、使用场景及高级用法
java