Python中的多个字符串输入

时间:2017-05-02 10:45:42

标签: python split user-input

我有以下最小代码,我想通过读取用户指定的数据文件来制作绘图。在图中,我希望用户指定 x y 标签。

# ReadFileAndPlot.py
import numpy as np
import pylab as pl
# Use numpy to load the data contained in the file
datafile=raw_input('Enter data filename\n')
print 'Data filename :',datafile

x,y=map(string,raw_input('Enter x and y axis labels\n').split())
#x='Current'; y='Voltage'

data = np.loadtxt(datafile)

# plot the first column as x, and second column as y
pl.plot(data[:,0], data[:,1], 'ro')
pl.xlabel(x)
pl.ylabel(y)
pl.xlim(0.0, 10.)
pl.show()

但是,使用split字符串作为多个输入进行识别时,无法识别字符串。所以我收到了消息:NameError: name 'string' is not defined [虽然可以使用int变量。

使用split或类似方法更正此问题?

2 个答案:

答案 0 :(得分:0)

使用str而不是string:

x,y=map(str, raw_input('Enter x and y axis labels\n').split())

答案 1 :(得分:0)

您不需要使用地图。只需拆分并将元组分配给x和y。但它不能确保用户提供有效的输入(意思是两个单词)。如果有两个以上的单词会破坏。

while True:
    try:
        x, y = raw_input('Enter x and y axis labels\n').split()
        break
    except ValueError:
        print('Invalid input.')