python核心编程-第2章课后练习答案

2-4 使用raw_input()函数得到用户输入。

(a)创建一段脚本使用raw_input()内建函数从用户输入得到一个字符串,然后显示这个用户刚刚键入的字符串。


(b)添加一段类似代码,不过这次输入的是数值。将输入的数据转化为一个数值对象并将这个数值显示给用户看。


2-5 循环和数字

     分别使用while和for创建一个循环。

(a)写一个while循环 ,输出整形为0~10

count = 0
while count < 11:
    print count
    count += 1

运行结果如下


(b)做同(a)一样的事情,不过这次用range()内建函数

for i in range(11):
    print i

2-6 条件判断。 判断一个数是正数,还是负数,或者是零,开始先用固定的数值,然后修改你的代码,支持用户输入数值再进行判断。

num = int(raw_input('enter a number:'))
if num < 0:
   print "你输入的是负数“
elif num >0:
    print "你输入的是正数” 
else:
    print "你输入的是零“

2-7 循环和字串。 从用户那里接受一个字符串输入,然后逐字显示该字符串,先用while循环实现,然后再用for循环实现。

while循环:

str = "This is a test string"
count = 0
while count < len(str):
    print str[count]
    count += 1


for循环:

for i in str:
    print i


2.8 循环和操作符。创建一个包含五个固定是指的列表或元组,输出它们的合,然后修改你的代码为接受用户输入数值。分别使用while和for循环实现。


while循环:


enter_num = raw_input('enter fif numbers:')
num = enter_num.split(' ')
sum ,count = 0, 0
while count < len(num):
    sum += int(num[count])
    count += 1
print sum

for循环

enter_num = raw_input('enter fif numbers:')
num = enter_num.split(' ')
sum = 0
for i in rang(len(num)):
    sum += int(num[count])
print sum

在别处看到一个简洁的答案:

sumNumber = raw_input("please enter the numbers:")
evalNumber = '+'.join(sumNumber.split(" "))
print 'the result is:', eval(evalNumber)


2.9  很简单,不记录了

2-10 带循环合条件判断的用户输入。使用raw_input()函数来提示用户输入一个1~100之间的数字,如果输入满足条件,显示成功并退出,否则显示一个错误信息然后再次提示用户输入数值,直到满足条件。

while 1:
    num = raw_input('please enter number1~100:')
    if int(num)>100 or int(num)<1:
        print "you enter worry,enter again"
    else:
        print "you enter is right,qiut."
        break

2–11.带文本菜单的程序 写一个带文本菜单的程序,菜单项如下(1)取五个数的和 (2) 取五个数的平均值....(X)退出。由用户做一个选择,然后执行相应的功能。当用户选择退出时程序结束。这个程序的有用之处在于用户在功能之间切换不需要一遍一遍的重新启动你的脚本。(这对开发人员测试自己的程序也会大有用处)

while 1:
    print "(1)取5个数的和.(2)取5个数的平均值.(X)退出"
    choice = raw_input('please enter you choice,1 or 2 or X:')
    if choice == '1':
        num = raw_input("enter fif numbers:")
        num1 = num.split(' ')
        sum = 0
        for i in range(len(num1)):
            sum += int(num1[i])
        print "the fif number Sum is:",sum
    elif choice == '2':
        num = raw_input("enter fif numbers:")
        num1 = num.split(' ')
        sum = 0
        for i in range(len(num1)):
            sum += int(num1[i])
        print "这5个数的平均数是:%f." %(float(sum)/5)
    elif choice.lower() == 'x':
        print "you will qiut"
        break
    else:




别人的解:

while True:
    try:
        evalNum = raw_input("please enter five numbers:")
        while True:
            cmd = raw_input("1 to add five number, 2 to average five number, and q to exit:")
            if cmd.lower() == '1':
                print 'sum is:', eval("+".join(evalNum))
            elif cmd.lower() == '2':
                print 'product is:', eval("*".join(evalNum.split(" ")))
            elif cmd.lower() == 'q':
                raise "out now!"
            else:
                print 'wrong cmd!'
                continue
    except:
        break

2–15. 元素排序
(a)让用户输入三个数值并将分别将它们保存到3个不同的变量中。不使用列表或排序算法,自己写代码来对这三个数由小到大排序。(b)修改(a)的解决方案,使之从大到小排序


别人的答案,没做稍后有时间自己做一下

num1 = int(raw_input("enter number1:"))
num2 = int(raw_input("enter number2:"))
num3 = int(raw_input("enter number3:"))
minNum = min([num1, num2, num3])
maxNum = max([num1, num2, num3])
mid = [x for x in [num1, num2, num3] if x != minNum and x != maxNum]
print minNum, mid[0], maxNum



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值