2017-04-17 99 views
-4

我似乎无法摆脱功能并且来回传递内容我将包含说明和代码。有人能告诉我我哪里出错了吗?字符串操作

说明: 编写一个程序与接受字符串作为参数,并返回字符串的副本,每个句子的第一个字母大写的功能。

例如: 用户输入"my name is Earl. my favorite college is Mott Community College."程序都将返回"My name is Earl. My favorite college is Mott Community College."

def main(): 
    strAccepted = input('Enter introduction sentence (Example: my name is..): ') 
    strAccepted2 = input('Enter your school (Example: my school is..): ') 
    print('You entered: ', first(fixed)) 
    print(second(fixed2)) 

def first(): 
    for character in string: 
    character = strAccepted[0] 
    fixed = upper(character) 
    return fixed 

def second(): 
    for character2 in string: 
    character2 = strAccepted2[0] 
    fixed2 = upper(character2) 
    return fixed2 

main() 
+0

请再具体些,什么是你的代码错误尝试的输出。为了这项任务的目的,一个句子的定义是什么?这是一串字符后面跟着一段时间吗? –

+0

请在'for loops'处更正您的缩进。并发布你得到的错误消息。 –

+0

是@RoryDaulton后跟一个句点的字符串。 –

回答

0

你有两个主要问题:如果你想有一个功能能够采取一些数据,你需要将该数据添加为参数。例如:

def fun(x): 
    # do something with x 

如果没有括号之间添加x,你就不能在函数中使用它。所以,你的功能firstsecond需要改变,如果你想传递参数给他们:

def first(string): 
    # do something with string 

的第二个问题是,你的循环是不清楚:你要处理的整个字符串,或只采取一个字符从他们?如果你想整个字符串走了过来,你需要缩进,你做一些事情上的每个字块:

在串字符: #做一些与每个字符

如果不缩进像那样,循环将不会运行。

当你调用一个函数时,你需要给它一个你希望它操作的值,并且它会返回你调用return`的结果。

所以,当你拨打:

x = some_function(some_argument) 

some_argument值是可用的功能中,并从功能价值return编辑存储在x。你似乎试图以相反的方式去做。

你可以用下面的解决你的问题(在句子的开头使用大写字母):

def capitalized(a): 
b=[] 
str="" 
b=a.split(".") 
for i in range(0,len(b)-1): 
    cc=b[i] 
    str+=cc.capitalize() 
    str+="." 
print str 

a=raw_input() 
capitalized(a) 
+0

我试图接受输入,然后将第一个字符改为大写,然后返回结果。 –