Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么赢了';它不打印这个变量吗?_Python - Fatal编程技术网

Python 为什么赢了';它不打印这个变量吗?

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

所以我做这件事是为了数学,需要一个详细的算法。问题是,它实际上不会打印答案,我也不知道为什么。从本质上讲,我们必须找到一个策略来进行这样的游戏:我们有三张牌,每张牌的背面都有一个X或一个O(因此这些牌是XX、OO和XO)。我们必须根据卡片正面的内容猜测卡片背面的内容。每次洗牌,但我仍然认为得到XX,然后再得到XX的几率很低。所以我做了这个代码

#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”)
会引发一些错误。你应该考虑所有值的组合,并确保它们在你的条件中得到处理。如果
语句没有任何区别,那么在
之前打印
你想要检查的变量会有很大帮助。还是不会打印。这两种方式都没什么区别。还是不会打印。没什么区别。没什么区别。