我正在尝试使用“学习Python:像计算机科学家一样思考”一书来学习Python,但是在我下载并安装Anaconda 3之后,我在尝试从IDLE模式运行脚本时遇到了一些问题。 (事实上一个多星期以来,我一直在努力解决这个问题。)本书说我们应该编写和测试一个函数,我将脚本保存在print_twice_cat.py文件中。但是,每次我尝试运行脚本时,我只会收到以下错误消息:======== RESTART:C:\ Users \ USER \ Anaconda3 \ Scripts \ print_twice_cat.py ======== 。 (保存为脚本的其他函数会生成相同的输出,错误消息中的唯一更改是.py文件名。) 另外,如果我在脚本中包含一个print语句(例如print('spam')),我会得到print语句的输出,但是没有输出脚本中包含的任何函数,如上所述。 我也google了一下,发现一些网站建议将C盘中的python位置添加到路径变量中。在我的路径变量中,我有:“ipts; C:\ users \ user \ Anaconda3 \ Library \ bin”(不带引号)所以我添加了:; C:\ Python35结尾,但我仍然有相同的RESTART消息只要。 在进一步搜索之后(在几个站点上,包括stackoverflow站点),我决定从windows命令提示符运行Python脚本。使用上面的; C:\ Python35仍然在我的路径变量中,我在C:\ Users \ USERS>键入了python。提示,然后在python环境中,我在提示符下键入文件的名称(print_twice_cat.py),但我得到的是此错误消息:“NameError:'print_twice_cat'未定义。” 我还搜索了stackoverflow站点并得到了这个命令,用于在命令行中从空闲模式运行Python 3:$ python3 -m idlelib -r your_script.py但是当我键入它时,我收到的消息是:语法错误:无效的语法。 另外我的Anaconda python版本是Python 3.5.1,我的操作系统是windows 7,bit 32.我非常感谢任何可以帮助我解决这两个问题的建议/建议,因为它们真的让我的学习成果感到沮丧。此外,它还可以帮助可能面临相关挑战的其他用户。 另请在下面找到相关脚本文件的内容:
> def print_twice(bruce):
> print(bruce)
> print(bruce)
>
>
> def cat_twice(part1, part2):
> cat = part1 + part2
> print_twice(cat)
>
>
> line1 = 'Bing tidddle'
> line2 = 'tiddle bing'
> cat_twice = (line1,line2)
答案 0 :(得分:1)
此
=========== RESTART =============
这就意味着此时屏幕上的输出是存储在文件funs()
中的代码的输出。这不是错误。
既然你的学习python,你不可能知道函数只定义代码,不会在它们被调用的情况下做任何事情。(所以它们也不能单独打印)
例如,我正在编写一个功能,在屏幕上两次打印LaLaLa:
print_twice_cat.py
除了定义函数'myfunction'之外,前三行没有任何作用。第四个语句调用函数,因此函数体中定义的代码
答案 1 :(得分:0)
以下是答案:
您尝试使用元组分配变量。要调用你的函数,只需执行以下操作:
cat_twice(line1,line2)
这将调用函数cat_twice
并传递参数line1和line2。如果你这样做,你将创建一个带有元组的var,元组就像这样创建:(tupleobj1,tupleobj2等),因此你的代码没有工作
修改强>
这是一段绝对有效的代码,您可以使用:
def print_twice(var):
print(var)
print(var)
def combine_and_print(obj1, obj2):
string = str(obj1) + str(obj2)
print_twice(string)
line = 'bing'
line2 = 'tiddle'
combine_and_print(line, line2)
这项工作,我已经在python3上尝试过了。如果它仍然不起作用,我认为你在那里有拼写错误或类似的东西。
接受一个喜欢或接受的答案'所以我知道这是否有效,否则只需发表评论我会回答答案。