Python 为什么赢了';它不打印这个变量吗?
所以我做这件事是为了数学,需要一个详细的算法。问题是,它实际上不会打印答案,我也不知道为什么。从本质上讲,我们必须找到一个策略来进行这样的游戏:我们有三张牌,每张牌的背面都有一个X或一个O(因此这些牌是XX、OO和XO)。我们必须根据卡片正面的内容猜测卡片背面的内容。每次洗牌,但我仍然认为得到XX,然后再得到XX的几率很低。所以我做了这个代码Python 为什么赢了';它不打印这个变量吗?,python,Python,所以我做这件事是为了数学,需要一个详细的算法。问题是,它实际上不会打印答案,我也不知道为什么。从本质上讲,我们必须找到一个策略来进行这样的游戏:我们有三张牌,每张牌的背面都有一个X或一个O(因此这些牌是XX、OO和XO)。我们必须根据卡片正面的内容猜测卡片背面的内容。每次洗牌,但我仍然认为得到XX,然后再得到XX的几率很低。所以我做了这个代码 #math thing #if the previous one was XX, don't choose XX next time #if the pr
#math thing
#if the previous one was XX, don't choose XX next time
#if the previous was OO, don't choose OO next time
#if it was XO or OX, choose either O or X as the back
import random
starter = input("What's on Front? (starter) ")
back = ""
starterBack = ("X", "O")
starter2 = random.choice(starterBack)
print(starter2)
front = input("What's on Front?")
if starterBack == 'X' and starter == 'X' and front == 'X':
back = O
print(back)
if starterBack == "O" and starter =="O" and front == "O":
back = "X"
print(back)
if starterBack == "O" and starter == "X" and front == "X":
back = random.choice("O", "X")
print(back)
但它不会打印“back”变量。为什么?
starterBack
是(“X”,“O”)
,因此如果starterBack=='X'…
和如果starterBack=='O'…
条件将永远不会为真,也永远不会打印back
。您是否打算在if
条件中编写starter2
而不是starterBack
。您是否打算在if
条件中编写starter2
而不是starterBack
if starterBack == 'X':
starterBack
是一个元组,因此不能等于字符串。要访问元组中的单个项,请使用方括号对其进行索引:
starterBack[0]
这给出了第一项——记住,Python从零开始计数。给你:
if (starterBack[0] == 'X'
and started == 'X'
and front == 'X'):
starterBack
是一个元组,因此不能等于字符串。要访问元组中的单个项,请使用方括号对其进行索引:
starterBack[0]
这给出了第一项——记住,Python从零开始计数。给你:
if (starterBack[0] == 'X'
and started == 'X'
and front == 'X'):
是一个元组,您不能像这样比较值starterBack==“X”
您需要在元组中提供一个特定的值索引,因为X
位于0
索引写入starterBack[0]==“X”
并将back=O
更改为back=“O”
。并将back=random.choice(starterBack)
tuple作为参数传递,而不是back=random.choice(“X”,“O”)。
试试这个代码
import random
starter = input("What's on Front? (starter) ")
starterBack = ("X", "O")
starter2 = random.choice(starterBack)
print(starter2)
front = input("What's on Front?")
if starterBack[0] == "X" and starter == "X" and front == "X":
back = "O"
print(back)
if starterBack[1] == "O" and starter =="O" and front == "O":
back = "X"
print(back)
if starterBack[1] == "O" and starter == "X" and front == "X":
back = random.choice(starterBack)
print(back)
是一个元组,您不能像这样比较值starterBack==“X”
您需要在元组中提供一个特定的值索引,因为X
位于0
索引写入starterBack[0]==“X”
并将back=O
更改为back=“O”
。并将back=random.choice(starterBack)
tuple作为参数传递,而不是back=random.choice(“X”,“O”)。
试试这个代码
import random
starter = input("What's on Front? (starter) ")
starterBack = ("X", "O")
starter2 = random.choice(starterBack)
print(starter2)
front = input("What's on Front?")
if starterBack[0] == "X" and starter == "X" and front == "X":
back = "O"
print(back)
if starterBack[1] == "O" and starter =="O" and front == "O":
back = "X"
print(back)
if starterBack[1] == "O" and starter == "X" and front == "X":
back = random.choice(starterBack)
print(back)
我想你不想检查
starterBack
而是starter2
back=O
和back=random.choice(“O”,“X”)
将抛出一些错误。您应该考虑所有值的组合,并确保它们在您的条件中得到处理。在if
语句之前打印要检查的变量会有很大帮助。我认为您不想检查starterBack
而是starter2
back=O
和back=random。选择(“O”,“X”)
会引发一些错误。你应该考虑所有值的组合,并确保它们在你的条件中得到处理。如果语句没有任何区别,那么在之前打印你想要检查的变量会有很大帮助。还是不会打印。这两种方式都没什么区别。还是不会打印。没什么区别。没什么区别。