import random n=int(input()) num=100000 plus=0 h=0 for i in range (num): while plus<50: a=random.randint(1,n) plus=plus+a h=h+plus p=h/num print("%.1f"%p) 错在哪里
时间: 2024-02-22 19:00:19 浏览: 151
这段代码的问题在于缩进不正确。最后一行 `print("%.1f"%p)` 缩进太多了,应该和 `p=h/num` 在同一层级。
另外,如果 `plus` 的值一直小于 `50`,那么这个 `while` 循环就会一直执行下去,导致程序进入死循环。建议加入一个计数器,当循环次数超过一定值时,强制退出循环。
以下是修改后的代码:
```python
import random
n = int(input())
num = 100000
p = 0
h = 0
for i in range(num):
plus = 0
count = 0
while plus < 50 and count < 100: # 添加计数器,防止进入死循环
a = random.randint(1, n)
plus += a
count += 1
h += plus
p = h / num
print("%.1f" % p)
```
相关问题
import random n=int(input()) num_list=[] for i in range(n): m=random.randint(1,200) num_list=m num_list+=1 num_list.sort() print(num_list)
这是一个关于 Python 编程的问题,我可以回答。这段代码的作用是生成一个包含 n 个随机整数的列表,并将其按升序排列后输出。但是,这段代码有一些问题,其中的 num_list=m 和 num_list=1 都是错误的语句,应该改为 num_list.append(m) 和 num_list=[1]。修改后的代码如下:
import random
n = int(input())
num_list = []
for i in range(n):
m = random.randint(1, 200)
num_list.append(m)
num_list.sort()
print(num_list)
import random n = int(input()) m = int(input()) lst = list(random.randint(0,100) in range(n)) print(lst)
这段代码中出现了一个错误,即在使用 list() 函数创建列表时,应该使用列表解析式而不是 in range()。正确的代码应该是:
```
import random
n = int(input())
m = int(input())
lst = [random.randint(0,100) for i in range(n)]
print(lst)
```
这样就可以创建一个包含 n 个随机整数的列表了。
阅读全文