使用随机函数并使用3种不同的函数执行3项操作,第一项给出了从10个整数的列表中随机显示的1,10的值。第二个给我一个列表值1,10并将它们平方。然后最后但并非最不重要的是第三个单独的数字可以除以三。问题是我的程序没有在eclipse上运行程序没有错误,但我的程序终止而没有打印任何东西。请帮帮我......
import random
def main():
def rand10():
my_list = []
for _ in xrange(10):
my_list.append(random.randint(0,10))
print my_list
def squareint_():
squares = []
for _ in xrange(0,10):
squares.append(random.randint(0,10))**2
print squares
def div3():
divlist = []
num = range(1,10)
if (num % 3 == 0):
for _ in xrange(20):
divlist.append(random.randint(0,10))
print divlist
if __name__ == '__main__':
main()
答案 0 :(得分:4)
您只是致电main()
而不是functions
嵌套在main()
内的任何一个,
使用if __name__ == '__main__':
并不会神奇地调用您的所有功能。
如果您的main
功能如下:
def main():
squareint_()
div3()
rand10()
然后你会按原样调用其他函数,main
什么也不做或什么都不返回。
就您的方法而言,squares.append(random.randint(0,10))**2
无效,您无法在列表方法上使用**
。
它必须位于paren
squares.append(random.randint(0,10)**2)
此外,num
是一个列表,因此您无法使用if num % 3 == 0:
您可以使用以下内容:
def div3():
divlist = []
num = range(1,10)
for n in num: # loop over the list elements
if n % 3 == 0:
for _ in xrange(20):
divlist.append(random.randint(0,10))
print divlist
答案 1 :(得分:1)
代码目前存在两个问题:
main()
内定义了您的功能,这是允许的,但它不是很好的编码习惯。如果您这样做,那么您只能在main()
内使用这些功能。rand10()
,squareint_()
或div3()
来调用它们。尝试使用这段代码,修复了这两个问题:
import random
def rand10():
my_list = []
for _ in xrange(10):
my_list.append(random.randint(0,10))
print my_list
def squareint_():
squares = []
for _ in xrange(0,10):
squares.append(random.randint(0,10))**2
print squares
def div3():
divlist = []
num = range(1,10)
if (num % 3 == 0):
for _ in xrange(20):
divlist.append(random.randint(0,10))
print divlist
def main():
rand10()
squareint_()
div3()
if __name__ == '__main__':
main()
当然,如果你的功能无效,那么它们需要自己修复。这只是解决了执行代码时没有发生任何问题的问题。现在,当您在Eclipse中运行项目时,您将看到一些错误并能够正确地修复它们。