python核心编程第二章习题
""" python核心编程练习2 使用的python版本: Python 3.2.3 """ def t2_5(): """分别写一个while和for循环,输出整数0~10。 """ i = 0 while i <= 10: print(i,'', end='') i += 1 print() for i in range(0, 11): print(i,'', end='') print() def t2_6(): """条件判断。 判断一个数是整数,负数,或者等于0. """ try: anum = int(input('Enter a number: ')) except ValueError: print('what you entered is not a number!!!') else: print(anum) def t2_7(): """输入一个字符串,逐个字符输出该字符串。使用while和for """ astr = input('Enter a string: ') for eachar in astr: print(eachar, end='') print() strlen = len(astr) i = 0 while i < strlen: print(astr[i], end='') i += 1 print() def t2_8(): """输入5个数,分别存入list和tuple,算出他们的和 """ alist = [] atuple = () for i in range(0, 5): num = int(input('Enter a number: ')) alist.append(num) atuple = atuple + (num, ) total = 0 for num in alist: total += num print(total) total = 0 for num in atuple: total += int(num) print(total) def t2_9(): """输入5个数,存入list和tuple,算出他们的平均值 在python3.2版本中,单除号/实现的是小数除法,可以直接用,不过这里考虑 输入的数可能为浮点数,所以也用float对输入进行转换 如果在2.x版本中,如果输入的是整数,需要先将数转成float,再除 """ alist = [] atuple = () # input 5 numbers for i in range(0, 5): num = float(input('Enter a number: ')) alist.append(num) atuple = atuple + (num, ) # 向一个tuple添加元素,要使用tuple相加 # 所以这里先办单个数num组成一个只有一个 # 元素的tuple再与原来的tuple相加 total = 0 for num in alist: total += num print(total/len(alist)) total = 0 for num in atuple: total += num print(total/len(atuple)) def t2_10(): """让用户输入一个1~100之间的数,如果用户输入的数满足条件, 显示成功并推出,否则显示错误信息,然后再次提示用户输入。 """ prompt = 'Please input a number (1~100): ' while True: try: num = int(input(prompt)) except ValueError: print('Not a number') else: if 1 <= num <= 100: break else: print(num, 'not correct') print('Yes, you got it.') def t2_11(): """带文本菜单的程序。 菜单如下(1)取5个数的和 (2)取5个数的平均值 (X)退出 """ prompts = ''' (1)sum of five numbers. (2)average of five numbers. (X)Quit Enter your choice: ''' while True: choice = input(prompts).strip()[0].lower() print('\nYou picked [{}]'.format(choice)) if choice not in '12x': print('Invalid options:', choice) elif choice == '1': t2_8() elif choice == '2': t2_9() else: break def t2_15(): """用户输入三个数,保存至不同的变量中。不使用列表或排序算法, 自己写代码来对这三个数进行排序:从大到小,从小到大 """ aa = int(input('Enter a number: ')) bb = int(input('Enter a number: ')) cc = int(input('Enter a number: ')) a, b, c = aa, bb, cc # from smallest to largest if a > b: a, b = b, a # swap two value if a > c: a, c = c, a if b > c: b, c = c, b print('{} < {} < {}'.format(a, b, c)) # from largest to smallest a, b, c = aa, bb, cc if a < b: a, b = b, a if a < c: a, c = c, a if b < c: b, c = c, b print('{} > {} > {}'.format(a, b, c)) def t2_16(): """输入一个文件名,然后读取该文件,并将文件内容输入到屏幕上 """ filename = input('Enter file name: ') fobj = open(filename, 'r') for eachline in fobj: print(eachline, end='') # 默认的print语句会加换行,这里把换行去掉 fobj.close() if __name__ == '__main__': #t2_5() #t2_6() #t2_7() #t2_8() #t2_9() #t2_10() #t2_11() #t2_15() #t2_16()