在Python中的函数内调用函数时遇到问题

时间:2020-03-20 00:27:16

标签: python function object

我目前是一名业余程序员,正在学习Python。我创建了一个Rock,Paper,Scissors程序,我夸大了它,以便练习在面向函数/面向对象的编程中调用函数。 问题:我创建了这个程序来将不同的功能链接在一起。 (一个函数的末尾调用另一个函数)。但是,运行该程序后,它会读取第一个功能,但不允许用户继续使用第二个功能,依此类推。任何人都可以校对我的代码以查看问题所在吗?

from random import randint
def func(n,v):
    if (n==1): 
        print "You chose Rock"
    elif n==2:
        print "You chose Paper"
    elif n==3:
        print "You chose Scissors"
    comp_call(v)

def translate_num(n):
    if n==1:
        print "Rock"
    elif n==2:
        print "Paper"
    elif n==3:
        print "Scissors"

def comp_call(v):
    if v==1: 
        "Computer chose rock"
    elif v==2:
        "Computer chose paper"
    elif v==3:
        "Computer chose scissors"
    check(n,v)

def check(n,v):
    if n==v:
        print "You both chose " + translate_num(n) + " try again!"
        n = int(raw_input())
        v = randint(1,3)
        return func(n,v)
    elif n==1 & v==2:
        print "Paper covers rock. Computer win!"
    elif n==1 & v==3:
        print "Rock beats scissors. You win!"
    elif n==2 & v==1:
        print "Paper covers rock. You win!"
    elif n==2 & v==3:
        print"Scissor beats paper. Computer wins!"
    elif n==3 & v==1:
        print "Rock beats scissors. Computer wins!"
    elif n==3 & v==2:
        print "Scissors beats paper. You win!"

print "Please enter a number: 1 for rock, 2 for paper, 3 for scissors"
n = int(raw_input())
v = randint(1,3)
func(n,v)

2 个答案:

答案 0 :(得分:0)

在第二个函数comp_call中,任何地方都没有“打印”。

答案 1 :(得分:0)

您不能在不传递参数的情况下调用它们