题目
某商场举行抽奖活动,具体方案:每人可抽取3个幸运数字(0-9),抽到的数字依次作为个、十、百位组成一个三位数。若该三位数能同时被3、7、23整除,则为一等奖;若能同时被7、23整除,则为二等奖;若只能被23整除,则为三等奖;否则没中奖。请你完善程序实现对中奖结果的自动分析。【操作要求】(1)补充完善下划线处的内容使程序语句完整;(2)找出程序中的两处错误并改正;(3)运行程序,依次输入幸运数字5、0、8时,检查输出结果是否为“二等奖”。num=0for i in range(1,3):#输入三个幸运数字luck=_____(input(‘请输入幸运数字:’))num=num+luck*10**(i-1)#组合生成三位数if num%3==0 and num%7==0 and num%23==0:print('一等奖’)elif num%7==0 and num%23==0:print(‘二等奖’)elif _____:print(‘三等奖')elif:print(‘很遗憾,没有中奖’)
某商场举行抽奖活动,具体方案:每人可抽取3个幸运数字(0-9),抽到的数字依次作为个、十、百位组成一个三位数。若该三位数能同时被3、7、23整除,则为一等奖;若能同时被7、23整除,则为二等奖;若只能被23整除,则为三等奖;否则没中奖。请你完善程序实现对中奖结果的自动分析。
【操作要求】
(1)补充完善下划线处的内容使程序语句完整;
(2)找出程序中的两处错误并改正;
(3)运行程序,依次输入幸运数字5、0、8时,检查输出结果是否为“二等奖”。
num=0
for i in range(1,3):#输入三个幸运数字
luck=_____(input(‘请输入幸运数字:’))
num=num+luck*10**(i-1)#组合生成三位数
if num%3==0 and num%7==0 and num%23==0:
print('一等奖’)
elif num%7==0 and num%23==0:
print(‘二等奖’)
elif _____:
print(‘三等奖')
elif:
print(‘很遗憾,没有中奖’)
【操作要求】
(1)补充完善下划线处的内容使程序语句完整;
(2)找出程序中的两处错误并改正;
(3)运行程序,依次输入幸运数字5、0、8时,检查输出结果是否为“二等奖”。
num=0
for i in range(1,3):#输入三个幸运数字
luck=_____(input(‘请输入幸运数字:’))
num=num+luck*10**(i-1)#组合生成三位数
if num%3==0 and num%7==0 and num%23==0:
print('一等奖’)
elif num%7==0 and num%23==0:
print(‘二等奖’)
elif _____:
print(‘三等奖')
elif:
print(‘很遗憾,没有中奖’)
题目解答
答案
解:①range(start,stop,[step]),start:计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0,5);stop:计数到 stop 结束,但不包括 stop。例如:range(0,5)是[0,1,2,3,4]没有5;step:步长,默认为1。例如:range(0,5)等价于 range(0,5,1)。for循环需要循环3次,依次输入个、十、百位数,由下文代码num=num+luck*10**(i-1)可知,变量i的初值应是1,则需要将or i in range(1,3)改为 for i in range(1,4)。②elif后面需要加条件,故最后一个elif要改为 else。③input函数接收的数据类型是字符串型,由语句“num=num+luck*10**(i-1)”可知需要将输入的数据转换为整型,故填int。④若只能被23整除,则为三等奖,故此处判断条件是num%23==0。⑤运行程序,依次输入幸运数字5、0、8时,运行结果如下:


解析
步骤 1:修正循环范围
原代码中的循环范围是`for i in range(1, 3)`,这将导致循环只执行两次,而我们需要输入三个数字,因此需要将循环范围改为`for i in range(1, 4)`。
步骤 2:转换输入类型
原代码中的`luck`变量直接接收`input`函数的返回值,但`input`函数返回的是字符串类型,我们需要将其转换为整数类型,因此需要在`input`函数外使用`int()`函数进行转换。
步骤 3:修正条件语句
原代码中的`elif`语句缺少条件判断,需要添加条件`num%23==0`,以判断是否能被23整除。
步骤 4:修正`elif`语句
原代码中的最后一个`elif`语句没有条件,需要将其改为`else`语句,以处理所有其他情况。
步骤 5:运行程序
运行程序,依次输入幸运数字5、0、8时,检查输出结果是否为“二等奖”。
原代码中的循环范围是`for i in range(1, 3)`,这将导致循环只执行两次,而我们需要输入三个数字,因此需要将循环范围改为`for i in range(1, 4)`。
步骤 2:转换输入类型
原代码中的`luck`变量直接接收`input`函数的返回值,但`input`函数返回的是字符串类型,我们需要将其转换为整数类型,因此需要在`input`函数外使用`int()`函数进行转换。
步骤 3:修正条件语句
原代码中的`elif`语句缺少条件判断,需要添加条件`num%23==0`,以判断是否能被23整除。
步骤 4:修正`elif`语句
原代码中的最后一个`elif`语句没有条件,需要将其改为`else`语句,以处理所有其他情况。
步骤 5:运行程序
运行程序,依次输入幸运数字5、0、8时,检查输出结果是否为“二等奖”。