这个旋转硬币的小功能不起作用
This little function to rotate a coin isn't working
我正在做一个小程序。该程序的工作原理如下:
1-你输入你想要多少个硬币
2- U 把它们全部 'heads'
3-从第二枚硬币开始,你开始掷指数为2的倍数的硬币,当你完成后你回到开始重新开始,但这次你将从第三枚硬币开始并翻转所有索引为3的倍数,并继续这样,从第四个硬币开始翻转4的倍数并继续直到结束...
示例:4 个硬币-->
头,头,头,头
1°时间:
人头,人头,人头,人头,
2°时间:
头,高个,高个,高个,
3°时间:
人头,人头,人头,人头。
我认为这段代码快要实现了,但是我构建的这个函数并没有完成掷硬币和更改 'moedas' 列表
上的 'mode' 的工作
词汇:Heads-cara / Talls - coroa /Coin(s)- moeda(s) /To flip - Virar(葡萄牙语)
如果能帮助我更改其余代码中的一些错误,我将不胜感激。
def Virar(moeda):
if moeda == 'cara':
moeda = 'coroa'
if moeda == 'coroa':
moeda = 'cara'
return moeda
qtde_moedas = int(input('How much coins do u want?'))
moedas=[]
while (len(moedas))<qtde_moedas:
moedas.append('cara')
for divisor in range(2,len(moedas)):
for index_num in range(len(moedas)):
if (index_num+1)%divisor==0:
moedas[index_num] = Virar(moedas[index_num])
else:
pass
假设您将 'cara'
传递给您的函数 Virar
;首先它将 moeda
更改为 'coroa'
,因为它是 'cara'
。然后,它检查 moeda
是否是 'coroa'
,现在是 True
,所以它把它变回 'cara'
!所以 Viara
永远不会 随心所欲地抛硬币。相反,请尝试使用 elif
或 else
:
def Virar(moeda):
if moeda == 'cara':
moeda = 'coroa'
else:
moeda = 'cara'
return moeda
一个较短的版本,如果您有兴趣,将是以下内容:
def virar(moeda):
return 'coroa' if moeda == 'cara' else 'cara'
qtde_moedas = int(input("How many coins do you want? "))
moedas = ['cara'] * qtde_moedas
for divisor in range(2, qtde_moedas + 1):
for i in range(divisor - 1, qtde_moedas, divisor):
moedas[i] = virar(moedas[i])
print(moedas)
我正在做一个小程序。该程序的工作原理如下:
1-你输入你想要多少个硬币
2- U 把它们全部 'heads'
3-从第二枚硬币开始,你开始掷指数为2的倍数的硬币,当你完成后你回到开始重新开始,但这次你将从第三枚硬币开始并翻转所有索引为3的倍数,并继续这样,从第四个硬币开始翻转4的倍数并继续直到结束...
示例:4 个硬币--> 头,头,头,头
1°时间: 人头,人头,人头,人头,
2°时间: 头,高个,高个,高个,
3°时间: 人头,人头,人头,人头。
我认为这段代码快要实现了,但是我构建的这个函数并没有完成掷硬币和更改 'moedas' 列表
上的 'mode' 的工作词汇:Heads-cara / Talls - coroa /Coin(s)- moeda(s) /To flip - Virar(葡萄牙语)
如果能帮助我更改其余代码中的一些错误,我将不胜感激。
def Virar(moeda):
if moeda == 'cara':
moeda = 'coroa'
if moeda == 'coroa':
moeda = 'cara'
return moeda
qtde_moedas = int(input('How much coins do u want?'))
moedas=[]
while (len(moedas))<qtde_moedas:
moedas.append('cara')
for divisor in range(2,len(moedas)):
for index_num in range(len(moedas)):
if (index_num+1)%divisor==0:
moedas[index_num] = Virar(moedas[index_num])
else:
pass
假设您将 'cara'
传递给您的函数 Virar
;首先它将 moeda
更改为 'coroa'
,因为它是 'cara'
。然后,它检查 moeda
是否是 'coroa'
,现在是 True
,所以它把它变回 'cara'
!所以 Viara
永远不会 随心所欲地抛硬币。相反,请尝试使用 elif
或 else
:
def Virar(moeda):
if moeda == 'cara':
moeda = 'coroa'
else:
moeda = 'cara'
return moeda
一个较短的版本,如果您有兴趣,将是以下内容:
def virar(moeda):
return 'coroa' if moeda == 'cara' else 'cara'
qtde_moedas = int(input("How many coins do you want? "))
moedas = ['cara'] * qtde_moedas
for divisor in range(2, qtde_moedas + 1):
for i in range(divisor - 1, qtde_moedas, divisor):
moedas[i] = virar(moedas[i])
print(moedas)