为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 for 循环接受单字母 int 变量而不是多字母?

为什么 for 循环接受单字母 int 变量而不是多字母?

繁华开满天机 2022-06-07 19:12:43
我正在学习 python 中的基本 for 循环,并注意到变量“x”与变量“sides”相比可以正常工作。怎么来的?我用谷歌搜索了循环,并了解了 range 和 xrange 之间的区别,但似乎与我的问题无关。以下显示了第一段有错误的代码:ZeroDivisionError:在线整数除法或模数为零...# This code leads to the ZeroDivisionErrorimport turtlewn = turtle.Screen()mikey = turtle.Turtle()sides = int(input("How many sides would you like your regular  polygon to have?"))length = int(input("How long would you like the sides to be?"))color = ("What color would you like to fill the polygon?")for sides in range(sides):    mikey.down()    mikey.forward(length)    mikey.left(360/sides)# this code works fineimport turtlewn = turtle.Screen()mikey = turtle.Turtle()sides = int(input("How many sides would you like your regular  polygon to have?"))length = int(input("How long would you like the sides to be?"))color = ("What color would you like to fill the polygon?")x = sidesfor sides in range(sides):    mikey.down()    mikey.forward(length)    mikey.left(360/x)为什么后者可以正常工作,而前者却不行?
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

在第一个示例中,mikey.left(360/sides)第一次为零,因为您从 0 开始并上升到任何值边。

在第二个示例中,x 等于任何整数边,在您单步执行的整个过程中。

尽管在任何一种情况下,您都不应该将sides其用作迭代器变量,因为它已经被使用了。


查看完整回答
反对 回复 2022-06-07
?
Qyouu

TA贡献1786条经验 获得超11个赞

在您的第二个代码块中,WAS in (来自输入)x正在编写。sides然后sides被可迭代的 from 覆盖range。所以在第一个代码块中sides被重写(第一次为 0)然后它是ZeroDivisionError

mikey.left(360/sides) # sides = 0 here

在您使用的第二个代码块中x,它根本没有被覆盖,只有一个非零数字(并且它不会改变)


查看完整回答
反对 回复 2022-06-07
  • 2 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信