鱼C论坛

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

[已解决]python最新版第16讲课后作业1,没用ignore用的if else但是显示语法错误

[复制链接]
发表于 2025-4-12 21:54:42 | 显示全部楼层 |阅读模式

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

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

x
  1. import random

  2. counts = int(input("请输入抛硬币的次数:"))
  3. i = 0
  4. heads = 0
  5. tails = 0

  6. print("开始抛硬币实验:")

  7. while i < counts:
  8.     num = random.randint(1, 10)
  9.     if counts <= 100:
  10.         if num % 2:
  11.             print("正面", end=" ")
  12.             heads = heads + 1
  13.         else:
  14.             print("反面", end=" ")
  15.             tails = tails + 1
  16.     i = i + 1
  17.     else:
  18.         if num % 2:
  19.             heads = heads + 1
  20.         else:
  21.             tails = tails + 1
  22.     i = i + 1
  23.    
  24. print("一共模拟了",counts,"次抛硬币")
  25. print("正面:",heads,"次")
  26. print("反面:",tails,"次")
复制代码


求助朋友们为什么运行的时候显示我第二个else语法错误
最佳答案
2025-4-13 10:22:51
具体原因是第一个“ i = i + 1”的缩进存在错误。

实际上你把他删了就行

  1. import random

  2. counts = int(input("请输入抛硬币的次数:"))
  3. i = 0
  4. heads = 0
  5. tails = 0

  6. print("开始抛硬币实验:")

  7. while i < counts:
  8.     num = random.randint(1, 10)
  9.     if counts <= 100:
  10.         if num % 2:
  11.             print("正面", end=" ")
  12.             heads = heads + 1
  13.         else:
  14.             print("反面", end=" ")
  15.             tails = tails + 1
  16.     else:
  17.         if num % 2:
  18.             heads = heads + 1
  19.         else:
  20.             tails = tails + 1
  21.     i = i + 1
  22.    
  23. print("一共模拟了",counts,"次抛硬币")
  24. print("正面:",heads,"次")
  25. print("反面:",tails,"次")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-4-12 21:55:29 | 显示全部楼层
问题分析及解决方案

你提供的代码存在两个主要问题:


  1. if counts
  2. # 缺少条件表达式和冒号
复制代码


正确代码应修改如下:


  1. import random

  2. counts = int(input("请输入抛硬币的次数:"))
  3. i = 0
  4. heads = 0
  5. tails = 0

  6. print("开始抛硬币实验:")

  7. while i < counts:
  8.     num = random.randint(1, 10)
  9.     if num <= 5:  # 判断随机数的值
  10.         heads += 1
  11.         print("正面", end=" ")
  12.     else:
  13.         tails += 1
  14.         print("反面", end=" ")
  15.     i += 1  # 必须要在循环内递增

  16. print(f"\n正面次数:{heads},反面次数:{tails}")
复制代码


错误解析:

  • if counts 缺少条件表达式和冒号,应该判断随机数 num 的值
  • 循环变量 i 没有在循环体内递增,会导致死循环
  • 原代码未正确处理硬币正反面的统计逻辑


建议参考这个修改后的版本,理解条件判断和循环控制的关键点~

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

使用道具 举报

发表于 2025-4-13 10:22:51 | 显示全部楼层    本楼为最佳答案   
具体原因是第一个“ i = i + 1”的缩进存在错误。

实际上你把他删了就行

  1. import random

  2. counts = int(input("请输入抛硬币的次数:"))
  3. i = 0
  4. heads = 0
  5. tails = 0

  6. print("开始抛硬币实验:")

  7. while i < counts:
  8.     num = random.randint(1, 10)
  9.     if counts <= 100:
  10.         if num % 2:
  11.             print("正面", end=" ")
  12.             heads = heads + 1
  13.         else:
  14.             print("反面", end=" ")
  15.             tails = tails + 1
  16.     else:
  17.         if num % 2:
  18.             heads = heads + 1
  19.         else:
  20.             tails = tails + 1
  21.     i = i + 1
  22.    
  23. print("一共模拟了",counts,"次抛硬币")
  24. print("正面:",heads,"次")
  25. print("反面:",tails,"次")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-4-25 21:54:20 | 显示全部楼层
player-none 发表于 2025-4-13 10:22
具体原因是第一个“ i = i + 1”的缩进存在错误。

实际上你把他删了就行

谢谢,经过修改后确实好了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-5 19:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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