python上机练习题(——2022年5月15日)

目录

第一题 1 2 3 4中任意选三个数,组成不重复的三位数

第二题 2-100素数,五个一行 

第三题 猜数字游戏 想停就停 非固定次数

第四题 猴子吃桃

第五题 求和运算   

第六题 输入整数,判断其是否为素数

第七题 水仙花

第八题  最大公约数和最小公倍数

 第九题 找前5个默尼森数

第十题 1~100之间所有素数.

 第十一题  求最大公约数

 第十二题 求解一元二次方程

 第十三题  for循环实现九九乘法表

 第十四题  斐波那契数列前20项

第十五题 菱形阵图

 第十六题 数学家与富人换钱问题

第十七题  星阵图

 第十八题 一元人民币兑换一分、两分、一分的兑换方案

第十九题 程序随机产生一个0~300之间的整数, 玩家竞猜,若猜中则提示Bingo

 第二十题 程序随机产生一个0~300之间的整数,玩家 竞猜,若猜中则提示Bingo,否则提示Wrong

第二十一题  程序随机产生一个 0~300之间的整数, 玩家竞猜,若猜中则提示Bingo,若 猜大了提示Too large,否则提示 Too small

 方法一elif

 方法二if嵌套

第二十二题 符号函数

 第二十三题 用while实现1到100的总和

第二十四题 计算1*2*3*….*10的值

 第二十五题  1!+2!+3!+….+20!

 第二十六题 方阵

第二十七题 平行四边形 

 第二十八题 三角形

 第二十九题  打印半径为1~10的圆的面积,如果面积超过 100,则不再打印。输出此时的半径!

 第三十题 从键盘输入一个4位正整数,正序输入,逆序输出

如:输入4321 输出:1234

第三十一题   编写程序,输入一个9位数,将其分解为3个三位数,并输出

如:输入:123456789 输出:123,456,789


第一题 1 2 3 4中任意选三个数,组成不重复的三位数

for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if(i!=j)and(i!=k)and(j!=k):
                print(i,j,k,end='\n')

第二题 2-100素数,五个一行 

from math import sqrt
j=2;count =0
while j<=100:
    i=2
    k=int(sqrt(j))
    while i<=k:
        if j%i==0:break
        i+=1
    if i>k:
        count+=1
        if count%5==0:
            print(j,end='\n')
        else:
            print(j,end=' ')
    j+=1

第三题 猜数字游戏 想停就停 非固定次数

​
from random import randint
y=1
x=randint(0,30)
while(True):
    z=int(input("猜数字游戏"));
    if(x==z):
        print("猜测正确")
        break;
    if(x>z):
        print("猜测过小")
    else:
        print("猜测过大")

​

第四题 猴子吃桃

sum=1
for i in range(1,10):
    sum=(sum+1)*2
print(sum)

第五题 求和运算   

s,s1,s2,s3=0,0,0,0
for i in range(1,201):
    s1=s1+i
for i in range(1,51):
    s2=s2+i
for i in range(1,21):
    s3=s3+1/i
s=s1+s2+s3
print('{0:d},{1:d},{2:f},{3:f}'.format(s1,s2,s3,s))

第六题 输入整数,判断其是否为素数

from math import sqrt
num =int(input("please enter a number:"))
j=2
while j<=int(sqrt(num)):
    if num % j==0:
        print('{:d}不是素数.'.format(num))
        break
    j+=1
else:
    print('{:d}是素数.'.format(num))

第七题 水仙花

a,b,c = 0,0,0
for i in range(100,1000):
    a = i//100
    b = i//10%10
    c = i%10
    if i==a*a*a+b*b*b+c*c*c:
        print(i,end='\t')

第八题  最大公约数和最小公倍数

a=int(input("请输入一个数:"))
b=int(input("请输入一个数:"))
c = a*b
while True:
    if a>b:
        m = a%b
        if m==0:
            print("最大公约数为:{:d}".format(b))
            break
        else:
            a = b
            b = m
    else:
        a,b=b,a
