计数器问题

计数器问题

1.我想问一下,在循环过程中计数器的位置,在3-28练习题中,内外循环的 i = 0都放在了外循环while 外,这样写是不规范吗,是不是不影响结果?

2.另外就是在循环结构中关键字的使用中,我尝试了i = i + 1放在break后面也可以运行,比如案列中输入电话的问题,调试的时候结果没有发生变化,然而在3-8练习题中就是最后结果为7的那道题,把i =  i + 1放break后面结果变成了5 ,是不是可以这样理解,break中,i= i+1的位置不影响程序的运行(既不会出现死循环),但是会影响输出的结果。而在continue中i= i+ 1则会出现死循环这个情况?

3.在判断1000内的质数这个案列中,里面新定义的变量is_prime =True是必须用布尔类型吗,我随便定义一个,my_world = good 而在循环中我在定义my_world= bad,其他不变,输出结果一样吗?


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好,同学说的第一个问题没有找到相对应的3-28练习题,同学看一下是不是小节号写错了。

问题2:

把i = i + 1 放到break后边,如下边代码这样写是可以的,意思是先执行if条件判断,再修改i的值。不同的是,按照同学的写法,当if条件成立时会直接进行输出然后执行break终止循环,i的值是不会发生变化的。按着视频中的例子,是先修改i的值,再进行判断,即使条件成立,i的值会发生变化,此时输出i的值为1。

i = 0
while i < 3:
    mobile = input('请输入您要查询的手机号:')
    # i = i + 1
    if mobile == '13312345678':
        print('您的话费余额为158元')
        break
    i = i + 1
print(i)# 当条件成立时,i值为0
print('感谢您的来电')

同学说的3-8练习题结果为7的是3-23问题吗?不知道同学是要把i = i +1放到break后是哪个位置,希望同学可以把代码贴出来,方便为您解答。

问题3:同学的说法可以参考下边的代码看一下,当if条件成立时,修改my_world的值,当my_world的值为bad时,输出不是质数,反之是质数。

num = 17
i = 2
# is_prime = True
my_world = 'good'
while i < num :
    if num % i ==0:
        # is_prime = False
        my_world = 'bad'
        break
    i = i + 1
if my_world == 'bad':
    print('{}不是质数'.format(num))
else:
    print('{}是质数'.format(num))
  • purity_only 提问者 #1
    i = 0(和练习题中一样,放前面了) k = 0 j = 0 while i < 5: while j < 5: k = i + j #j = j +1 (放此位置结果为5) if j == 3: break j = j + 1 (此位置结果为7) i = i + 1 print(k) 3-23的练习题
    2019-04-12 10:39:26
  • purity_only 提问者 #2
    老师我重新提下问题,这个回复框不能粘贴图片
    2019-04-12 10:57:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师