我们刚开始在CSCI课程中使用字符串,但我对最近的作业感到困惑。
给你一个很长的字符串:
"""Justin$Calculus$90$Java$85$Python88$
Taylor$Calculus$73$Java$95$Python86$
Drew$Calculus$80$Java$75$Python94$
"""
该字符串有三行。它包含三个学生的分数 三门课程。写一个函数
findScore(student, subject)
。什么时候 你调用函数findScore(‘Drew’,’Java’)
这样的函数 打印“Drew got 75 of the course Java.”
除了
findScore(student, subject)
功能外,您还可以 写其他功能。所有功能都在一个程序中。
我认为我需要将此字符串分配给变量,但是我是使用一个变量,还是每行一个变量?
任何一个开始的想法将不胜感激。我是python的新手所以请耐心等待。此外,$
标志的重要性是什么?
答案 0 :(得分:6)
看看str.split
。您可以使用它将字符串拆分为列表:
"foo bar baz".split() #['foo','bar','baz'] (split on any whitespace)
"foo$bar$baz".split('$') #['foo','bar','baz']
从这里开始,只需将字符串拆分为适当的列表,然后正确地遍历列表以挑选出所需的元素。
此外,您可以使用str.find
来获取类名的索引,并使用切片在拆分$
之前将字符串拆分。这样可以更容易地获得特定分数(无需额外迭代):
s = 'foo$bar$baz'
s_new = s[s.find('bar'):] #'bar$baz'
baz = s_new.split('$')[1]
print baz
答案 1 :(得分:1)
阅读此内容的便捷方法是使用csv
模块。它适用于逗号分隔值,但您可以更改分隔符并改为使用$
。
您需要使用delimiter='$'
作为reader
的参数。
答案 2 :(得分:0)
将字符串存储在变量中,例如:
strs="""Justin$Calculus$90$Java$85$Python88$
Taylor$Calculus$73$Java$95$Python86$
Drew$Calculus$80$Java$75$Python94$
"""
使用for循环遍历strs.split()
,即for line in strs.split()
(使用strs.split()
将返回一个包含所有行的列表,以空格分割)
现在每行使用line.rstrip("$").split('$')
,它会在第一行返回这样的内容:
['Justin', 'Calculus', '90', 'Java', '85', 'Python88']
rstrip("$")
会从
$