要怎么能力学会 Python 编程呢?我感觉最好的办法就是“做中学,玩中学”,只有亲自动手去做 Python 我的项目,能力学以致用,真正把握这门编程语言,为我所用。编程玩家俱乐部推出了挑战 100+ Python 我的项目,代码和文档开源在:https://github.com/zhiwehu/10… 来吧,让咱们动手做起来!
1 分钟数学运算
我的项目需要
- 间接在控制台应用命令行运行
- 程序运行之后倒计时 1 分钟之后完结
- 随机出 100 以内的 2 个整数加减乘除运算题目(除法确保可能除尽,但除数不能为 0)
- 每出一道题目,由玩家给出答案,而后程序判断对错,接着出下一题,并且显示剩余时间
- 1 分钟工夫完结,显示总题数和正确率(正确率准确到小数点后 2 位),并将之前的题目和答案显示进去
我的项目练习
- 格式化字符串输入
- 循环
- 条件判断
- 列表
- 异样解决
- 自定义函数
- 工夫工具包
- 随机工具包
我的项目参考代码
import time
import random
def get_divisor(n):
'''
随机取得一个数 n 的整数除数。:param n: 一个整数
:return: 一个数 n 的整数除数
'''
l = []
for i in range(1, n + 1):
if n % i == 0:
l.append(i)
return random.choice(l)
if __name__ =='__main__':
ops = ['+', '-', '*', '/']
start_time = time.time()
total = 0
correct = 0
questions = []
while time.time() - start_time <= 60:
a = random.randint(1, 99)
op = random.choice(ops)
if op == '/':
# 如果是除法,b 为 a 的一个随机整数除数
b = get_divisor(a)
else:
b = random.randint(1, 99)
# 正确答案
a_op_b = '{}{}{}'.format(a, op, b)
c = int(eval(a_op_b))
# 让用户输出答案
try:
ans = int(input('{} ='.format(a_op_b)))
except:
ans = ''
# 查看是否正确
if time.time() - start_time <= 60:
if c == ans:
print('正确!剩余时间 {} 秒。'.format(int(60 - (time.time() - start_time))))
correct = correct + 1
else:
print('谬误!剩余时间 {} 秒。'.format(int(60 - (time.time() - start_time))))
total = total + 1
questions.append('{}={}'.format(a_op_b, ans))
print('{}道题目,正确率 {:.2f}%。'.format(total, correct / total * 100))
for q in questions:
print(q)
测试运行
将代码保留为 1.py,而后在控制台运行:
python 1.py