为了账号安全,请及时绑定邮箱和手机立即绑定

python、unix、NameError:名称未定义。无法识别字符串变量

python、unix、NameError:名称未定义。无法识别字符串变量

慕娘9325324 2021-11-02 20:10:22
我最近开始学习在 bash/unix 中工作……我还是个新手……不太确定它叫什么。我对python有经验。在过去 4 年中使用该语言进行网络工程和数据分析。现在我们正在做这个虚拟环境的事情,但我很难理解它。目前,我在当前工作目录中存储的名为 helloWorld.py 的文件中有以下代码。#! /usr/bin/env pythondef hello():    name = str(input('\n\nHello, what is your name? \n'))    print('\nHello World')    print('But more importantly... \nHello ' + name)    returnhello()所以。我的问题是。当我在 shell 中运行代码时,我得到以下信息:[currentDirectory]$ python helloWorld.py    Hello, what is your name?    randomname <-- typed by user.Traceback (most recent call last):  File "helloWorld.py", line 8, in <module>    hello()  File "helloWorld.py", line 3, in hello    name = str(input('\n\nHello, what is your name? \n'))  File "<string>", line 1, in <module>NameError: name 'randomname' is not defined似乎没有认识到该变量是一个字符串。代码在 bash shell 之外的 IDE 中运行良好。非常基本的代码。但是这个虚拟环境 linux/unix/shell/bash 的东西是超级新的。这实际上是第 1 天。我已经能够创建和保存文件并更改目录。这是我在 shell 中编写 python 的第一次测试,我立即遇到了障碍。对不起,这个可能超级简单的问题。谢谢你的帮助。顺便说一句:如果用户在他们输入的内容周围加上引号,这确实有效。但这违背了在函数的输入行周围使用 str() 转换器的目的。我怎样才能让它让用户可以输入任何内容?
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

在 Python 2 中,raw_input()返回一个字符串,并input()尝试将输入作为 Python 表达式运行。


尝试这个:


#! /usr/bin/env python


def hello():

    name = raw_input('\n\nHello, what is your name? \n')

    print('\nHello World')

    print('But more importantly... \nHello ' + name)

    return


hello()


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号