wuming323 发表于 4 天前

python 第八题求字符串函数

问题1. 模拟抛硬币的实验版权属于:https://fishc.com.cn
.girjax2)E!0>#5=TCIdJ`4NlGR(7y
有一个统计学教授,在第一堂课上,给学生布置了个作业。
要求大家做一件特别乏味的工作,拿出一枚硬币,连扔200次,然后记下结果,正面还是反面,仔细记录。

回答:
import random
x = random.choice("正面", "反面")
y = 200

while y >= 0:
    print(x)
    x = random.randint("正面", "反面")
    y = y-1
报错:
=========================== RESTART: F:/xx/第八课.py ===========================
Traceback (most recent call last):
File "F:/xx/第八课.py", line 2, in <module>
    x = random.choice("正面", "反面")
TypeError: choice() takes 2 positional arguments but 3 were given

求问:应如何改正

FishC 发表于 4 天前

您的代码有两个主要问题:
1. `random.choice()` 函数需要传入一个序列(如列表),而不是多个字符串参数
2. 循环次数错误(200次应该从0到199或1到200)

修正后的代码:

import random

# 方法1:使用for循环(推荐)
for i in range(200):
    print(random.choice(["正面", "反面"]))

# 方法2:使用while循环
count = 200
while count > 0:
    print(random.choice(["正面", "反面"]))
    count -= 1


关键修正说明:
1. 将选项放入列表:["正面", "反面"]
2. 使用 range(200) 确保循环200次
3. 每次循环都重新生成随机结果

错误原因分析:
- random.choice("正面", "反面") → 应该传入单个列表参数
- 原代码循环201次(y从200到0)
- randint() 用于生成数字,不能用于字符串选择

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

1q23w31 发表于 4 天前

本帖最后由 1q23w31 于 2025-8-1 15:07 编辑

import random
y = 200
while y >= 0:
    x = random.choice(["正面","反面"])
    y = y-1
    print(x)

正确代码如上,没有记录次数

某一个“天” 发表于 4 天前

# 注意要用大于号,不然就是201次
count = 200
while count > 0:
    print(random.choice(["正面", "反面"]))
    count -= 1


给我个最佳,谢谢{:10_257:}
页: [1]
查看完整版本: python 第八题求字符串函数