Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要简单python循环的帮助吗_Python_Loops_For Loop - Fatal编程技术网

需要简单python循环的帮助吗

需要简单python循环的帮助吗,python,loops,for-loop,Python,Loops,For Loop,我试图计算掷骰子n次的概率,并求出平均值。这基本上是一个蒙特卡罗问题。我是新的编码,所以如果有人能帮助我,我会非常感激 import random import sys num = int(sys.argv[1]) roll =random.randint(1,6) sum=0 for roll in range(0,num): sum = sum + int(input()) average = sum / num print('the average is: ',

我试图计算掷骰子n次的概率,并求出平均值。这基本上是一个蒙特卡罗问题。我是新的编码,所以如果有人能帮助我,我会非常感激

import random 
import sys

num = int(sys.argv[1])
roll =random.randint(1,6)
sum=0
for roll in range(0,num):
    sum = sum + int(input())
    average = sum / num
    print('the average is: ',average)

这里有很多问题

  • 只有在提示用户输入时,才应使用
    input()
    函数。在这里,情况并非如此

  • 您希望print语句位于循环外部,而不是循环内部

  • [一个次要的风格点]您不应该将变量命名为“
    sum
    ”,因为这是一个内置函数名,而且形式不好。您可以这样做,但如果以后要使用实际的
    sum()
    函数,您将遇到问题

我想这就是你的意图:

import random
import sys

num_rolls = int(sys.argv[1])
rolls = [random.randint(1, 6) for i in range(num_rolls)]
print('the average is: {}'.format(sum(rolls) / num_rolls))

这里有很多问题

  • 只有在提示用户输入时,才应使用
    input()
    函数。在这里,情况并非如此

  • 您希望print语句位于循环外部,而不是循环内部

  • [一个次要的风格点]您不应该将变量命名为“
    sum
    ”,因为这是一个内置函数名,而且形式不好。您可以这样做,但如果以后要使用实际的
    sum()
    函数,您将遇到问题

我想这就是你的意图:

import random
import sys

num_rolls = int(sys.argv[1])
rolls = [random.randint(1, 6) for i in range(num_rolls)]
print('the average is: {}'.format(sum(rolls) / num_rolls))

你到底想在错误线上做什么?您是否正在尝试从用户处获取输入,如果是,您尝试将其用于什么?“尽快”?这是一个有最后期限的家庭作业问题吗?通常,“尽快”会对堆栈溢出产生负面反应。你在寻求帮助,不要在你的时间表上要求帮助。而且,“我的代码有问题”是含糊不清的。你有什么问题?@johncleman我为我的语言感到抱歉,我只是想引起注意。我正在尝试自己学习python,我在这段特定的代码中陷了一段时间。我也是这个论坛的新手。对不起,先生。我真的不想冒犯任何人或是mean@M-陈-3我正在尝试将随机滚动的数字相加。我不想得到任何信息。我想我搞错了你到底想在错误线上做什么?您是否正在尝试从用户处获取输入,如果是,您尝试将其用于什么?“尽快”?这是一个有最后期限的家庭作业问题吗?通常,“尽快”会对堆栈溢出产生负面反应。你在寻求帮助,不要在你的时间表上要求帮助。而且,“我的代码有问题”是含糊不清的。你有什么问题?@johncleman我为我的语言感到抱歉,我只是想引起注意。我正在尝试自己学习python,我在这段特定的代码中陷了一段时间。我也是这个论坛的新手。对不起,先生。我真的不想冒犯任何人或是mean@M-陈-3我正在尝试将随机滚动的数字相加。我不想得到任何信息。我想我犯了一个错误。非常感谢您的反馈和回答,这正是我想要的。请问您为什么使用字符串格式的“格式(总和(rolls)/num_rolls”让您更灵活(显示的小数位数、空格与制表符等),而且往往是更好的编程风格。@emiravc
sum(rolls)
将卷中的所有项目相加。然后
sum(rolls)/num_rolls
将总和除以对象数,计算平均值。然后,
format()
函数基本上会将结果插入大括号中(由于格式化字符串的工作方式)。哦,我看到了,非常感谢,这对我帮助很大!请原谅我问这个问题时使用的语言。我不熟悉堆栈溢出。我只是想引起大家的注意,实际上我并不认为人们会帮我。非常感谢你的反馈和回答,这正是我想要的,我可以问你为什么使用“格式(总和/数值)”使用字符串格式给你更多的灵活性(显示的小数位数,空格与制表符…),而且往往是更好的编程风格。@emiravc
sum(rolls)
将rolls中的所有项相加。然后
sum(rolls)/num_rolls
将总和除以对象数,计算平均值。然后,
format()
函数基本上会将结果插入大括号中(由于格式化字符串的工作方式)。哦,我看到了,非常感谢,这对我帮助很大!请原谅我问这个问题时使用的语言。我不熟悉堆栈溢出。我只是想引起大家的注意,实际上我不认为人们会帮助我。