Python学习之《python核心编程》 第二章课后答案

来源:互联网 发布:儿童学编程好不好 编辑:程序博客网 时间:2024/05/05 10:52

2-9   循环和运算符 创建一个包含五个固定数值的列表或元组,输出他们的平均值。本练习的难点之一是通过除法得到平均值。 你会发现整数除会截去小数,因此你必须使用浮点除以得到更精确的结果。 float()内建函数可以帮助你实现这一功能。

[python] view plaincopy
  1. num=[12,12,23,34,43.3]  
  2. total=0  
  3. for x in num:  
  4.      total+=x   
  5. print float(total/5)  
2-10  带循环和条件判断的用户输入 使用 raw_input()函数来提示用户输入一个 1 和 100 之间的数,如果用户输入的数满足这个条件,显示成功并退出。否则显示一个错误信息然后再次提示用户输入数值,直到满足条件为止。

[python] view plaincopy
  1. x=int(raw_input('Enter a number between 1 and 100:'))  
  2. while x <1 or x>100:  
  3.         print 'Sorry you are wrong'  
  4.         x=int(raw_input('Enter a number between 1 and 100:'))  
  5. print 'Yes you are right'  
2-11  文本菜单的程序 写一个带文本菜单的程序,菜单项如下(1)取五个数的和 (2) 取五个数的平均值....(X)退出。由用户做一个选择,然后执行相应的功能。当用户选择退出时程序结束。 个程序的有用之处在于用户在功能之间切换不需要一遍一遍的重新启动你的脚本。 (这对开发人员测试自己的程序也会大有用处)
[python] view plaincopy
  1. print '\n choose 1 to calculate the five number;\n choose 2 to calculate the average of the five number;\n choose 3 to quit the program'  
  2. while True:  
  3.     total=0  
  4.     flag=int(raw_input('Enter your choice:'))  
  5.     if flag==1:  
  6.         num=[int(raw_input('Enter the first number:')),int(raw_input('Enter the second number:')),int(raw_input('Enter the third number:')),int(raw_input('Enter the forth number:')),int(raw_input('Enter the fifth number:'))]  
  7.         for x in num:  
  8.             total+=x  
  9.         print total  
  10.     if flag==2:  
  11.         num=[int(raw_input('Enter the first number:')),int(raw_input('Enter the second number:')),int(raw_input('Enter the third number:')),int(raw_input('Enter the forth number:')),int(raw_input('Enter the fifth number:'))]  
  12.         for x in num:  
  13.             total+=x  
  14.         print float(total/5)  
  15.     if flag==3:  
  16.         break  
  17.     else:  
  18.         print 'Your have enter the wrong number,please try again'  
2–15. 元素排序
(a)让用户输入三个数值并将分别将它们保存到 3 个不同的变量中。不使用列表或排序算法,自己写代码来对这三个数由小到大排序。

(b)修改(a)的解决方案,使之从大到小排序

(a)

[python] view plaincopy
  1. print 'Enter three numbers:'  
  2. num1=int(raw_input())  
  3. num2=int(raw_input())  
  4. num3=int(raw_input())  
  5. min=num1  
  6. if min>num2:  
  7.     min=num2  
  8.     if min>num3:  
  9.         print num3,num2,num1  
  10.     elif num1>num3:  
  11.         print num2,num3,num1  
  12.     else:  
  13.         print num2,num1,num3  
  14. elif min>num3:  
  15.     print num3,num1,num2  
  16. elif num3>num2:  
  17.     print num1,num2,num3  
  18. else:  
  19.     print num1,num3,num2  

    

(b)

[python] view plaincopy
  1. print 'Enter three numbers:'  
  2. num1=int(raw_input())  
  3. num2=int(raw_input())  
  4. num3=int(raw_input())  
  5. max=num1  
  6. if max<num2:  
  7.     max=num2  
  8.     if max<num3:  
  9.         print num3,num2,num1  
  10.     elif num1<num3:  
  11.         print num2,num3,num1  
  12.     else:  
  13.         print num2,num1,num3  
  14. elif max<num3:  
  15.     print num3,num1,num2  
  16. elif num3<num2:  
  17.     print num1,num2,num3  
  18. else:  
  19.     print num1,num3,num2