print("最小公倍数:{:d}".format(c//b))

 第九题 找前5个默尼森数

from math import sqrt
def isprime(x):
    '''判断x是否为素数'''
    k=int(sqrt(x))
    for i in range(2,k+1):
        if x%i==0:
            return False
    return True
p=1
count =1
while count<=5:
    p+=1
    M=2**p-1
    if isprime(p)and isprime(M):
        print(p,M)
        count+=1

第十题 1~100之间所有素数.

from math import sqrt
def isprime(x):
    if x==1:
        return False
    k= int(sqrt(x))
    for j in range(2,k+1):
        if x%j==0:
            return False
    return True

for i in range(1,101):
    if isprime(i):
        print(i,end=' ')

 第十一题  求最大公约数

def gcd(x,y):
    '''calculate the gcd OF x and y'''
    if x<y:
        x,y=y,x
        while x%y!=0:
            r=x%y
            x=y
            y=r
        return y
x=eval(input("输入第一个数:"))
y=eval(input("输入第二个数:"))
gcdxy=gcd(x,y)
print('gcd({0:d},{1:d}={2:d})'.format(x,y,gcdxy))

 第十二题 求解一元二次方程

from math import sqrt
def hs1(x1,y1):
    s1=-y1/2*x1
    return s1

def hs2(x2,y2):
    s2=(sqrt(y2))/2*x2
    return s2

if __name__ == '__main__':
    a,b,c=eval(input('请输入a,b,c:'))
    d=b*b-4*a*c
    if a==0:
        print("不是一元二次方程!")
    elif d==0:
        x1=hs1(a,b)
        print("{0:.2f}".format(x1))
    else:
        x1=hs1(a,b)+hs2(a,d)
        x2=hs1(a,b)-hs2(a,d)
        print(int(x1),int(x2))

 第十三题  for循环实现九九乘法表

 

for i in range(1,10):
    for j in range(1,i+1):
        print(f'{j}*{i}={i*j}',end='\t')
    print()

或者

for i in range(1,10):
for j in range(1,i+1):
print('{0:d}*{1:d}={2:d} '.format(i,j,i*j),end='')
print('')

 第十四题  斐波那契数列前20项

f = [0] * 20
f[0],f[1]=0,1
for i in range(2,20):
    f[i]=f[i-1]+f[i-2]
print(f)

第十五题 菱形阵图

for i in range(1,5):
    for j in range(1,5-i):
        print('',end=' ')
    for k in range(1,2*i):
        print('*',end='')
    print('')
for i in range(1,4):
    for j in range(0,i):
        print(' ',end='')
    for k in range(1,8-2*i):
        print('*',end='')
    print('')

 第十六题 数学家与富人换钱问题

s,d=0,1
x=30*100000
for i in range(1,31):
    s=s+d
    d=2*d
s=s/100
print('{0:.2f},{1:.2f},{2:.2f}'.format(d,s,s-x))

第十七题  星阵图

for i in range(1,5):
    for j in range(1,5-i):
        print('',end=' ')
    for k in range(1,2*i):
        print('*',end='')
    print('')
    

 第十八题 一元人民币兑换一分、两分、一分的兑换方案

i,j,k=0,0,0
count = 0
for i in range(21):
    for j in range(51):
        k=100-5*i-2*j
        if k>=0:
            count+=1
            print('count={:d}'.format(count))

第十九题 程序随机产生一个0~300之间的整数, 玩家竞猜,若猜中则提示Bingo

from random import randint 
x = randint(0, 300) 
num = int(input('Please enter a number between 0~300: ')) 
if num == x: 
	print('Bingo!')

 第二十题 程序随机产生一个0~300之间的整数,玩家 竞猜,若猜中则提示Bingo,否则提示Wrong

from random import randint
x = randint(0, 300)
num = int(input('Please enter a number between 0~300: '))
if num == x:
	print('Bingo!')
else: 
	print('Fail!')

第二十一题  程序随机产生一个 0~300之间的整数, 玩家竞猜,若猜中则提示Bingo,若 猜大了提示Too large,否则提示 Too small

 方法一elif

from random import randint 
x = randint(0, 300) 
num = int(input('Please input a number between 0~300: ')) 
if num == x : 
	print('Bingo!') 
elif num > x: 
	print('Too large, please try again.') 
else: 
	print('Too small, please try again.')

 方法二if嵌套

from random import randint 
x = randint(0, 300) 
num = int(input('Please input a number between 0~300: ')) 
if num == x : 
	print('Bingo!') 
else: 
	if num > x: 
		print('Too large, please try again.') 
	else: 
		print('Too small, please try again.')

第二十二题 符号函数

x = eval(input('Enter a number: ')) 
if x < 0: 
	sgn = -1 
elif x == 0: 
	sgn = 0 
else: 
	sgn = 1 
print ('sgn = {:.0f}'.format(sgn))

 第二十三题 用while实现1到100的总和

sum = 0 
i = 1 
while i <= 100: 
	sum += i 
	i += 1 
print('1+2+…+100 = {:d}'.format(sum))

第二十四题 计算1*2*3*….*10的值

s = 1 
i = 1 
while i <= 10: 
s *= i 
i += 1 
print(‘1*2*…*10 = {:.2f}'.format(s)

 第二十五题  1!+2!+3!+….+20!

1!+2!+3!+….+20!
(1= 1 
s=0 
d=1 
while i <= 20: 
	d*=i 
	s=s+d 
	i += 1 
print(‘1!+2!+…+20! = {:.2f}'.format(s))

 第二十六题 方阵

 

for i in range(1,5):
for j in range(1,5):
print('*',end='')
print('\n')

第二十七题 平行四边形 

 

for i in range(1,5):
for j in range(1,5):
print('*',end='')
print('\n')

 第二十八题 三角形

 

for i in range(1,5):
for j in range(1,5-i):
print(' ',end='')
for k in range(1,2*i-1):
print('*',end='')
print('')

 第二十九题  打印半径为1~10的圆的面积,如果面积超过 100,则不再打印。输出此时的半径!

pi=3.14
for i in range(1,11):
s=pi*i*i
if s>100:
break
print('{0:5.2f},{1:5.2f}'.format(i,s))
print(‘{0:.2f}'.format(i))

 第三十题 从键盘输入一个4位正整数,正序输入,逆序输出

如:输入4321 输出:1234


num=input("请输入四位整数: ")
print("你输入的是: ",num)
print("他的正序数是:",num)
print("他的相反顺序的数
是:",num[3:4],num[2:3],num[1:2],num[0:1])

​

第三十一题   编写程序,输入一个9位数,将其分解为3个三位数,并输出

如:输入:123456789 输出:123,456,789

s=input("input 9 numbers:")
print(s[0:3],",",s[3:6],",",s[6:9])

  • 7
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值