允许用户指定文本的标题和单词并将它们保留在函数之外的函数?

时间:2015-07-18 13:47:41

标签: python input

要定义文本及其标题,通常我会这样做:

Story="I was a good boy"

但是我想创建一个允许用户键入文本标题并将标题保留在函数外部的函数,以供进一步使用。

这是我到目前为止创建的内容:

def create_text():

x=input("Text title: ")
y=input("Text : ")
x=y
return x

当我运行代码时:

>>> create_text()
Text title: Story
Text : I was a good boy
'I was a good boy'

没关系。 但是当我再次输入函数外的文本标题时,我得到了

>>> Story
Traceback (most recent call last):
  File "<pyshell#349>", line 1, in <module>
    Story
NameError: name 'Story' is not defined

如何创建一个允许用户指定文本的标题和单词的函数,并将它们保留在函数之外?

提前谢谢

3 个答案:

答案 0 :(得分:3)

你可以试一本字典。

'Story'

现在,当您运行它时,您可以通过用户提供的名称(>>> userinput = create_text() Text title: Story Text : I was a good boy >>> userinput['Story'] 'I was a good boy' )来引用该故事。

string PathConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =" + textBox1.Text + ";Extended Properties=\"Excel 12.0 XML;HDR=Yes;\";";
        OleDbConnection conn = new OleDbConnection(PathConn);
        OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("Select [ID], [Subject], [Catalog], [Last], [First Name], [Descr], [Mark] from[" + textBox2.Text + "$]", conn);
        DataTable dt = new DataTable();
        myDataAdapter.Fill(dt);
        dataGridView1.DataSource = dt;

答案 1 :(得分:2)

您需要使用该函数返回要在其外部使用的值:

def create_text():
    _title = input("Text title: ")
    _text = input("Text : ")
    return _title, _text

_title_text是函数的本地函数,并且未在其范围之外定义,因此要使用它们,请确保使用返回值(在函数外部):

title, text = create_text()
# use 'title' and 'text' ...

答案 2 :(得分:0)

您希望将用户输入文本转换为变量。

def create_text():
    x=input("Text title: ")
    y=input("Text : ")
    globals()[x] = y
    return x

现在:

>>> create_text()
Text title: Story
Text : I was a good boy
'Story'
>>> Story
'I was a good boy'
>>>

但是,请注意,通常这不是一个好主意。你放弃了 你的程序输入(通常你没有控制权)来搞乱 你的全局命名空间可能会影响你的工作 你的脚本的其余部分,甚至Python本身 - 不要说 把东西放在globals()中几乎总是糟糕的设计。

考虑到这一点,其他答案中提供的方法更好 选项(特别是“返回字典”恕我直言)。