练习题目
一、语言元素
练习1:华氏温度转摄氏温度。
摄氏温度©与华氏温度(F)的换算式是:C = 5×(F- 32)/9,F = 9×C /5+32。
# 华氏温度转摄氏温度
# 输入华氏温度,通过转化公式,输出摄氏温度
F = float(input("请输入华氏温度:"))
C = (5/9)*(F-32)
print("摄氏温度为:%.2f" %C)
总结:
- 字符串类型不能和数字相加减,然后使用了int()函数,又发现问题了,如果是输入小数时又会报错,然后就应该换成float()函数。
练习2:输入圆的半径计算计算周长和面积。
# 输入圆的半径计算计算周长和面积。
import math
r = float(input("输入圆的半径:"))
L = 2*(math.pi)*r
S = (math.pi)*r**2
print("周长为:%.2f"% L)
print("面积为:%.2f"% S)
总结:
π \pi π的表达方式
import math
math.pi
import numpy as np
np.pi
平方的表达方式
r**2
pow(r,2)
import numpy as np
np.power(r,2)
练习3:输入年份判断是不是闰年。
# 输入年份判断是不是闰年。
y = int(input("请输入年份:"))
if (y%4 == 0 and y%100!=0) or y%400==0:
print("%d年是闰年" %y)
else:
print("%d年不是闰年" %y)
总结 and or not 表示与或非逻辑运算符
& | 表示位运算符 ,按位运算符是把数字看作二进制来进行计算的
二、分支结构
练习1:英制单位与公制单位互换
# 英制单位与公制单位互换
'''
长度单位: 1 英 寸=2.5400 厘 米
1 英 尺 =12 英 寸 =0.3048 米
1 码 =3 英 尺 =0.9144 米
1 英 里 =1760 码 =1.6093 千 米
'''
L = float(input("输入长度:"))
d = input('输入英制长度单位:')
if d=='英寸':
print( '%f英寸=%f厘米'%(L,L*2.54))
elif d=="英尺":
print(L ,"英尺=" ,L * 0.3048,"米")
elif d=="码":
print(str(L) + "码=" + str(L * 0.9144) + "米")
elif d=="英里":
print(str(L) + "英里=" + str(L * 1.6093) + "千米")
else:
print("输入单位错误,请重新输入")
**总结:**三种输出方式:
格式化输出
字符串拼接使用+,输出时没有空格,
多变量输出使用“,”有空格
浮点数和字符串不能用+拼接
练习2:掷骰子决定做什么
from random import randint
face = randint(1, 6)
if face == 1:
result = '唱首歌'
elif face == 2:
result = '跳个舞'
elif face == 3:
result = '学狗叫'
elif face == 4:
result = '做俯卧撑'
elif face == 5:
result = '念绕口令'
else:
result = '讲冷笑话'
print(result)
练习3:百分制成绩转等级制
"""
百分制成绩转等级制成绩
90分以上 --> A
80分~89分 --> B
70分~79分 --> C
60分~69分 --> D
60分以下 --> E
"""
score = float(input('请输入成绩: '))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('对应的等级是:', grade)
练习4:输入三条边长如果能构成三角形就计算周长和面积
# 输入三条边长如果能构成三角形就计算周长和面积
import math
a = float(input("输入三角形第一条边长:"))
b = float(input("输入三角形第二条边长:"))
c = float(input("输入三角形第三条边长:"))
if a+b>c and a+c>b and b+c>a:
L = a+b+c
print("三角形周长为:%f" % L)
p = L/2
s = math.sqrt(p*(p-a)*(p-b)*(p-c)) # 海伦公式:使用三条边长计算三角形面积
print("三角形的面积为:%f" % s)
else:
print("对不起,这三条边不能构成三角形,请重新输入")
开根号
import math
math.sqrt()
import numpy as np
np.sqrt()
练习5:个人所得税计算器。
# 个人所得税计算器。
# 个人所得税(应发工资-五险一金-起征税额)*对应的税率-对应的速算扣除数
a = float(input("应发工资:"))
b = float(input("五险一金:"))
k = a-b-5000
if k <3000:
diff = 0.03
s = 0
elif k<12000:
diff = 0.1
s = 210
elif k<25000:
diff = 0.2
s = 1410
elif k<35000:
diff = 0.25
s = 2660
elif k<55000:
diff = 0.3
s = 4410
elif k<80000:
diff = 0.35
s = 7160
else:
diff = 0.45
s = 15160
w = k*diff-s
print("个人所得税额为:%.2f" % w)
# ------------------------------------------------------------
a = float(input("应发工资:"))
b = float(input("五险一金:"))
k = a-b-5000
money = [80000,55000,35000,25000,12000,3000,0]
rate = [0.45,0.35,0.3,0.25,0.2,0.1,0.03]
deduction = [15160,7160,4410,2660,1410,210,0]
for i in range(len(money)):
if k > money[i]:
w = k*rate[i]-deduction[i]
break
print("个人所得税额为:%.2f" % w)
三、循环结构
1.用for循环实现1~100求和
sum = 0
for i in range(1,101):
sum += i
print(sum)
# 下面这种更方便---------------------
sum = sum(i for i in range(1,101))
print(sum)
2.用for循环实现1~100之间的偶数求和
sum = sum(i for i in range(2,101,2))
print(sum)
3.猜数字游戏
计算机出一个1~100之间的随机数由人来猜
计算机根据人猜的数字分别给出提示大一点/小一点/猜对了
# 猜数字游戏
# 计算机出一个1~100之间的随机数由人来猜
# 计算机根据人猜的数字分别给出提示大一点/小一点/猜对了
import random
random.seed(0)
a = random.randint(1,100)
b = int(input("请输入数字:"))
k = 1
while k:
if a > b:
print("再大一点")
b = int(input("请再次输入:"))
elif a<b:
print("再小一点")
b = int(input("请再次输入:"))
else:
k = 0
print("猜对了")
# ----------------------------------------------------------------
import random
answer = random.randint(1, 100)
counter = 0
while True:
counter += 1
number = int(input('请输入: '))
if number < answer:
print('大一点')
elif number > answer:
print('小一点')
else:
print('恭喜你猜对了!')
break
print('你总共猜了%d次' % counter)
if counter > 7:
print('你的智商余额明显不足')
说明: 上面的代码中使用了break
关键字来提前终止循环,需要注意的是break
只能终止它所在的那个循环,这一点在使用嵌套的循环结构(下面会讲到)需要引起注意。除了break
之外,还有另一个关键字是continue
,它可以用来放弃本次循环后续的代码直接让循环进入下一轮。
4.输出乘法口诀表(九九表)
# 输出乘法口诀表(九九表)
for i in range(1,10):
for j in range(1,i+1):
print(str(j)+"*"+str(i)+"="+str(i*j),end=' ')
print()
# ---------------------------------------------------------------
for i in range(1, 10):
for j in range(1, i + 1):
print('%d*%d=%d' % (j, i, i * j), end='\t')
print()
# -------------------------------------------------------------------
row = 1 # 行数,九九乘法表有九行,因此row从1开始到9结束
while row <= 9:
col = 1 #列数,
while col <= row: # 第一行有一次输出,第二行有两次输出,...col < row正好符合该条件
print("%d * %d = %d\t" % (col,row,row*col),end="")
# print() 默认每次输出都会换行,是因为默认有一个换行符\n,使用end="",就可以不让他换行
col += 1
print() # 内层循环每循环一次都强制换行,开始下一行的输出
row += 1
5.输入一个正整数判断它是不是素数
# 输入一个正整数判断它是不是素数
# 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数
a = int(input("输入一个正整数:"))
k&#