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.将字符串反转后输出
def rvs(s
):
if s
=="":
return s
else:
return rvs
(s
[1:])+s
[0]
9.科赫曲线绘制雪花
import turtle
as t
def koch(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)
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
)
t
.right
(120)
t
.done
()
myDraw
()