因此,我已將這項任務設定為進行修訂,但我不確定該問題的含義:
因為編程語言中的識別符號不能包含任何空格,程式員在宣告變數和子例程的名稱時使用約定。流行的約定包括 PascalCase(在這些教程中使用)、camelCase、kebab-case 和 snake_case。撰寫一個函式,該函式接受三個引數、識別符號的兩部分、所需的約定并輸出識別符號。
例如 Shields Up in kebab-case:shields-up - 所有字母都是小寫。每個單詞都用破折號分隔。
snake_case shields_up - 所有字母都是小寫的。每個單詞用下劃線分隔
camelCase: shieldsUp - 除第二個單詞的第一個字母外,所有字母均為小寫。
PascalCase: ShieldsUp - 只有每個單詞的第一個字母是大寫的。
我假設代碼要求在這些約定中的每一個中顯示識別符號。我已經厭倦了尋找將字串轉換為駝峰式大小寫的方法,但就我所知。
如果有人有任何想法,請告訴我!謝謝
uj5u.com熱心網友回復:
在我的腦海中,camelCase 的一個簡單方法是:
>>> def conventionalIdentifier(str1, str2, convention):
... if(convention == 'camelcase'):
... return str1.lower() str2.capitalize()
... else: #similarly for the rest
... pass
...
>>> print(conventionalIdentifier('hello', 'there', 'camelcase'))
helloThere
從我收集到的資訊來看,這個問題指定你需要一個識別符號的兩個部分,即你只需要以特定格式將兩個字串放在一起。
uj5u.com熱心網友回復:
對于如此瑣碎的事情,這可能看起來像很多代碼,但它旨在展示如何模塊化該方法,從而使其在需要添加其他樣式時更具可擴展性。
此外,這允許用戶傳遞需要構建為指定樣式的多個單詞。與其呼叫不同的函式,不如呼叫一個帶有指示所需樣式的引數的函式。
def kebab(args):
return '-'.join([arg.lower() for arg in args])
def snake(args):
return '_'.join([arg.lower() for arg in args])
def camel(args):
output = [args[0].lower()]
for arg in args[1:]:
output.append(arg[0].upper() arg[1:].lower())
return ''.join(output)
def pascal(args):
output = []
for arg in args:
output.append(arg[0].upper() arg[1:].lower())
return ''.join(output)
CONVENTION = {'k': kebab, 's': snake, 'c': camel, 'p': pascal}
def process(c, args):
if (func := CONVENTION.get(c.lower(), None)):
return func(args)
return None
print(process('s', ['My', 'name','is','jake']))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/401149.html
上一篇:一次實體化多個物件的函式
