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

来源:互联网 发布:想做淘宝做什么比较好 编辑:程序博客网 时间:2024/06/09 17:17

2–5. 循 和数字
 使用while 和for 建一个循 :
(a) 写一个while 循  出整数从0 到10。(要确保是从0 到10, 而不是从0 到9 或从1 到10)
i = 0while 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是正数。'%iif i == 0: print '这是0.' %iif i < 0: print '%d是负数。'%i


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



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

L = []i = 1print '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:        breaks = 0for i in range(0,len(L)):    s += L[i]    i += 1print 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 = 1print '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:        breaks = 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 sif option == 2: print averageif option == 0: break
(这个题目最后选择退出不会,期待高手指导)


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


0 0
原创粉丝点击