第1关:整数四则运算
1.数值运算
Python
可以方便的实现计算器的功能。数学意义上的加、减、乘、除在 Python
中分别以符号“+
、-
、*
、/
”表示。
计算两个非零整数的和差积商:
整数1 +
整数2 = 和 整数1 -
整数2 = 差 整数1 *
整数2 = 积 整数1 /
整数2 = 商
2.运行代码
"""
试编程实现分两行输入两个非零整数,并在4 行中按顺序输出两个数的加、减、乘、除的计算结果。
要求输出与如下示例格式相同,符号前后各有一个空格。
"""
#输入整数变量a和b,定义输入函数
##############Begin##################
a = int(input())
b = int(input())
##############End####################
#a和b之间进行四则运算并输出
##############Begin##################
print(f'{a} + {b} = {a + b}')
print(f'{a} - {b} = {a - b}')
print(f'{a} * {b} = {a * b}')
print(f'{a} / {b} = {a / b}')
##############End####################
第2关:浮点类型四则运算
1.相关知识
1. float()函数
float()函数可以将浮点数的字符串或整数转为浮点数类型,可以直接将input()做为参数,将用户输入的浮点数字符串直接转为浮点数。
a = float(input())
# 输入一个浮点数字符串,将其转为浮点数,例如将'3.14'转为3.14
2.str.format()方法详解
str.format()
方法通过字符串中的大括号{}
来识别替换字段 ,从而完成字符串的格式化。可以用{:.nf}
控制输出浮点数精确保留小数点后n位,其中n表示保留小数位数,f表示浮点数float。print('{:.2f}'.format(3.1415926)) # 精确保留小数点后两位,结果实质上是字符串类型
print('{:.3f}'.format(3.1000000)) # 精确保留小数点后三位,保留位数不足补0
print(round(3.1415926, 2)) # 3.14
print(round(3.1000000, 3)) # 3.1,舍弃末尾的0,保留浮点数最短表示
2.本关任务
分两行输入两个非零浮点数,并在 4
行中按顺序输出两个数的加、减、乘、除的计算式和计算结果。计算结果用 str.format()
方法保留小数点后 3
位数字。输出格式如下,每个符号前后各保留一个空格。
浮点数1 `+` 浮点数2 = 和
浮点数1 `-` 浮点数2 = 差
浮点数1 `*` 浮点数2 = 积
浮点数1 `/` 浮点数2 = 商
3.运行代码:
'''
试编程实现分两行输入两个非零浮点数,并在4 行中按顺序输出两个数的加、减、乘、除的计算式和计算结果。计算结果str.format()方法保留小数点后3位数字。要求输出与如下示例格式相同,符号前后各有一个空格。
'''
#输入浮点型变量a和b,定义输入函数
#############Begin##############
a = float(input())
b = float(input())
#############End################
#a和b之间进行四则运算并输出
#############Begin################
print(f'{a} + {b} = {a + b:.3f}')
print(f'{a} - {b} = {a - b:.3f}')
print(f'{a} * {b} = {a * b:.3f}')
print(f'{a} / {b} = {a / b:.3f}')
#############End################
第3关:用户输入数值和符号
1.相关知识
1.eval()函数
eval()函数
用于将一个字符串表达式转为Python中的对象或返回可计算表达式的值。
print(eval('3 + 4'))
# 将字符串当成有效的表达式来求值并返回计算结果7
print(eval('pow(2, 3)'))
# 将字符串当成有效的表达式来求值并返回计算结果8
2.str.format()返回字符串
str.format()返回值总是一个字符串
print('{}{}{}'.format(3, '+', 4))
# 结果为字符串 '3+4'
print(eval('{}{}{}'.format(3, '+', 4)))
# eval()将字符串'3+4'转为3+4再计算结果为7
2.本关任务
根据提示,在右侧编辑器补充代码,完善一个根据用户输入的数值和符号进行四则运算的小程序。
3.运行代码
a = int(input('请输入一个整数:'))
b = int(input('请再输入一个整数:'))
sign = input('请输入运算符号')
###################Begin##################################
# eval()函数把字符串f"{a}{sign}{b}"转为计算表达式
# 字符串里包含引号时,内部引号与边界应用不同的引号
###################End##################################
print(f'{a}{sign}{b}={eval(f"{a}{sign}{b}")}')
第4关:随机出题的四则运算
1.相关知识
1. random模块用法
- random.randint(m,n) 随机生成在范围之内的整数,两个参数分别表示上限和下限。 m、n必须是整数。 函数返回m 和n之间的任意整数,闭区间。
import random
result = random.randint(1, 10) # 返回 [1, 10] 之间的任意整数
print(f"取到的随机整数是: {result}") # 取到的随机整数是: 6
- random.choice(list) 从序列中随机抽选一个元素
import random
sign = random.choice(['+', '-', '*', '/']) # 从列表中随机选择一个元素
# 返回 [1, 10] 之间的任意整数
print(f"取到的随机符号是: {sign}") # 取到的随机整数是: /
2. 分支语句
if和else可以构建一个分支语句,满足if后面条件的时候执行if后面缩进的语句块里的语句,否则执行else后面缩进的语句块中的语句。
a = input() # 输入一个整数a,例如3
b = input() # 输入第二个整数b,例如5
result = int(input()) # 输入a,b两个数加和的结果,例如8
if result == eval(f"{a}{'+'}{b}"): # 判断结果是否正确
print('恭喜你,回答正确')
else:
print('回答错误,你要加油哦!')
3. 函数的定义和调用
定义函数本质上是给一段程序起一个名字,方便重复调用这段程序。
def 函数名(): # 函数定义
pass # 缩进的一条或多条程序语句
if __name__ == '__main__':
pass # 缩进块里的语句用于调用函数和给函数传递参数
示例
def add(m, n): # 定义函数add,调用时3传给m,5传给n
"""计算m和n的和并带计算表达式输出"""
print(f'{m} + {n} = {m + n}') # 输出3 + 5 = 8
if __name__ == '__main__':
a = int(input()) # 输入3
b = int(input()) # 输入5
add(a, b) # 3和5做为参数传给函数add
2.编程要求
根据提示,在右侧编辑器补充代码,完善一个能随机出题进行四则运算的小程序。
3.运行代码
import random
random.seed(0)
def calculator(n, maximum):
"""随机产生n道正整数四则运算的题目,用户输入计算结果,
判断输入正确与否,并统计正确率。题目保证减法不出现负数."""
correct = 0
for i in range(n): # 循环n次,每次产生一个新问题
b = random.randint(0, maximum) # 随机产生一个maximum以内整数
a = random.randint(b, maximum) # 随机产生一个b到maximum以内整数,避免减法出现负数
sign = random.choice('+-*/') # 随机获取一个运算符号
#################Begin##############################
print(f'{a}{sign}{b}=', end='')
result = float(input())
if result == eval(f"{a}{sign}{b}"):
print('恭喜你,回答正确')
correct=correct+1
else:
print('回答错误,你要加油哦!')
#################End##############################
print(f'答对{correct}题,正确率为{correct / n * 100}%')
if __name__ == '__main__':
num = int(input('请输入出题数量:'))
m = int(input('请输入参与计算的最大数字:'))
calculator(num, m)