對于背景關系,這是來自 HackerRank 的駱駝案例 #4 問題。
我得到了一個多字串,例如test...
test = '''S;M;plasticCup()
C;V;mobile phone
C;C;coffee machine
'''
我需要根據幾個條件(不相關)來操縱它。成功操作后test,我需要回傳我自己的多行字串output,我將在下面嘗試完成。
def feeder(user_input):
split_total = user_input.splitlines()
output = ''
for element in split_total:
output = f"{camelCase(element)} \n"
#camelCase()` is the user-defined function that applies the "several conditions" mentioned earlier
#code snippet for camelCase() provided at bottom of the post, in case it matters
return output
feeder(test)
但是,我的輸出變數完全忽略了換行符\n?
'plastic cup \nmobilePhone \nCoffeeMachine'
是什么賦予了?
我試過換行符,它在這里作業嗎?
chr_list = ['a', 'b', 'c']
output = ''
for element in chr_list:
output = f"{element}\n"
print(output)
輸出
a
b
c
駝峰式代碼
def camelCase(user_input):
split_ls = user_input.split(';')
if (split_ls[0] == 'S'): #splitting
index_of_upr, split_of_upr = [], []
split_ls[2] = split_ls[2].replace('()', '') #remove method's ()
for index, character in enumerate(split_ls[2]):
if (character.isupper()):
split_ls[2] = split_ls[2].replace(character, ' ' character.lower())
split_ls[2] = split_ls[2].strip()
return split_ls[2]
else: #combining
split_ls[2] = split_ls[2].split(' ')
for i in range(len(split_ls[2])):
split_ls[2][i] = split_ls[2][i].title()
if (split_ls[1] == 'C'): #class
return ''.join(split_ls[2])
else: #method,variable
split_ls[2][0] = split_ls[2][0].lower()
if (split_ls[1] == 'V'): #variable
return ''.join(split_ls[2])
else: #method
return ''.join(split_ls[2]) '()'
謝謝大家看我的代碼:)
uj5u.com熱心網友回復:
回傳字串或列印它是有區別的。
- 列印時,
\n字符確實顯示為換行符 - 使用函式的 return 陳述句,它會繼續顯示
\n在字串中,直到您print(string)
uj5u.com熱心網友回復:
您的方法回傳字串。您必須列印字串才能查看新行。這里:
print(feeder(test))
輸出:
plastic cup
mobilePhone
CoffeeMachine
Print 將評估新的行字符并將其反映為這樣。
希望這有幫助:) 干杯!
uj5u.com熱心網友回復:
這里的區別在于將結果視為原始字串與列印。
查看原始字串時,\n新行被轉義為\n
'plastic cup \nmobilePhone \nCoffeeMachine'
而如果你列印它,它應該解釋\n為列印到一個新行,給你這樣的東西:
plastic cup
mobilePhone
CoffeeMachine
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/350588.html
上一篇:構建動態字串以過濾休息呼叫
下一篇:無法比較python中的兩個字串
