Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.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_Function_If Statement - Fatal编程技术网

Python 在函数中传递变量并打印它们

Python 在函数中传递变量并打印它们,python,function,if-statement,Python,Function,If Statement,我的代码有问题 def function_test(valid_employee,employee_number): print """ valid_employee : %d \n employee_number: %d""" %(valid_employee, employee_number) if employee_number == valid_employee: # my if statement seems to be wrong:

我的代码有问题

def function_test(valid_employee,employee_number):
    print """ valid_employee : %d \n employee_number: %d"""  
        %(valid_employee, employee_number)

    if employee_number == valid_employee:   # my if statement seems to be wrong:
        print " EMPLOYEE NUMBER RECOGNISED, WELCOME %d " %(employee_number)
    else:
        print "EMPLOYEE NOT RECOGNISED"

print "Please enter your employee_number "
employee_number = int (raw_input())
test_function = function_test(030532,employee_number)
我试图通过030532(有效的_雇员),但每次我打印它时,在函数(函数测试)中,我都会得到值“12634”,而它应该是“030532”。我使用if语句检查函数中的员工编号和有效员工,以确认该员工是否有效。。有效员工(应为030532)与员工编号相同。我认为传递变量似乎有问题


员工编号似乎打印得很好,我得到了我想要的值030532,或者我应该说“30532”。我将“030532”作为第一个参数传递给test_函数,但当我打印有效的_时,它似乎没有传递给函数。在Python 2中,以0开头的数字(如030532)被解释为八进制,Python固有地试图将其转换为十进制,因此在本例中,它被转换为13578

>>> s = 032412
>>> s
    13578
在Python 3.xx中

>>> t = 032412
  File "<stdin>", line 1
    t = 032412
             ^
SyntaxError: invalid token
>>t=032412
文件“”,第1行
t=032412
^
SyntaxError:无效令牌

您的问题是由Python 2中的奇数设计选项与程序中的奇数设计选项之间的交互引起的。Python2的设计选择(在Python3中已修复)是带前导
0
的int文本被解释为八进制,而不是十进制。因此,我们:

>>> 030532
12634
>>> 010
8
这来自C语言,它显然曾经有意义;Python开发人员意识到这是非常令人惊讶的,因此在Python3中对此进行了更改-现在,前导0是一个语法错误

程序中奇怪的设计是,这里使用的是整数。尽管员工编号被称为“数字”,但实际上更好地将其视为字符串。如果在整个程序中使用字符串,您会发现它会像您所期望的那样神奇地工作。电话号码、信用卡号码和其他你可能遇到的东西也是如此。“规则”是:

数字是一种可以用来做数学运算的东西


所以,我的年龄加上你的年龄就是我们的总年龄,减半就是我们的平均年龄。年龄是一个数字。我的员工号码或电话号码加上您的员工号码或电话号码,我们可以。。。嗯,胡说。如果这种计算是任何人都不想做的事情,请使用字符串。

尝试格式化和缩进代码,使其更易于理解。在
%
之后有一个
,请删除它。请修复缩进。抱歉,伙计们,句号不应该在那里,丹尼尔,当你说适合我的缩进时,你指的是我在这篇文章中的代码吗?阅读困难吗。抱歉,伙计们,我是第一次使用堆栈溢出的新手。您尝试将
有效的\u employee
值作为数字传递。为什么不试试弦乐呢?再次感谢各位,这是我的第一篇“StackOverfow”帖子,我很感谢和你们一起学习!