第二章习题
2-6 条件判断
判断用户输入的是正数,负数 还是 0。
str = raw_input('Enter a number:')
num = int(str)
if num > 0:
print "%d > 0" % num
elif num < 0:
print "%d < 0" % num
else:
print "%d = 0" % num
2-7 循环和字符串
从用户那里接受一个字符串输入,然后逐字符显示该字符串。
while循环实现:
str = raw_input('Enter a number:')
num = int(str)
if num > 0:
print "%d > 0" % num
elif num < 0:
print "%d < 0" % num
else:
print "%d = 0" % num
for循环实现:
str = raw_input('Enter a string:')
for s in str:
print s
2-8 循环和预算符
创建一个包含五个固定数值的列表或元组,输出它们的和。
aList = [2, 3, 7, 6, 9]
aTuple = (2, 3, 7, 6,9)
sum1 = 0
i = 0
while i < len(aList):
sum1 += aList[i]
i += 1
print "By while: sum of the list is %d" % sum1
sum2 = 0
for num in aList:
sum2 += num
print "By for: sum of the list is %d" % sum2
sum3 = 0
i = 0
while i < len(aTuple):
sum3 += aTuple[i]
i += 1
print "By while: sum of the tuple is %d" % sum3
sum4 = 0
for num in aTuple:
sum4 += num
print "By for: sum of the tuple is %d" % sum4
修改代码为接受用户输入数值:
aList = []
i = 0
for i in range(5):
aList.append(raw_input("Please Enter number %d for list: " % (i+1)))
i += 1
sum1 = 0
i = 0
while i < len(aList):
sum1 += int(aList[i])
i += 1
print "By while: sum of the list is %d" % sum1
sum2 = 0
for num in aList:
sum2 += int(num)
print "By for: sum of the list is %d" % sum2
for i in range(5):
aTuple.append(raw_input("Please Enter number %d for tuple: " % (i+1)))
i += 1
2-9 循环和运算符
创建一个包含五个固定数值的列表,输出它们的平均值。
aList = [12.1, 5.7, 26.7, 38.8, 4]
sum = 0.0
for num in aList:
sum += float(num)
print "The average of these numbers is %f" % float(sum/5)
2-10带循环条件判断的用户输入
使用raw_inut()函数来提示用户输入一个1和100之间的数,如果用户输入的数满足这个条件,显示成功并退出。否则提示一个错误信息然后再次提示用户输入数值,知道满足条件为止。
num = int(raw_input("Please enter a number: "))
while (num<1)|(num>100):
num = int(raw_input("Failed the number you entered is not between 1 and 100, please enter it again: "))
print "Succeed!"
2-11 带文本菜单的程序
写一个带文本菜单的程序,菜单如下(1)去五个数的和;(2)去五个数的平均值;...(x)退出。由用户做一个选择 ,然后执行相应的功能。当用户选择退出 时程序结束。这个程序的有用之处在于用户在功能之间切换不需要一遍一遍的重新启动你的脚本。(这对开发人员测试自己的程序也会大有用处)
#!encoding:utf-8
def get_num():
aList = []
for i in range(5):
aList.append(raw_input("请输入第%d个数字:" % (i+1)))
i += 1
return aList
def get_sum():
aList = get_num()
sum1 = 0
for num in aList:
sum1 += int(num)
return sum1
def get_ave():
return (get_sum()/5)
choice = raw_input("1:求五个数的和\n2:求五个数的平均值\n3:退出 \n请输入您的选择: ")
while choice != '3':
if choice == '1':
print "您输入的五个数的和是:%d" % get_sum()
elif choice == '2':
print "您输入的五个数的平均值是:%d" % get_ave()
else:
quit()
choice = raw_input("1:求五个数的和\n2:求五个数的平均值\n3:退出 \n请输入您的选择: ")
2-15 元素排序
让用户输入三个数值并将分别将它们保存到 3个不同的变量中。不使用列表或排序算法,自己写代码来对这三个数由小到大和从大到小排序。
#!encoding:utf-8
print "以下为您输入的三个数字排序:"
num1 = int(raw_input("请输入第一个数字:"))
num2 = int(raw_input("请输入第一个数字:"))
num3 = int(raw_input("请输入第一个数字:"))
print "从小到大排:"
if num1 > num2:
num1, num2 = num2, num1
if num1 > num3:
num1, num3 = num3, num1
if num2 > num3:
num2, num3 = num3, num2
print num1, num2, num3
print "从大到小排:"
if num1 < num2:
num1, num2 = num2, num1
if num1 < num3:
num1, num3 = num3, num1
if num2 < num3:
num2, num3 = num3, num2
print num1, num2, num3