PR4E第五周作业

分享了在学习Programming for Everybody (Python)课程第五周练习时的心得体会,探讨了遇到的挑战和解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Programming for Everybody (Python)第五周的练习完成的过程中的一些感悟。

首先,作业是
5.2 Write a program that repeatedly prompts a user for integer numbers until the user enters 'done'. Once 'done' is entered, print out the largest and smallest of the numbers. If the user enters anything other than a valid number catch it with a try/except and put out an appropriate message and ignore the number. Enter the numbers from the book for problem 5.1 and Match the desired output as shown.要求输入的数据分别是4,5,bad data,7,done
最后完成的成果如下
largest = None
smallest = None
while True:
	num = raw_input("Enter a number: ")
	if num == "done" : 
		break
	else:
		try:
			num = int(num)
		except:
			print "Invalid input"
			continue
		if largest is None:
			largest = num
			smallest = num
		else:
			if largest < num:
				largest = num
			if smallest > num:
				smallst = num

print "Maximum is", largest
print "Minimum is", smallest
在完成过程中犯了几个错误
首先自然是tab和space的混用,这个以后必须避免。
然后是,在except语句后忘记添加continue重新开开始循环,导致输入的“bad data”字符串被赋值给largest。
一开始,将
if largest is None:
			largest = num
			smallest = num
		else:
			if largest < num:
				largest = num
			if smallest > num:
				smallst = num
全部写在了try下,不知为何最后输出的最大最小数都是4.可能是try内的参数传递问题?


这次作业中的收获有
1,try/except语句可以而且应当单独检查某一个语句,try的语句块中不要放太多语句以免出现莫名其妙的错误。
2,循环语句中需要执行的操作完成后记得continue跳过不必执行的语句。
3,
	if num == "done" : 
		break
是题中直接给出了的一段代码,直接放在循环语句后。终止循环的检查尽量放在前面可以减少多余的操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值