无法在IDLE模式和命令提示符下运行python 3脚本
我想学习使用本书“学习Python:像计算机科学家一样思考”的Python,但是在我下载并安装了Anaconda 3之后,我遇到了一些尝试从IDLE模式运行脚本时出现问题。 (实际上我已经有一个多星期了,我一直在试图解决这个问题。)本书说我们应该编写和测试一个函数,我将这个脚本保存在文件print_twice_cat.py中。但是,每次尝试运行脚本时,我都会收到以下错误消息:======== RESTART:C:\ Users \ USER \ Anaconda3 \ Scripts \ print_twice_cat.py ======== 。 (作为脚本保存的其他函数产生相同的输出,并且错误消息的唯一变化在.py文件名中。) 另外,如果我在脚本中包含print语句(例如print('spam'))我会得到print语句的输出,但是对于脚本中包含的任何函数(例如上面的语句)都没有输出。 我也搜索了一下,发现一些网站建议将C盘中的python位置添加到路径变量中。在我的路径变量中,我有:“ipts; C:\ users \ user \ Anaconda3 \ Library \ bin”(不带引号),所以我在末尾添加了:C:\ Python35,但我仍然得到相同的RESTART消息只要。 进一步搜索后(在几个站点上,包括*站点),我决定在Windows命令提示符下运行Python脚本。从上面的C:\ Python35仍然在我的路径变量中,我在C:\ Users \ USERS>提示符下键入python,然后在python环境中,我在提示符下输入文件名(print_twice_cat.py) ,但我得到的是这个错误消息:“NameError:'print_twice_cat'未定义。” 我也搜索了*网站,并得到这个命令来使用从命令行m运行在空闲模式下的Python 3:$ python3 -m idlelib -r your_script.py但是当我输入它时,我得到的消息是:语法错误: 无效的语法。 此外,我的Anaconda python版本是Python 3.5.1,我的操作系统是Windows 7 32位。我非常感谢任何有助于我解决这两个问题的建议/建议,因为它们令我的学习工作非常沮丧。此外,它可以帮助可能面临相关挑战的其他用户。 也请找到脚本文件的有关内容如下:无法在IDLE模式和命令提示符下运行python 3脚本
> 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)
这
=========== RESTART ============ =
只是意味着此时屏幕上的输出是存储在文件print_twice_cat.py
中的代码的输出。这不是一个错误。 既然你学习python,你不可能知道函数只定义代码,不要做任何直接被调用的东西(所以它们也不能单独打印)
例如我是编写一个函数在屏幕上打印两次LaLaLa:
def myfunction():
print('LaLaLa')
print('LaLaLa')
myfunction()
前三行不做任何事情,只是定义函数'myfunction'。第四语句调用的函数体
这里定义的功能,因此代码答案:
你试图给一个变量分配一个元组。打电话给你的功能只是这样做:
cat_twice(line1,line2)
这将调用函数cat_twice
和传递参数一号线2号线和。如果你不喜欢它,你做到了,你将创建一个变种,在它的元组,都是这样产生的元组:因为这个(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)
这workes,我已经尝试过了自己的python3。如果它仍然不起作用,我认为你在那里有拼写错误或类似的东西。
留下一个喜欢或'答案接受',所以我知道这是否工作,否则只留下评论我会检讨答案。
谢谢,我明白了你的观点,那就是我没有正确地调用函数。但是,我已将行更改为cat_twice(line1,line2),但该脚本仍然不会生成任何输出,只有相同的RESTART消息而没有其他内容。还有什么问题呢? –
为了帮助我现在,你需要告诉我你期望的输出。我想你想把我编辑的东西给我的第二个答案 –
Like/answer accepted。非常感谢!你真的过得很愉快,但我仍然有一个问题。首先,我只复制你的代码并将其粘贴到一个新的脚本文件中,当我运行脚本时,它产生一个输出:它生成脚本“bingtiddle”两次。我的问题是,请问为什么我的修改脚本文件仍然不起作用?仅仅是代码在某种程度上是错误的?或者甚至可能是因为教科书最初是为python2编写的,后来为python 3重新修改,因此我的代码可能适用于python 2而不是python 3? –
首先,感谢您花时间帮助我,但请您能提供更多的说明吗?所讨论的脚本实际上有2个函数定义在其中,但是在脚本被调用之前还为第二个函数提供了一些参数。在那种情况下,它不会产生输出吗?为了使它更清楚,我将重新编辑我的答案,以包含脚本的内容(我目前无法这样做),并会尽快通知您。感谢您的期望帮助。 –
您好,我已经将脚本文件的内容添加到问题中。谢谢。 –
抱歉格式不正确我无法正确看到它 –