python核心编程第二版练习题答案
2-5
#写一个while循环,输出整型为0~10
a=0
while a<11:
print a
a+=1
#写一个for循环重复以上操作
for i in range(11):
print i
2-6
#条件判断,判断一个数正数还是负数,或者是0.开始先用固定的数值,然后修改你的代码支持用户输入数值进行判断
a=int(raw_input("please input a number:"))
#a=6
if a>0:
print"this number is positive!"
elif a<0:
print"this number is negative!"
else:
print"this number is zero!"
2-7
#从用户那里接受一个字符串输入,然后逐字符显示该字符串,用for循环实现
a=raw_input("please input a string:")
for i in a:
print i
#同样再用while循环实现上述
a=raw_input("please input a string:")
i=0
while i<len(a):
print a[i]
i+=1
2-8
#创建一个包含五个固定数值的列表或元祖,输出他们的和,然后修改代码为接受用户输入数值,分别使用while和for循环实现
#print (reduce(lambda x,y:x+y,range(1,5))) 最简单的一种算法
#for循环:
a=input("please input a list or a tuple:")
#a=[1,2,3,4]
s=0
for i in range(len(a)):
s+=a[i]
print s
#while循环:
a=input("please input a list or a tuple:")
#a=[1,2,3,4]
i=0
s=0
while i<len(a):
s+=a[i]
i+=1
print s
2-9 循环和操作符,创建一个包含五个固定数值的列表或元组,输出他们的平均值
#for循环
a=[1,2,3]
s=0
for i in range(len(a)):
s+=a[i]
print float(s/len(a))
#while 循环
a=input("please input a list or a tuple:")
i=0
s=0
while i<len(a):
s+=a[i]
i+=1
print float(s/len(a))
2-10 带循环和条件判断的用户输入,使用raw_input()函数来提示用户输入一个1和100之间的数,如果用户输入的数满足这个条件,显示成功并退出,否则显示一个错误信息然后再次提示用户输入数值,直到满足条件为止。(continue用于跳过该次循环,break则是用于退出循环)
while 1:
a=int(raw_input("please input a number:"))
if 1<=a<=100:
print"success!"
break
else:
print"input error!plese input again!"
continue
2-11
#写一个带文本菜单的程序,菜单项如下:(1)取5个数的和;(2)取5个数的平均值;(X)退出,由用户做一个选择,然后执行相应的功能
def Menu():
print"1.get sum of five numbers"
print"2.get average of five numbers"
print"x.Exit"
def Sum():
l=[1,2,3,4,5]
sum=0
for i in l:
sum+=i
return sum
def Ave():
sum=Sum()
ave=float(sum)/5
return ave
while True:
Menu()
choice=input("please choice one:")
if choice==1:
sum=Sum()
print"sum is %d"%sum
elif choice==2:
ave=Ave()
print"average is %f"%ave
elif choice=='x':
break
else:
print"wrong choice,please choose again!"
2-15
#让用户输入3个数值并分别将他们保存到3个不同的变量中,不使用列表或排序算法
#从小到大
while True:
num1=int(raw_input("please input num1:"))
num2=int(raw_input("please input num2:"))
num3=int(raw_input("please input num3:"))
if num1>num2:
tmp=num1
num1=num2
num2=tmp
if num2>num3:
tmp=num2
num2=num3
num3=tmp
if num1>num2:
tmp=num1
num1=num2
num2=tmp
print "from min to max is %d,%d,%d"%(num1,num2,num3)
#从大到小:
while True:
num1=int(raw_input("please input num1:"))
num2=int(raw_input("please input num2:"))
num3=int(raw_input("please input num3:"))
if num1<num2:
tmp=num1
num1=num2
num2=tmp
if num2<num3:
tmp=num2
num2=num3
num3=tmp
if num1<num2:
tmp=num1
num1=num2
num2=tmp
print "from max to min is %d,%d,%d"%(num1,num2,num3)