Python习题(附答案)1语言基础

头歌实践教学平台——​Python编程技术

Python语言基础

第1关:浮点数四则运算与格式化输出

任务描述

Python 可以方便的实现计算器的功能。数学意义上的加、减、乘、除在Python中分别以符号“+、-、*、/”表示。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

试编程实现分两行输入两个非零浮点数,并在4 行中按顺序输出两个数的加、减、乘、除的计算式和计算结果。计算结果str.format()方法严格保留小数点后3位数字。要求输出与如下示例格式相同,符号前后各有一个空格。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

浮点数1 + 浮点数2 = 和 浮点数1 - 浮点数2 = 差 浮点数1 * 浮点数2 = 积 浮点数1 / 浮点数2 = 商

示例‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入:

   2.66
   3.1415926    

输出:

   2.66 + 3.1415926 = 5.802
   2.66 - 3.1415926 = -0.482
   2.66 * 3.1415926 = 8.357
   2.66 / 3.1415926 = 0.847

平均代码量 5 行

代码文件

a = float(input())
b = float(input())
print('{} + {} = {:.3f}'.format(a,b,a + b))
print('{} - {} = {:.3f}'.format(a,b,a - b))
print('{} * {} = {:.3f}'.format(a,b,a * b))
print('{} / {} = {:.3f}'.format(a,b,a / b))

​第2关:计算矩形面积

任务描述

用户输入矩形的长和宽,计算其面积并输出。

a = eval(input())   #输入整数字符串,转换为整数;输入浮点数字符串,转换为浮点数
b = float(input())  #输入整数和浮点数,都转换为浮点数
c = int(input())    #只接受整数输入,输出为整数
#eval()和float()函数都可以把input() 函数接收到的数值型字符串转为数值类型
#例:float('3.14') 的结果是数值 3.14
#int()函数可以把整数字符串转为整数
#例:int('5') 的结果是数值 5

输入格式

第一行输入一个数字,代表矩形的长‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
第二行输入一个数字,代表矩形的宽‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
(输入使用input(),不要增加额外的提示信息)

输出格式

输出矩形的面积,不限定小数位数

示例1

输入:

3.1415926
5.88

输出:

18.472564488

示例2

输入:
5
8
输出:
40

平均代码量 2 行

代码文件

width=eval(input())
length=eval(input())
area = width * length
print(area)

​第3关:简单数学运算

任务描述

输入两个整数 a,b,顺序输出加、减和乘法运算的结果。

输入格式

第一行输入整数 a‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
第二行输入整数 b

输出格式

第一行输出 a +b的结果‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
第二行输出 a - b 的结果‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
第三行输出 a * b 的结果

参考下面程序

 def hello(user):
    # 在此处输入你的代码
    print('hello', user)  # 你输入的多行代码都要与上一行处于相同的缩进量
    print('你好!', user)
if __name__ == '__main__':
    user_name = input()  # 输入一个姓名
    hello(user_name)     # 调用你定义的函数进行输出
    
# 输入
# 张三
# 输出
# hello 张三
# 你好! 张三

示例

输入:

3
2

输出:

5
1
6

平均代码量 9 行

代码文件

def solve(a,b):
    # 在此处输入你的代码
    print(a + b)
    print(a - b)
    print(a * b)

if __name__ == '__main__':
    a = int(input())  # 输入转为整数
    b = int(input())  # 输入转为整数
    solve(a,b)        # 调用你定义的函数进行数学运算

第4关:空格分隔格式化输出

任务描述

本关任务:编写一个日期格式化输出的小程序。

相关知识

为了完成本关任务,你需要掌握:
Python 的空格分隔格式化输出

格式化输出

Python 中空格分隔格式化输出:
比如要求用户输入用户名、年龄和工作,然后打印如下格式:

name = input( )
age = input( )
job = input( )
print(name, age ,job)

输入:

Danny
22
worker

输出:

Danny 22 worker

编程要求

根据提示,在右侧编辑器补充代码,在三行中分别输入当前的年、月、日的整数值,按要求完成输出。
任务:输出年月日,空格分隔,格式:2020 09 16

测试说明

平台会对你编写的代码进行测试:

测试输入:

2021
04
26

预期输出:

2021 04 26

代码文件

# 实验要求
# 在三行中分别输入当前的年、月、日的整数值,按要求完成输出。
# 1 输出年月日,空格分隔,格式:2020 09 16

