Python在循环时不能像我希望的那样工作。建筑石头,剪纸游戏

Python在循环时不能像我希望的那样工作。建筑石头,剪纸游戏,python,python-2.7,Python,Python 2.7,我在比赛中遇到了很大的问题。每当我运行shell(cmd)时,它只运行一次,并且应该运行10次。我已经尝试了所有的方法,事实上,我最近刚刚将while循环改为一个函数,但没有任何帮助。我试着刷新我的电脑,但也没用。有人知道怎么解决这个问题吗 这是我的密码: import random pc_rock = 1 pc_paper = 2 pc_scissors = 3 you_rock = ['1', 'rock', 'one'] you_paper = ['2', 'paper', 'two'

我在比赛中遇到了很大的问题。每当我运行shell(cmd)时,它只运行一次,并且应该运行10次。我已经尝试了所有的方法,事实上,我最近刚刚将while循环改为一个函数,但没有任何帮助。我试着刷新我的电脑,但也没用。有人知道怎么解决这个问题吗

这是我的密码:

import random

pc_rock = 1
pc_paper = 2
pc_scissors = 3

you_rock = ['1', 'rock', 'one']
you_paper = ['2', 'paper', 'two']
you_scissors = ['3', 'scrissors', 'three']

def ifs():
    turns = 0
    while turns < 10:
        turns = turns + 1
        pc_score = 0
        you_score = 0
        if you == you_rock and comp == pc_rock:
            print "Draw"
        elif you == you_rock and comp == pc_paper:
            print "You lose"
            pc_score = pc_score + 1
        elif you == you_rock and comp == pc_scissors:
            print "You win"
            you_score = you_score + 1
        elif you == you_paper and comp == pc_paper:
            print "Draw"
        elif you == you_paper and comp == pc_rock:
            print "You win"
            you_score = you_score + 1
        elif you == you_paper and comp == pc_scissors:
            print "You lose"
            pc_score = pc_score + 1
        elif you == you_scissors and comp == pc_scissors:
            print "Draw"
        elif you == you_scissors and comp == pc_rock:
            print "You lose"
            pc_score = pc_score + 1
        elif you == you_scissors and comp == pc_paper:
            print "You win"
            you_score = you_score + 1
    else:
        print  you_score , "is your score"
        print  pc_score , "is the pc's score"
        if you_score > pc_score:
            print "You win!"
        elif pc_score > you_score:
            print "You lose!"
        elif pc_score == you_score:
            print "Its a Draw!"


comp = random.randrange(1, 4)
print "You are about to play a fun game of rock, paper and scissors against"
print "your pc"
print "It is completely random so the pc can lose"
print "You will play 10 rounds"
print "Do you pick rock, paper or scissors"
print "ROCK = 1"
print "PAPER = 2"
print "SCISSORS = 3"
you = raw_input('>>>>')

#Pc ifs 
#__________________


if comp == pc_rock:
    print "The PC picks rock"
elif comp == pc_paper:
    print "The PC picks paper"
elif comp == pc_scissors:
    print "The PC picks scissors"
else:
    print " ERROR |" * 10
    print "STH WENT WRONG PLEASE GO BACK AND CHECK THE CODE"


#You ifs 
#__________________
if you in you_rock:
    print "You picked rock"
    ifs()
elif you in you_paper:
    print "You picked paper"
    ifs()
elif you in you_scissors:
    print "You picked scissors"
    ifs()
else:
    while you != you_rock or you_paper or you_scissors:
        print "Either rock paper or scissors please!"
        you = raw_input('>>>>')
        ifs()
随机导入
pc_rock=1
pc_纸=2
pc_剪刀=3
you_rock=['1','rock','one']
你的纸=['2','paper','two']
你的剪刀=['3','Scrissor','three']
定义ifs():
圈数=0
当转弯小于10时:
匝数=匝数+1
pc_分数=0
你的分数=0
如果你=你的摇滚乐,而公司=个人摇滚乐:
打印“绘图”
如果你=你的摇滚乐和音乐=个人电脑论文:
打印“你输了”
pc_分数=pc_分数+1
elif you==you_rock and comp==pc_剪刀:
打印“你赢了”
you_分数=you_分数+1
如果你=你的论文,而薪酬=个人电脑论文:
打印“绘图”
如果你=你的论文和作文=电脑摇滚乐:
打印“你赢了”
you_分数=you_分数+1
如果你=你的纸和布=电脑剪刀:
打印“你输了”
pc_分数=pc_分数+1
elif you==you_剪刀和comp==pc_剪刀:
打印“绘图”
elif you==你的剪刀和comp==个人电脑摇滚乐:
打印“你输了”
pc_分数=pc_分数+1
elif you==剪刀和复合纸:
打印“你赢了”
you_分数=you_分数+1
其他:
打印你的分数,“是你的分数”
打印pc_分数,“是pc的分数”
如果你的分数>个人电脑分数:
打印“你赢了!”
elif pc_分数>你的分数:
打印“你输了!”
elif pc_分数==你的分数:
打印“平局!”
comp=随机随机随机范围(1,4)
打印“你将要玩一个有趣的石头、布和剪刀游戏”
打印“你的电脑”
打印“这是完全随机的,因此电脑可能会丢失”
打印“您将玩10轮”
打印“你选石头、布还是剪刀?”
打印“岩石=1”
打印“纸张=2”
打印“剪刀=3”
您=原始输入('>>>>')
#个人电脑国际单项体育联合会
#__________________
如果comp==pc_rock:
打印“电脑拣石头”
elif comp==pc_纸张:
打印“电脑拣纸”
elif comp==pc\U剪刀:
打印“电脑拿起剪刀”
其他:
打印“错误|”*10
打印“出错请返回并检查代码”
#你如果
#__________________
如果你喜欢摇滚乐:
打印“你选了石头”
ifs()
如果你在你的论文中:
打印“你选的纸”
ifs()
如果你在你的剪刀里:
打印“你挑了剪刀”
ifs()
其他:
而你呢!=你用石头、布或剪刀:
打印“请用石头纸或剪刀!”
您=原始输入('>>>>')
ifs()
  • 您正在将整数值与列表进行比较
    You==You\u rock

    在功能范围内
  • 因此它返回false,因为while循环中没有其他对象 不要打印任何东西。但是循环执行10次
  • 替换
    you==you\u rock
    you==you\u rock[0]
    以及更改 其他条件
现在运行程序,您将看到它执行10次

注意:while循环放置错误。根据你的喜好改变它 所需输出

  • 您正在将整数值与列表进行比较
    You==You\u rock

    在功能范围内
  • 因此它返回false,因为while循环中没有其他对象 不要打印任何东西。但是循环执行10次
  • 替换
    you==you\u rock
    you==you\u rock[0]
    以及更改 其他条件
现在运行程序,您将看到它执行10次

注意:while循环放置错误。根据你的喜好改变它 所需输出


正如其他人所说,您的
循环在错误的位置。我已经修改了你的代码,使游戏正常运行了10次(并添加了一些
print
语句,以澄清该轮到你了),但仍有一些bug需要清理

import random

pc_rock = 1
pc_paper = 2
pc_scissors = 3

you_rock = ['1', 'rock', 'one']
you_paper = ['2', 'paper', 'two']
you_scissors = ['3', 'scrissors', 'three']

def game():
    print( "You are about to play a fun game of rock, paper and scissors against")
    print( "your pc")
    print( "It is completely random so the pc can lose")
    print( "You will play 10 rounds")
    turns = 0
    pc_score = 0
    you_score = 0
    while turns < 10:
        comp = random.randrange(1, 4)
        print( "Current round: " + str(turns + 1))
        print( "Your score: " + str(you_score))
        print( "PC score: " + str(pc_score))
        print( "Do you pick rock, paper or scissors")
        print( "ROCK = 1")
        print( "PAPER = 2")
        print( "SCISSORS = 3")
        you = raw_input('>>>>')

        #Pc ifs
        #__________________


        if comp == pc_rock:
            print( "The PC picks rock")
        elif comp == pc_paper:
            print( "The PC picks paper")
        elif comp == pc_scissors:
            print( "The PC picks scissors")
        else:
            print( " ERROR |" * 10)
            print( "STH WENT WRONG PLEASE GO BACK AND CHECK THE CODE")


        #You ifs
        #__________________
        if you in you_rock:
            print( "You picked rock")
        elif you in you_paper:
            print( "You picked paper")
        elif you in you_scissors:
            print( "You picked scissors")
        else:
            while you != you_rock or you_paper or you_scissors:
                print( "Either rock paper or scissors please!")
                you = raw_input('>>>>')
        turns = turns + 1

        if you == you_rock and comp == pc_rock:
            print( "Draw")
        elif you == you_rock and comp == pc_paper:
            print( "You lose")
            pc_score = pc_score + 1
        elif you == you_rock and comp == pc_scissors:
            print( "You win")
            you_score = you_score + 1
        elif you == you_paper and comp == pc_paper:
            print( "Draw")
        elif you == you_paper and comp == pc_rock:
            print( "You win")
            you_score = you_score + 1
        elif you == you_paper and comp == pc_scissors:
            print( "You lose")
            pc_score = pc_score + 1
        elif you == you_scissors and comp == pc_scissors:
            print( "Draw")
        elif you == you_scissors and comp == pc_rock:
            print( "You lose")
            pc_score = pc_score + 1
        elif you == you_scissors and comp == pc_paper:
            print( "You win")
            you_score = you_score + 1
        print('')
    else:
        print(  you_score , "is your score")
        print(  pc_score , "is the pc's score")
        if you_score > pc_score:
            print( "You win!")
        elif pc_score > you_score:
            print( "You lose!")
        elif pc_score == you_score:
            print( "Its a Draw!")

game()
随机导入
pc_rock=1
pc_纸=2
pc_剪刀=3
you_rock=['1','rock','one']
你的纸=['2','paper','two']
你的剪刀=['3','Scrissor','three']
def game():
打印(“你将要玩一个有趣的石头、布和剪刀的游戏”)
打印(“您的电脑”)
打印(“这是完全随机的,所以电脑可能会丢失”)
打印(“您将玩10轮”)
圈数=0
pc_分数=0
你的分数=0
当转弯小于10时:
comp=随机随机随机范围(1,4)
打印(“当前轮:+str(圈数+1))
打印(“你的分数:+str(你的分数))
打印(“PC分数:+str(PC分数))
印刷品(“你选石头、布或剪刀吗”)
打印(“岩石=1”)
打印(“纸张=2”)
印刷品(“剪刀=3”)
您=原始输入('>>>>')
#个人电脑国际单项体育联合会
#__________________
如果comp==pc_rock:
打印(“电脑拣石头”)
elif comp==pc_纸张:
打印(“电脑拾取纸张”)
elif comp==pc\U剪刀:
打印(“电脑拿起剪刀”)
其他:
打印(“错误|”*10)
打印(“出错请返回并检查代码”)
#你如果
#__________________
如果你喜欢摇滚乐:
打印(“你选了石头”)
如果你在你的论文中:
打印(“您选择了纸张”)
如果你在你的剪刀里:
打印(“你挑了剪刀”)
其他:
而你呢!=你用石头、布或剪刀:
打印(“请用石头纸或剪刀!”)
您=原始输入('>>>>')
匝数=匝数+1
如果你=你的摇滚乐和c