![cover](https://img-blog.csdnimg.cn/e95655a2ce624a73b4144198a5b0f3c3.png)
python例题(05)
1.输入一个十进制数,输出二进制、八进制、十六进制2.输入华氏温度,输出摄氏温度,公式为:C=5/9*(F-32)3.键盘输入两个整数a和b,合并成一个新四位数,例如:a=54,b=12,c=51424.发工资遇到一个问题,根据每个人工资总额计算钞票面值的张数,且总张数最少。如:158965.输入三角形边长,输出面积:其中s=(a+b+c)/26.输入两个数,输出最大值7.输入一个整数,判断奇偶数
·
1.输入一个十进制数,输出二进制、八进制、十六进制
a = int(input('请输入一个十进制整数:'))
print(a,'转化的二进制为',bin(a))
print(a,'转化的八进制为',oct(a))
print(a,'转化的十六进制为',hex(a))
# 请输入一个十进制整数:12
# 12 转化的二进制为 0b1100
# 12 转化的八进制为 0o14
# 12 转化的十六进制为 0xc
2.输入华氏温度,输出摄氏温度,公式为:C=5/9*(F-32)
f=int(input('请输入华氏温度:'))
c=5/9*(f-32)
print('摄氏温度为%.2f'%c)
# 请输入华氏温度:75
# 摄氏温度为23.89
3.键盘输入两个整数a和b,合并成一个新四位数,例如:a=54,b=12,c=5142
a=int(input('请输入一个两位数整数:'))
b=int(input('请输入一个两位数整数:'))
if a>=100 and b>=100:
print('输入数据有误,请重新输入!')
elif a<=10 and b<=10:
print('输入数据有误,请重新输入!')
else:
c=a//10*1000+b//10*100+a%10*10+b%10
print('合成的新四位数为:',c)
# 请输入一个两位数整数:54
# 请输入一个两位数整数:12
# 合成的新四位数为: 5142
4.发工资遇到一个问题,根据每个人工资总额计算钞票面值的张数,且总张数最少。如:15896
a=int(input('请输入你的工资总额:'))
print('100元的张数为:',a//100)
print('50元的张数为:',a%100//50)
print('20元的张数为:',a%100%50//20)
print('10元的张数为:',a%100%50%20//10)
print('5元的张数为:',a%100%50%20%10//5)
print('1元的张数为:',a%100%50%20%10%5)
# 请输入你的工资总额:15896
# 100元的张数为: 158
# 50元的张数为: 1
# 20元的张数为: 2
# 10元的张数为: 0
# 5元的张数为: 1
# 1元的张数为: 1
5.输入三角形边长,输出面积:
![](https://i-blog.csdnimg.cn/blog_migrate/5d120e7269a05b4606c926a3db1a594a.png)
其中s=(a+b+c)/2
import math
a = int(input('请输入边长:'))
b = int(input('请输入边长:'))
c = int(input('请输入边长:'))
s = (a+b+c)/2
area = math.sqrt(s*(s-a)*(s-b)*(s-c))
print('面积为:',area)
# 请输入边长:3
# 请输入边长:4
# 请输入边长:5
# 面积为: 6.0
6.输入两个数,输出最大值
a=int(input('请输入第一个值:'))
b=int(input('请输入第二个值:'))
max=a
if a<b:
max=b
print('最大值为:',max)
# 请输入第一个值:12
# 请输入第二个值:23
# 最大值为: 23
7.输入一个整数,判断奇偶数
a = int(input('请输入一个整数:'))
if a%2==0:
print('该数是偶数')
else:
print('该数是奇数')
# 请输入一个整数:12
# 该数是偶数
8.判断一个数能被7或11整除,但不能同时被7或11整除
a = int(input('请输入一个整数:'))
if (a%7==0 or a%11==0) and a%77!=0:
print('yes')
else:
print('no')
# 请输入一个整数:7
# yes
9.判断闰年:可被4整除,不能被100整除,可被400整除
y = int(input('请输入一个四位数年份:'))
if y%4==0 and y%100!=0 or y%400==0:
print('该年是闰年')
else:
print('该年是平年')
# 请输入一个四位数年份:2020
# 该年是闰年
10. 输入三个整数,降序输出:
a = int(input('请输入第一个整数:'))
b = int(input('请输入第二个整数:'))
c = int(input('请输入第三个整数:'))
if a>b>c:
print(a,b,c)
elif a>c>b:
print(a,c,b)
elif b>c>a:
print(b,c,a)
elif b>a>c:
print(b,a,c)
elif c>a>b:
print(c,a,b)
else:
print(c,b,a)
# 请输入第一个整数:3
# 请输入第二个整数:4
# 请输入第三个整数:2
# 4 3 2
11.输入一个百分制成绩,输出等级
a = int(input('请输入一个百分制成绩:'))
if a <= 0 or a > 100:
print('输入数据有误,请重新输入!')
elif 100 >= a >= 90:
print('优秀')
elif 80 <= a < 90:
print('良好')
elif a >= 60:
print('及格')
else:
print('不及格')
# 请输入一个百分制成绩:79
# 及格
12.计算下列多项式的值:
![](https://i-blog.csdnimg.cn/blog_migrate/2b3def830cfc0e175a9a1cb22cc769c1.png)
sum=1
for i in range(2,101):
sum = sum + 1 / i
print('%.6f'%sum)
# 5.187378
13.计算下列多项式的值
![](https://i-blog.csdnimg.cn/blog_migrate/cac52a1156f2ac21dfd3797d116b5fdb.png)
sum = 1
f = -1
for i in range(2,101):
sum= sum+1/i*f
f = -f
print('%.6f'%sum)
# 0.688172
14.计算下列多项式的值
![](https://i-blog.csdnimg.cn/blog_migrate/e237d731996ec6534ade03c3c26338be.png)
sum = 1
num = 1
for i in range(2,101):
num = num +i
sum = sum + 1/num
print('%.6f'%sum)
# 1.980198
15.计算下列多项式的和
![](https://i-blog.csdnimg.cn/blog_migrate/c12f2dcbdbb41d79a4ffba26b4d576e6.png)
z = 3
m = 2
t = 0
sum = 0
for i in range(20):
t = z
z = m+z
m = t
sum = sum + z/m
print('%.6f'%sum)
# 32.396329
16.计算π的近似值公式
![](https://i-blog.csdnimg.cn/blog_migrate/7a6b48d2100d7463bd4051c549e1f4c8.png)
pi = 1
f = -1
i = 3
while 1/i>1e-6:
pi = pi +1/i*f
f = -f
i = i+2
print('pi=%.6f'%(pi*4))
# pi=3.141591
17.用泰勒级数计算e的近似值
![](https://i-blog.csdnimg.cn/blog_migrate/ab8944c3e468125773654f60a6620b5e.png)
sum = 1
t = 1
i = 1
while 1/t>1e-6:
t = t*i
sum = sum + 1/t
i += 1
print('sum=%.6f'%sum)
# sum=2.718282
18.计算a+aa+aa+aaa…aaa的值,计算前六项和,a=2
a = 2
sum = 0
for i in range(6):
sum = sum + a
a = a*10 + 2
print('sum = ',sum)
# sum = 246912
19.计算r=1到r=10时的圆的面积,直到面积大于100为止
import math as a
for r in range(1,11):
area = a.pi*r*r
if area>100:
break
print('r:',r,'area: is:%.6f'%area)
# r: 6 area: is:113.097336
20.将100-150之间的不能被3整除的数输出,一行输出10个数
i = 0
for n in range(100,151):
if n%3 == 0:
continue
print(n,end=' ')
i+= 1
if i%10 == 0:
print()
# 100 101 103 104 106 107 109 110 112 113
# 115 116 118 119 121 122 124 125 127 128
# 130 131 133 134 136 137 139 140 142 143
# 145 146 148 149
21.找出2,3,5的最小公倍数
for i in range(1, 100):
if i % 2 == 0 and i % 3 == 0 and i % 5 == 0:
print('%d是2,3,5的最小公倍数' % i)
break
else:
print('未找到!')
# 30是2,3,5的最小公倍数
22.输入整数,判断是否为素数:
# 法1
p = int(input('请输入一个正整数:'))
if p<2: # 保证输入数据大于2
print('请输入大于2的正整数!')
else:
for i in range(2,p):
if p%i == 0:
print('平数')
break
else: # 循环顺利结束后执行
print('素数')
# 请输入一个正整数:12
# 平数
# 法2
p = int(input('请输入一个正整数:'))
i = 2
if p<2: # 保证输入数据大于2
print('请输入大于2的正整数!')
else:
while p%i !=0: # 检测结果是否为非0
i = i+1
if i == p:
print('素数')
else:
print('平数')
# 请输入一个正整数:11
# 素数
23.输出100以内的素数
for i in range(2,100): #遍历2-99
for j in range(2,i):
if i%j == 0:
break
else:
print(i,end=' ') # 输出素数
# 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
24.输出200-400的非素数
t = 0
for m in range(200, 400):
for n in range(2, m):
if m % n == 0:
print(m, end=' ')
t = t+1
if t%10==0:
print()
break
25.输出大于s且紧随s的k个素数
s = int(input('请输入起始值:'))
k = int(input('请输入需要的素数个数:'))
i = s + 1
t = 0 # 计数器,记录找到的素数个数
while t < k: # 当自己找到的素数个数t小于指定个数k的时候,继续寻找
for j in range(2, i): # 判断i是否为素数
if i % j == 0:
break
else:
t = t + 1 # 记录找到的素数个数
print(i, end=' ') # 输出素数
i = i + 1 # 继续下一个数的寻找
# 请输入起始值:12
# 请输入需要的素数个数:3
# 13 17 19
26.输入100以内被9整除,余数为2的数,计算其平均值的平方根并输出
a = 0
t = 0 # 计数器
for i in range(100):
if i % 9 == 2: # 计算对9取余,余数为2
print(i,end=' ')
a = a + i # 计算和值
t = t + 1 # 记录个数
print('\n a=%.2f'%((a/t)**0.5))
# 2 11 20 29 38 47 56 65 74 83 92
# a=6.86
27.输出水仙花数,一个三位数,每位立方和等于原值
for i in range(100,1000):
if (i%10)**3 + (i//10%10)**3 + (i//100)**3 ==i:
print('水仙花数:',i)
# 水仙花数: 153
# 水仙花数: 370
# 水仙花数: 371
# 水仙花数: 407
28.输出1000以内的完数,完数:因子之和等于原值,如:6==1+2+3
for i in range(6,1000): #遍历0-999
sum = 0 # 每判断一个i,必须先清零其因子之和
for j in range(1,i): # 寻找因子
if i%j == 0:
sum = sum + j # 计算因子之和
if sum==i:
print(i,end=' ')
# 6 28 496
29.输出100以内的同构数,同构数:一个正整数出现在它的平方书的右侧则为同构数。
如:5==25 6==36 25==625
for i in range(100):
# 100以内同构数平方后可能为2位数或者3位数
if i==i*i%10 or i==i*i%100:
print(i,end=' ')
# 0 1 5 6 25 76
30.输出200以内的回文数字
for i in range(200):
t = 0 # 倒置后数
m = i
while m > 0: #对i进行整数倒置
t = t*10 + i%10
m=m//10
if t == i:
print(i,end=' ')
# 0 1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111
31.求整数a与b的最小公倍数
# 法1:
a = int(input('请输入第一个整数:'))
b = int(input('请输入第二个整数:'))
i = 1
while 1: # 循环恒真时执行下列语句
if i % a == 0 and i % b == 0:
print('最小公倍数:', i)
break # 第一次找到公倍数就跳出,保证是最小公倍数
i = i + 1
# 请输入第一个整数:12
# 请输入第二个整数:23
# 最小公倍数: 276
# 法2
a = int(input('请输入第一个整数:'))
b = int(input('请输入第二个整数:'))
i = 0
while 1: # 循环恒真时执行下列语句
i += a # i默认是a的倍数,
if i % b == 0:
print('最小公倍数:', i)
break # 第一次找到公倍数就跳出,保证是最小公倍数
# 请输入第一个整数:12
# 请输入第二个整数:42
# 最小公倍数: 84
32.求整数x和y的大公约数以及最小公倍数
x = int(input('请输入第一个整数:'))
y = int(input('请输入第二个整数:'))
l = x * y # l是最小公倍数
while x % y != 0: # 辗转相除法
t = x % y
x = y
y = t
g = y # g是最大公约数
l = l // g
print('最大公约数:', g, '最小公倍数', l)
# 请输入第一个整数:12
# 请输入第二个整数:23
# 最大公约数: 1 最小公倍数 276
33.在键盘输入四位数整数,转换为英文单词输出。如:1024 one zero two four
a = int(input('请输入一个四位数整数:'))
t = 1000
if a >= 1000 and a < 10000:
while t > 0:
if a // t % 10 == 0:
print('zero', end=' ')
elif a // t % 10 == 1:
print('one', end=' ')
elif a // t % 10 == 2:
print('two', end=' ')
elif a // t % 10 == 3:
print('three', end=' ')
elif a // t % 10 == 4:
print('four', end=' ')
elif a // t % 10 == 5:
print('five', end=' ')
elif a // t % 10 == 6:
print('six', end=' ')
elif a // t % 10 == 7:
print('seven', end=' ')
elif a // t % 10 == 8:
print('eight', end=' ')
elif a // t % 10 == 9:
print('nine', end=' ')
t = t // 10
else:
print('您输入的数据有误')
# 整数由左向右拆分
# 请输入一个四位数整数:1024
# one zero two four
34.fibonacci数列,古典数学问题:一对兔子,出生后第三个月都生出一对兔子,小兔子到第三个月又生出一对兔子,兔子不死,问兔子的出生规律:1 1 2 3 5 8 13……
a1 = 1
a2 = 1
for i in range(6):
print(a1,a2,end=' ')
a1 = a1 + a2
a2 = a1 + a2
# fibonacci:当前项等于前两项之和
# 1 1 2 3 5 8 13 21 34 55 89 144
35.计算fibonacci数列中大于t的最小值,如:t = 6,输出8
a1 = 0
a2 = 1
a3 = 1
t = int(input('请输入需要的t的大小:'))
while a3 <= t:
a1 = a2
a2 = a3
a3 = a1 + a2
print('大于t的fibonacci最小值为:', a3)
# 请输入需要的t的大小:4
# 大于t的fibonacci最小值为: 5
36.有一张足够大的纸,厚度为0.09mm,对折多少次后超过8848m(珠穆朗玛峰高度)
t = 0
h = 0.09e-3 # 纸的厚度,单位统一为米
while 1:
h = h * 2 # 对折,厚度乘2
t = t + 1 # 记录对折次数
if h>8848:
break
print('对折了',t,'次')
# 对折了 27 次
37.爱因斯坦阶梯问题,多级阶梯,每步跨2阶余1阶、跨3阶余2阶、跨5阶余4阶、跨6阶余5阶、跨7阶正好到顶。一共多少阶?
i = 7
while 1:
if i%2==1 and i%3==2 and i%5==4 and i%6==5 :
break
i +=7
print('阶梯总数为:',i) #119
38.百钱买百鸡问题。鸡翁值钱5,鸡母值钱3,鸡雏3值1钱,百钱买白鸡,鸡翁,鸡母,鸡雏各几何?
for c in range(101):
for h in range(101):
for ch in range(101):
if c + h + ch ==100 and c*5 + h*3 + ch//3 == 100 and ch%3 ==0:
print('公鸡=',c,'只','母鸡=',h,'只','小鸡=',ch,'只')
# 公鸡= 0 只 母鸡= 25 只 小鸡= 75 只
# 公鸡= 4 只 母鸡= 18 只 小鸡= 78 只
# 公鸡= 8 只 母鸡= 11 只 小鸡= 81 只
# 公鸡= 12 只 母鸡= 4 只 小鸡= 84 只
39.搬砖问题:36个人36块砖,男4女3,小孩2人1块,一次性搬完,需要各多少人?
for m in range(10):
for w in range(14):
for c in range(37):
if m + w + c == 36 and m * 4 + w * 3 + c // 2 == 36 and c % 2 == 0:
print('男=', m, '人', '女=', w, '人', '小孩=', c, '人')
# 男= 3 人 女= 3 人 小孩= 30 人
40.猴子偷桃:一天吃一半还多吃一个,第七天吃完,偷桃总数?
n = 0
for i in range(7):
n = (n + 1) * 2
print('桃子总数:', n)
# 桃子总数: 254
41.打印图形
![](https://i-blog.csdnimg.cn/blog_migrate/888957695d6b90152ae411e97cf6e001.png)
h = int(input('请输入图形高度:'))
for i in range(h):
for j in range(0, h - i - 1):
print(' ', end='')
for k in range(0, 2 * i + 1):
print('*', end='')
print()
# 请输入图形高度:6
# *
# ***
# *****
# *******
# *********
# ***********
42.打印图形
![](https://i-blog.csdnimg.cn/blog_migrate/7a240c07a1930d858a0b1cfa496f4756.png)
h = int(input('请输入图形高度:'))
for i in range(h):
for j in range(i):
print(' ', end='')
for k in range( 2 *(h-i)-1 ,0, -1):
print('*', end='')
print()
# 请输入图形高度:7
# *************
# ***********
# *********
# *******
# *****
# ***
# *
43.打印图形
![](https://i-blog.csdnimg.cn/blog_migrate/8a6fc84335daa309cea47eff2545a161.png)
h = int(input('请输入图形高度:'))
for i in range(h):
for j in range(h-i):
print(' ',end='')
for k in range(i+1):
print('*',end='')
print()
# 请输入图形高度:7
# *
# **
# ***
# ****
# *****
# ******
# *******
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)