# 测试数据
# 输入(>>>开头的行表示输入数据)
# >>>2021
# >>>04
# >>>26

# 输出
# 2021 04 26

# 以下为代码区

# =======================================================
year = input()                         # 输入当前年
month = input()                        # 输入当前月
date = input()                         # 输入当前日
# =======================================================
# 此处去掉注释符号“#”并补充你的代码
print(year,month,date,sep=' ')
# =======================================================

第5关:多对象的分隔符号格式化输出

任务描述

本关任务:编写一个日期格式化输出的小程序。

相关知识

为了完成本关任务,你需要掌握:
1.python的多对象分隔符号输出;

格式化输出

Python中多对象分隔符号输出:
比如要求用户输入用户名、年龄和工作,然后打印如下格式:

name = input( )
age = input( )
job = input( )
print(name, age ,job , sep='-')
print(name, age ,job , sep='/')
print(name, age ,job , sep=',')
print(name, age ,job , sep='|')

输入:

Danny
22
worker

输出:

Danny-22-worker
Danny/22/worker
Danny,22,worker
Danny|22|worker

编程要求

根据提示,在右侧编辑器补充代码,在三行中分别输入当前的年、月、日的整数值,按要求完成输出。
任务:

输出年-月-日,连字符“-”分隔,格式:2020-09-16
输出年/月/日,斜线“/”分隔,格式:2020/09/16
输出月,日,年,逗号“,”分隔,格式:09,16,2020

测试说明

平台会对你编写的代码进行测试:

测试输入:

2021
04
26

预期输出:

2021-04-26
2021/04/26
04,26,2021

代码文件

# 实验要求
# 在三行中分别输入当前的年、月、日的整数值,按要求完成输出。

# 2 输出年-月-日,连字符“-”分隔,格式:2020-09-16
# 3 输出年/月/日,斜线“/”分隔,格式:2020/09/16
# 4 输出月,日,年,逗号“,”分隔,格式:09,16,2020


# 测试数据
# 输入(>>>开头的行表示输入数据)
# >>>2021
# >>>04
# >>>26

# 输出
# 2021-04-26
# 2021/04/26
# 04,26,2021

# 以下为代码区

# =======================================================
year = input()                         # 输入当前年
month = input()                        # 输入当前月
date = input()                         # 输入当前日
# =======================================================
# 此处去掉注释符号“#”并补充你的代码
print(year,month,date,sep='-')
print(year,month,date,sep='/')
print(month,date,year,sep=',')
# =======================================================

第6关:format方式格式化输出

任务描述

本关任务:编写一个日期格式化输出的小程序。

相关知识

为了完成本关任务,你需要掌握:
1.python 的 format 格式化输出。

格式化输出

Python 中 format() 格式化输出的方式:

利用format格式化输出

format 格式化输出,比较简单,实用,f或者F都可以哦。

示例1:

name = input("请输入您的姓名:")
QQ = input("请输入您的qq:")
phone = input("请输入您的电话:")
addr=input("请输入您的地址:")
print('姓名是{}  年龄是{}岁'.format(name,25))
print('QQ是{}'.format(QQ))
print('手机号是{}'.format(phone))
print('地址是{}'.format(addr))

输出:

姓名是Bertram  年龄是25岁
QQ是123425212
手机号是010-24184241
地址是北京

示例2:

name = 'Bertram'
age = 30
print("hello,{1},you are {0}".format(age,name))#索引是根据format后的数据进行的哦

输出:

hello,Bertram,you are 30

示例3:

name = '杰'
age =26
print("hello,{name},you are {age}.".format(age=age, name=name))

输出:

hello,,you are 26.

编程要求

根据提示,在右侧编辑器补充代码,在三行中分别输入当前的年、月、日的整数值,按要求完成输出。
任务:用 str.format() 格式输出,格式:2021年04月26日

测试说明

平台会对你编写的代码进行测试:

测试输入:

2021
04
26

预期输出:

20210426

代码文件

# 实验要求
# 在三行中分别输入当前的年、月、日的整数值,按要求完成输出。
# 5 用str.format()格式输出,格式:2020 年09 月16 日


# 测试数据
# 输入(>>>开头的行表示输入数据)
# >>>2021
# >>>04
# >>>26

# 输出
# 2021年04月26日
# 以下为代码区

# =======================================================
year = input()                         # 输入当前年
month = input()                        # 输入当前月
date = input()                         # 输入当前日
# =======================================================
# 此处去掉注释符号“#”并补充你的代码
print('{}年{}月{}日'.format(year,month,date))
# =======================================================

