[py]三次退出+n退出+加法训练器

来源:互联网 发布:利口酒 知乎 编辑:程序博客网 时间:2024/06/07 10:18

1.实现基本常用功能

#!/usr/bin/env python# coding=utf-8'''不用判断    1,是否输入即按回车    2,输入值的类型    3,或者ctrl+c以上这些异常均可以不用考虑.使用try解决'''num = 0while True:    try:        if int(input("salary > ")) == 1000:            print("correct!")            break        if num == 3:            print("your salary is 1000")            break        else:            print("try again")            num+=1    except(KeyboardInterrupt,EOFError,ValueError):        print("invalid input, try again")

2. 实现基本常用功能

'''用户输入n才退出    1, nxxx也退出    2.默认为'''while True:    try:        opt = input("Again? [y]").lower()        # nsdfadxxx 这种情况才退出        if opt and opt[0] == 'n':            break    except(KeyboardInterrupt,EOFError):        break

3.实现加法训练器

#!/usr/bin/env python# coding=utf-8'''实现10以内的加法运算.'''from operator import add, subfrom random import choice, randintops = {'+': add, '-': sub}def doprob():    '''生成算数题目'''    op = choice("+-")    nums = [randint(1, 10) for i in range(2)]    nums.sort(reverse=True) # 注这里返回的是None    ans = ops.get(op)(*nums)    pr = '%d %s %d= ' % (nums[0], op, nums[1])    num = 0    while True:        try:            if (int(input(pr))) == ans:                print("correct!")                break            if num == 2:                print("the ans is %s %d" % (pr, ans))            else:                print("increct,try again!")                num += 1        except(KeyboardInterrupt, EOFError, ValueError):            print("invalid input ,try again!")def main():    while True:        doprob()        try:            opt = input("Again?[y]").lower()            if opt and opt[0] == "n":                break        except(KeyboardInterrupt, EOFError):            breakif __name__ == '__main__':    main()