Python核心编程 第二版 第二章 部分习题解答



2–5. 循   和数字
 使用while 和for 建一个循 :
(a) 写一个while 循  出整数从0 到10。(要确保是从0 到10, 而不是从0 到9 或从1 到10)
i = 0
while i <+10:
    print i
    i +=1

(b) 做同 (a) 一 的事, 不 过这 次使用 range() 内建函数。
for i in range(0,11):
    print i

2–6. 条件判断 判断一个数是正数,  数, 或者等于0. 开始先用固定的数 ,然后修改你的代 支持用 户输 入数  行判断。
i = int(raw_input('Please enter a number:') )
if i >0: print '%d是正数。'%i
if i == 0: print '这是0.' %i
if i < 0: print '%d是负数。'%i


2–7.
 和字串 从用 那里接受一个字符串 入,然后逐字符  字符串。先用while 循
环实现 ,然后再用 for 循 环实现
while循环:
l = raw_input('please enter a string:')
i = 0
while i < len(l):
    print l[i]
     i += 1


for 循环:
l = raw_input('please enter a string:')
for i in range(len(l)):
    print l[i]


 2–8. 循 环和运算符 创建一个包含五个固定数 值的列表或元 组, 输出他 们的和。然后修改你的代 码为接受用 户输 入数值 。 分别使用while 和for 循 环实现 。
while循环:
L = [1,2,3,4,5]
s = 0
i = 0
while i < len(L):
    s += L[i]
    i += 1

print s



for 循环:
L = [1,2,3,4,5]
s = 0
for i in range(0,len(L)):
    s += L[i]
    i += 1

print s

L = []
i = 1
print 'Please enter 5 numbers:'
while True:
    num = int(raw_input('please enter a number %d:'%i))
    i += 1
    L.append(num)
    if len(L) ==5:
        break
s = 0
for i in range(0,len(L)):
    s += L[i]
    i += 1

print s


2–9.
 和运算符 建一个包含五个固定数 的列表或元  出他 的平均 。本 练习 点之一是通 除法得到平均 。 你会 发现 整数除会截去小数,因此你必 使用浮点除以得到更精确的 果。 float()内建函数可以帮助你 实现这 一功能。
L = [1,2,3,4,5]
s = sum(L)
average = float(s/len(L))
print average

2–10.
   件判 的用 户输 入 使用raw_input()函数来 提示用 户输入一 1 和100 之  ,如果用户输 入的 数满 这个条 件, 示成功 退出。否 则显 示一个错误 信息然后再次提示 户输 数值 ,直到   止。
while True:
    value = int(raw_input('please enter a number between 1 and 100:'))
    if not 1 < value < 100:
        print 'sorry,you enter a wrong number, please try again.'
        continue
    else:
        print 'Great!'
        break



2–11.
 文本菜 的程序 写一个 文本菜 的程序,菜 单项 如下(1)取五个数的和 (2) 取五个数的平均 ....(X)退出。由用 做一个 选择 ,然后 行相 的功能。当用 户选择 退出 程序 束。 个程序的有用之 在于用 在功能之  不需要一遍一遍的重新启 你的脚本。(   员测试 自己的程序也会大有用 
L = []
i = 1
print 'Please enter 5 numbers:'
while True:
    num = int(raw_input('please enter a number %d:'%i))
    i += 1
    L.append(num)
    if len(L) ==5:
        break
s = sum(L)
average = float(s/len(L))

print """
please select an option:
1. claculate the sum of 5 numbers.
2. calculate the average of 5 numbers.
Enter 0 to quit.
"""

option = input('>')
if option == 1: print s
if option == 2: print average
if option == 0: break
(这个题目最后选择退出不会,期待高手指导)


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

if a > b:
    a,b = b,a
if a > c:
    a,c = c,a
if b > c:
    b,c = c,b

print "从小到大排序: %d<%d<%d"%(a,b,c)


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值