第7关:字符串拼接方式格式化输出

### 任务描述 本关任务:编写一个日期格式化输出的小程序。

相关知识

为了完成本关任务,你需要掌握:
1.使用字符串拼接方式进行格式化输出。

格式化输出

Python 中字符串拼接方式格式化输出的方式:
比如要求用户输入用户名、年龄和工作,然后打印如下格式:

name = input( )
age = input( )
job = input( )
print("name="+name+","+"age= "+age+","+"job="+job)

输入:

Danny
22
worker

输出:

name=Danny,age =22,job=worker

编程要求

根据提示,在右侧编辑器补充代码,在三行中分别输入当前的年、月、日的整数值,按要求完成输出。
任务:用字符串拼接方法输出,格式:2021年04月26日

测试说明

平台会对你编写的代码进行测试:

测试输入:

2021
04
26

预期输出:

20210426

代码文件

# 实验要求
# 在三行中分别输入当前的年、月、日的整数值,按要求完成输出。
# 6 用字符串拼接方法输出,格式:2020 年09 月16 日

# 测试数据
# 输入(>>>开头的行表示输入数据)
# >>>2021
# >>>04
# >>>26

# 输出
# 2021年04月26日
# 以下为代码区

# =======================================================
year = input()                         # 输入当前年
month = input()                        # 输入当前月
date = input()                         # 输入当前日
# =======================================================
# 此处去掉注释符号“#”并补充你的代码
print(year+"年"+month+"月"+date+"日")
# =======================================================

第8关:欢迎入学

任务描述

本关任务:编写一个欢迎入学的小程序。

相关知识

问题描述

开学了,你考上了武汉理工大学,校园的电子屏上显示着以下欢迎界面:

|++++++++++++++++++++++|
|                      |
|   Welcome to WHUT    |
|                      |
|++++++++++++++++++++++|

以下为代码区:

print('|++++++++++++++++++++++|')
print('|                      |')
print('|   Welcome to WHUT    |')
print('|                      |')
print('|++++++++++++++++++++++|')

编程要求

根据提示,在右侧编辑器补充代码,完成相关任务的编程。

编写程序,用户入自己的姓名,输出以上界面后,再在下一行输出“欢迎您,***同学!”

测试说明

平台会对你编写的代码进行测试:
测试输入:李明
预期输出:

|++++++++++++++++++++++|
|                      |
|   Welcome to WHUT    |
|                      |
|++++++++++++++++++++++|


欢迎您,李明同学!

代码文件

"""
编写程序,用户入自己的姓名,输出以下界面后,再在下一行输出“欢迎您,***同学!”
|++++++++++++++++++++++|
|                      |
|   Welcome to WHUT    |
|                      |
|++++++++++++++++++++++|
"""

my_name = input()  # 输入学生的姓名                             
########### Begin ############
# 输出以上界面
print('|++++++++++++++++++++++|')
print('|                      |')
print('|   Welcome to WHUT    |')
print('|                      |')
print('|++++++++++++++++++++++|')
print('欢迎您,'+my_name+'同学!')

# 输出“欢迎您,***同学!”

########### End ############

第9关:整数四则运算

任务描述

本关任务:编写一个能计算整数四则运算及格式化输出的小程序。

相关知识

问题描述

Python 可以方便的实现计算器的功能。数学意义上的加、减、乘、除在 Python 中分别以符号“+、-、*、/”表示。 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

试编程实现分两行输入两个非零整数。

整数1 + 整数2 = 和
整数1 - 整数2 = 差
整数1 * 整数2 = 积
整数1 / 整数2 =

整数四则运算相关实例:

输入两个非零整数,在 4 行中按顺序输出两个数的加、减、乘、除的计算结果。

代码示例 1:

a = 5
b = 10
c = a + b
# 输出计算结果
print(c)      
print(a + b)  

代码示例 2:

a = 5
b = 10
c = a + b
# 输出带格式计算结果
print('a+b=', c)               # a+b= 15,输出两个对象,默认空格分隔
print('a+b=', c, sep='')       # a+b=15,用空字符串分隔,消除空格

编程要求

根据提示,在右侧编辑器补充代码,完成两行输入两个非零整数的四则运算。

测试说明

平台会对你编写的代码进行测试:

测试输入:

1
2

预期输出:

1 + 2 = 3
1 - 2 = -1
1 * 2 = 2
1 / 2 = 0.5

