鱼C论坛

 找回密码
 立即注册
查看: 82|回复: 3

[已解决]python 第八题求字符串函数

[复制链接]
发表于 4 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
问题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

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

修正后的代码:  
  1.   
  2. import random  

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

  6. # 方法2:使用while循环  
  7. count = 200  
  8. while count > 0:  
  9.     print(random.choice(["正面", "反面"]))  
  10.     count -= 1  
复制代码


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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层    本楼为最佳答案   
您的代码有两个主要问题:  
1. `random.choice()` 函数需要传入一个序列(如列表),而不是多个字符串参数  
2. 循环次数错误(200次应该从0到199或1到200)  

修正后的代码:  
  1.   
  2. import random  

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

  6. # 方法2:使用while循环  
  7. count = 200  
  8. while count > 0:  
  9.     print(random.choice(["正面", "反面"]))  
  10.     count -= 1  
复制代码


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

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
本帖最后由 1q23w31 于 2025-8-1 15:07 编辑
  1. import random
  2. y = 200
  3. while y >= 0:
  4.     x = random.choice(["正面","反面"])
  5.     y = y-1
  6.     print(x)
复制代码

正确代码如上,没有记录次数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
  1. # 注意要用大于号,不然就是201次
  2. count = 200  
  3. while count > 0:  
  4.     print(random.choice(["正面", "反面"]))  
  5.     count -= 1  
复制代码



给我个最佳,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-5 23:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表