2013-09-29 82 views
0

我将如何使用函数来获取字符串的特定部分?
举例来说,我的字符串包含如下数据: '12345678 123456.78 Doe,John D.' #可以代表银行软件的数据# 我如何告诉python使字符串的第一个字符为int,字符串的第二部分为float,最后一部分应该自动保留字符串的权利?Python函数和字符串

for line in file_obj: 
    print(line) #would yield something like this '12345678 123456.78 Doe, John D.' 

如果我有喜欢的功能:

def find_balance(): 
    return float 

def find_acc_num(): 
    return int 
def find_name(): 
    return str 

什么将我的参数是什么?迭代是解决问题的最好方法吗?只要用户可以提供正确的帐号,我就希望能够更改帐户信息(余额和姓名)。我是新使用的功能,我有点不确定如何去做这个...

在此先感谢我的任何帮助,我真的很感激它。 = d

回答

5

您可以使用str.split()maxsplit的2:

>>> s = '12345678 123456.78 Doe, John D.' 
>>> 
>>> v = s.split(None, 2) 
>>> int(v[0]), float(v[1]), v[2] 
(12345678, 123456.78, 'Doe, John D.') 
+1

不错,我不知道有一个maxsplit参数。你每天学习新的东西。 –

1

大概作业,但我无聊

for line in file_obj: 
    #Make a list of parts separated by spaces and new lines 
    #The second argument says to only split up the first two things 
    parts = line.split(None, 2) 
    #Assign each value 
    theint = int(parts[0]) 
    thefloat = float(parts[1]) 
    thestring = parts[3].strip() 

您可以通过传递每个为此在多个函数的函数,如果零件你自找的。

编辑:更改代码以使用@arshajii建议的最大长度。在字符串的末尾也删除了换行符。

+0

你不需要在最后做浪费的重新加入,你只需要两次拆分。 – arshajii

+0

谢谢!很有帮助。快速的问题 - .split()会自动生成一个列表吗?或者,这只是蟒蛇的方式来表示从字符串分离项目? –

+0

@RobertSchneeberger它自动生成一个列表。在那个代码中'''line'''是一个字符串,它的方法''split'''返回一个列表,然后存储到'''parts'''中。 –