代码文件

"""
试编程实现分两行输入两个非零整数,并在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####################

第10关:浮点类型四则运算

任务描述

本关任务:编写一个实现分两行输入两个非零浮点数,并在 4 行中按顺序输出两个数的加、减、乘、除的计算式和计算结果的小程序。

相关知识

str.format()方法详解
str.format() 方法通过字符串中的花括号 {} 来识别替换字段 replacement field ,从而完成字符串的格式化。
替换字段 由字段名 field name 和转换字段 conversion field 以及格式说明符 format specifier 组成,即一般形式为 {字段名!转换字段:格式说明符}。
字段名分为简单字段名 simple field name 和复合字段名 compound field name。
而转换字段和格式说明符都是可选的。
简单字段名有三种写法:

省略不写 {}
数字 {十进制非负整数}
变量名 {合法的 Python 标识符}
精度:

精度指定了小数点后面要展示多少位小数
对于非数字类型,精度指定了最大字段宽度
整数类型不能指定精度
str.format()方法示例

print('我叫{},今年{}岁。'.format('小明', 18))
"""
我叫小明,今年18岁。
"""
print('{0:{1}}'.format(3.14159, '.4f'))
"""
3.1416
"""
问题描述

试编程实现分两行输入两个非零浮点数,并在 4 行中按顺序输出两个数的加、减、乘、除的计算式和计算结果。计算结果 str.format() 方法保留小数点后 3 位数字。

浮点数1 + 浮点数2 = 和
浮点数1 - 浮点数2 = 差
浮点数1 * 浮点数2 = 积
浮点数1 / 浮点数2 = 商

代码示例 1:

a = 5.2
b = 10.2
c = a + b
# 输出带格式计算结果
print('5.2+10.2=', c, sep='')  # 5.2+10.2=15.4,2个对象,空格分隔
print(a, b, sep='+', end='=')  # 5.2+10.2= ,2个对象,用+分隔,用=结束,不换行
print(c)                       # 5.2+10.2=15.4,接上一条语句输出

编程要求

根据提示,在右侧编辑器补充代码,试编程实现分两行输入两个非零浮点数,并在 4 行中按顺序输出两个数的加、减、乘、除的计算式和计算结果,使用 str.format() 方法保留小数点后 3 位数字。

测试说明

平台会对你编写的代码进行测试:

测试输入:

2.66
3.1415926

预期输出:

2.66 + 3.1415926 = 5.802
2.66 - 3.1415926 = -0.482
2.66 * 3.1415926 = 8.357
2.66 / 3.1415926 = 0.847

代码文件

'''
试编程实现分两行输入两个非零浮点数,并在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################

第11关:用户输入数值和符号

任务描述

本关任务:编写一个根据用户输入的数值和符号进行四则运算的小程序。

相关知识

为了完成本关任务,你需要掌握:

1.evel()函数详解

evel()函数详解
在 Python 中 evel()函数 的语法格式为 eval(expression, globals=None, locals=None),注意后面还有 globals 参数和 locals 参数。eval() 函数用于执行一个字符串表达式,并且返回该表达式的值。

expression:表达式,上面提到 evel 函数用于执行一个字符串表达式,表达式的内容就放在此处。当表达式涉及到
globals:该部分必须是字典!否则程序会出错。当定义了 globals 参数之后eval函数的作用域会被限定在globals中。
locals:该参数掌控局部的命名空间,功能和 globals 类型,不过当参数冲突时,会执行 locals 处的参数。
expression参数示例
代码示例:

a=10;
print(eval("a+1"))

运行结果为11。

解析:因为此处没有指定 globals 和 locals,所以直接执行 expression 部分的内容。该程序的效果等价于 a=10 print(a+1)。

globals参数示例

a=10;
g={'a':4}
print(eval("a+1",g))

运行结果为5。

解析:因为现在指定了 globals,所以在 expression 部分的作用域就是 globals 指定的字典范围内。所以此时外面的 a=10 被屏蔽,取用字典中的值。

locals参数示例

a=10
b=20
c=30
g={'a':6,'b':8}
t={'b':100,'c':10}
print(eval('a+b+c',g,t))

运行结果为116。

解析:根据上面题目的练习我们知道了当有 globals 和 locals 时作用的范围域是在 globals 和 locals 中,所以 a=10 , b=20 , c=30 不会被应用。 a 和 c 的值分别去字典 g 和字典 t 中的值,当 globals 和 locals 中都有参数 b 时取 locals 中的值。所以 a=6 , b=100 ,c=10。

代码示例 1:

#用户输入计算数据
a = input()          # 输入 5,默认为字符串'5'
b = input()          # 输入 10,默认为字符串'10'
c = int(a) + int(b)  # 转为整数做数学运算
print('{}+{}={}'.format(a, b, c))  # 5+10=15,格式化输出
print(f'{a}+{b}={c}')              # 5+10=15,格式化输出

代码示例 2:

#用户输入数值和符号
a = int(input('请输入一个整数:'))    # 输入字符串'10',转整数10
b = int(input('请再输入一个整数:'))  # 输入字符串'5',转整数5
sign = input('请输入运算符号')
print(f'{a}{sign}{b}={eval(f"{a}{sign}{b}")}')   
# eval()函数把字符串f"{a}{sign}{b}"转为计算表达式
# 字符串里包含引号时,内部引号与边界应用不同的引号

编程要求

根据提示,在右侧编辑器补充代码,完善一个根据用户输入的数值和符号进行四则运算的小程序。

测试说明

平台会对你编写的代码进行测试:

测试输入:

请输入一个整数:10
请再输入一个整数:6
请输入运算符号:*

预期输出:

10*6=60

代码文件

a = int(input('请输入一个整数:'))    
b = int(input('请再输入一个整数:')) 
sign = input('请输入运算符号')
###################Begin##################################
# eval()函数把字符串f"{a}{sign}{b}"转为计算表达式
# 字符串里包含引号时,内部引号与边界应用不同的引号
print(f'{a}{sign}{b}={eval(f"{a}{sign}{b}")}')   

###################End##################################

第12关:随机出题的四则运算

任务描述

本关任务:编写一个能随机出题的四则运算的小程序。

相关知识

为了完成本关任务,你需要掌握:

random函数用法

random函数用法

random.random()
随机生成(0,1)之间的浮点数。

random.randint(参数1,参数2)
随机生成在范围之内的整数,两个参数分别表示上限和下限。
参数 1、参数 2 必须是整数。
函数返回参数 1 和参数 2 之间的任意整数,闭区间。

import random
result = random.randint(1,10)      #返回 [1, 10] 之间的任意整数
print("result: ",result)
#输出:
#result: 6

random.randrange( )
在指定范围内,按指定基数递增的集合中获得一个随机数,有三个参数,前两个参数代表范围上限和下限,第三个参数是递增增量,不包括下限,包括上限。
使用方式如下:

random.randrange( 0,11,2)
#随机产生范围为10间隔为2的数。
#注:这里输出(0,2,4,6,8,10)中一个。

random.choice(list)
从序列中随机抽选一个数。

random.shuffle(list)
随机排序。
注:list元素为数值型

代码实例 1:

# 批量生成四则运算
# 产生10道正整数四则运算的题目,用户输入计算结果,判断输入正确与否
for i in range(10):   # 循环10次,每次产生一个新问题
    a = int(input('请输入一个整数:'))
    b = int(input('请再输入一个整数:'))
    sign = input('请输入运算符号')
    print(f'{a}{sign}{b}=', end='')  # 5+10=15,格式化输出
    result = float(input())  # 用户输入计算结果
    if result == eval(f"{a}{sign}{b}"):
        print('恭喜你,回答正确')
    else:
        print('回答错误,你要加油哦!')

编程要求

根据提示,在右侧编辑器补充代码,完善一个能随机出题进行四则运算的小程序。

测试说明

平台会对你编写的代码进行测试:

测试输入:

1
4
7

预期输出:

请输入出题数量:请输入参与计算的最大数字:4+3=恭喜你,回答正确
答对1题,正确率为100.0%

代码文件

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以内整数,避免减法出现负数
        #################Begin##############################
        list = ['+','-','*','/']
        sign = random.choice(list)
        print(f'{a}{sign}{b}=',end="")
        result = float(input())
        if result == eval(f"{a}{sign}{b}"):
           correct = correct + 1
           print('恭喜你,回答正确')
        else:
           print('回答错误,你要加油哦!')
        #################End##############################
    print(f'答对{correct}题,正确率为{correct / n * 100}%',end="")

if __name__ == '__main__':
    num = int(input('请输入出题数量:'))
    m = int(input('请输入参与计算的最大数字:'))
    calculator(num, m)

答案不唯一,欢迎评论探讨

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值