小小世界丶 发表于 2025-4-12 21:54:42

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

import random

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

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

while i < counts:
    num = random.randint(1, 10)
    if counts <= 100:
      if num % 2:
            print("正面", end=" ")
            heads = heads + 1
      else:
            print("反面", end=" ")
            tails = tails + 1
    i = i + 1
    else:
      if num % 2:
            heads = heads + 1
      else:
            tails = tails + 1
    i = i + 1
   
print("一共模拟了",counts,"次抛硬币")
print("正面:",heads,"次")
print("反面:",tails,"次")

求助朋友们为什么运行的时候显示我第二个else语法错误

FishC 发表于 2025-4-12 21:55:29

问题分析及解决方案

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


if counts
# 缺少条件表达式和冒号


正确代码应修改如下:


import random

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

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

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

print(f"\n正面次数:{heads},反面次数:{tails}")


错误解析:


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


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

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

player-none 发表于 2025-4-13 10:22:51

具体原因是第一个“ i = i + 1”的缩进存在错误。

实际上你把他删了就行

import random

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

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

while i < counts:
    num = random.randint(1, 10)
    if counts <= 100:
      if num % 2:
            print("正面", end=" ")
            heads = heads + 1
      else:
            print("反面", end=" ")
            tails = tails + 1
    else:
      if num % 2:
            heads = heads + 1
      else:
            tails = tails + 1
    i = i + 1
   
print("一共模拟了",counts,"次抛硬币")
print("正面:",heads,"次")
print("反面:",tails,"次")

小小世界丶 发表于 2025-4-25 21:54:20

player-none 发表于 2025-4-13 10:22
具体原因是第一个“ i = i + 1”的缩进存在错误。

实际上你把他删了就行

谢谢,经过修改后确实好了
页: [1]
查看完整版本: python最新版第16讲课后作业1,没用ignore用的if else但是显示语法错误