gpt4 book ai didi

python、unix、NameError : name not defined. 无法识别字符串变量

转载 作者:行者123 更新时间:2023-12-01 08:21:45 24 4
gpt4 key购买 nike

我最近开始学习在 bash/unix 中工作...我还是个新手...不太确定它叫什么。

我对Python有丰富的经验。过去 4 年一直使用该语言进行网络工程和数据分析。

现在我们正在做这个虚拟环境的事情,但我在理解它时遇到了一些麻烦。

目前,我在当前工作目录中存储的名为 helloWorld.py 的文件中有以下代码。

#! /usr/bin/env python
def hello():
name = str(input('\n\nHello, what is your name? \n'))
print('\nHello World')
print('But more importantly... \nHello ' + name)
return

hello()

所以。我的问题是。当我在 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 的东西是 super 新的。这实际上是第一天。我已经能够创建和保存文件并更改目录。这是我在 shell 中编写 python 的第一次测试,我立即遇到了障碍。抱歉这个可能 super 简单的问题。感谢您的帮助。

顺便说一句:如果用户在他们输入的内容周围加上引号,那么这确实有效。但这违背了在函数的输入行周围使用 str() 转换器的目的。我怎样才能让用户可以输入任何内容?

最佳答案

In Python 2, raw_input() returns a string, and input() tries to run the input as a Python expression.

试试这个:

#! /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()

关于python、unix、NameError : name not defined. 无法识别字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54599913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com