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

时间:2022-03-30 03:47:20

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

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

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

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

(a)

print 'Enter three numbers:'
num1=int(raw_input())
num2=int(raw_input())
num3=int(raw_input())
min=num1
if min>num2:
    min=num2
    if min>num3:
        print num3,num2,num1
    elif num1>num3:
        print num2,num3,num1
    else:
        print num2,num1,num3
elif min>num3:
    print num3,num1,num2
elif num3>num2:
    print num1,num2,num3
else:
    print num1,num3,num2

    

(b)

print 'Enter three numbers:'
num1=int(raw_input())
num2=int(raw_input())
num3=int(raw_input())
max=num1
if max<num2:
    max=num2
    if max<num3:
        print num3,num2,num1
    elif num1<num3:
        print num2,num3,num1
    else:
        print num2,num1,num3
elif max<num3:
    print num3,num1,num2
elif num3<num2:
    print num1,num2,num3
else:
    print num1,num3,num2