2017-04-17 203 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

我試圖接受輸入,然後將第一個字符改爲大寫,然後返回結果。 –