python核心编程第二版练习题答案

时间:2024-11-25 12:35:13

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):
i+=1
s+=i
print s

2-8

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

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
i+=1
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)