一些写过的python题
程序员文章站
2022-07-15 08:10:54
...
python题目及相关代码
1.质量单位转换
已知: 1磅(lb)=0.4535924千克(kg)
输入带有单位的质量,输出 镑 与 千克
之间的转换
样例一输入:100kg 输出:转换后的质量是 220.46 lb 样例二输入:100lb 输出:转换后的质量是 45.36 kg
def main():
str_in = input("请输入带单位的质量:")
k = 0.4535924
if str_in[-2:] == 'kg':
result = int(str_in[:-2]) / k
print('转换后的质量是' + str(result) + 'lb')
elif str_in[-2:] == 'lb':
result = int(str_in[:-2]) * k
print('转换后的质量是' + str(result) + 'kg')
else:
print("输入有误!")
if __name__ == '__main__':
main()
2.集合操作练习
A = {"p", "y", 123}
B = set("pypy123")
print(A-B)
print(B-A)
print(A&B)
print(A|B)
print(A^B)
结果:
{123}
{'3', '2', '1'}
{'p', 'y'}
{'3', 'p', '2', '1', 123, 'y'}
{'3', 123, '2', '1'}
3.计算BMI
输入:给定体重和身高值
输出: BMI指标分类信息(国际和国内)
height=eval(input('请输入身高(m):'))
weight=eval(input('请输入体重(kg):'))
BMI=float(float(weight)/(float(height)**2))
if BMI<=18.5:
print('身体状态:偏瘦')
elif 18.5<BMI<=24:
print('身体状态:正常')
elif 24<BMI<=28:
print('身体状态:超重')
elif BMI>=28:
print('身体状态:肥胖')
4.公式计算圆周率
pi=0
N=100
for i in range(N):
pi+=1/pow(16,i)*(4/(8*i+1)-\
2/(8*i+4)-1/(8*i+5)-1/(8*i+6))
print(pi)
5.蒙特卡罗法求解圆周率
#蒙特卡罗法求解圆周率
from random import random
n = 1000*1000
hits = 0
for i in range(1, n+1):
x, y = random(), random()
dist = pow(x**2 + y**2, 0.5)
if dist <= 1.0:
hits += 1
pai = 4*(hits/n)
print(pai)
6.打印进度条
#打印进度条
import time
scale = 10
for i in range(scale+1):
a = '*'*i
b = '->'+'.'*(scale-i)
c = i/scale*100
print("{:3.0f}% [{}{}]".format(c, a, b))
time.sleep(0.1)
7.输出2010年、2018年三个城市人口总和;
cities={"重庆市":{"2010人口":3017.42,"2018人口":3101.79},
"上海市":{"2010人口":2301.91,"2018人口":2423.78},
"北京市":{"2010人口":2300.24,"2018人口":2154.2}}
sum10=0
sum18=0
for i in cities.values():
sum10+=i.get("2010人口",0)
sum18+=i.get("2018人口", 0)
print("2010人口总和{:.2f}万人,2018人口总和{:.2f}万人".format(sum10,sum18))
lst=list(cities.values())
str = ''
for i in lst:
if i.get('2018年人口', 0) > i.get('2010年人口', 0):
str = 'up'
elif i.get('2018年人口', 0) < i.get('2010年人口', 0):
str = 'down'
else:
str = '-'
i['tend'] = str
for i in cities.items():
print(i)
8.将字符串反转后输出
#将字符串s反转后输出
def rvs(s):
if s=="":
return s
else:
return rvs(s[1:])+s[0]
9.科赫曲线绘制雪花
import turtle as t
def koch(size,n):#size表示绘制科赫曲线的每一个直线的长度,n表示绘制的阶数
if n==0:
t.fd(size)#绘制一条直线,也就是基例
else :
for angle in [0,60,-120,60]:
t.left(angle)
koch(size/3,n-1)#利用递归方式绘制
def myDraw():#定义控制过程
t.setup(1000,600)#定义turtle窗体大小
t.pu()#抬起画笔,海龟在飞行
t.goto(-200,100)
t.pd()#落下画笔,海龟在爬行
t.speed(10)
t.pensize(2)#画笔大小
t.pencolor("blue")#画笔颜色
level=5
length=500
for i in range(level):
koch(length,level)#调用函数绘制长度为500像素,阶数为5的科赫曲线
t.right(120)#基本框架
t.done()#让运行结果停留,手动关闭
myDraw()
下一篇: 一些python简单编程题