我想創建一個函數,用於取消大寫字母的大寫。如何在字符串中創建字母lowercas,Python
我想我可以做
if x in caps
其中帽是所有的大寫字母的列表,我已經將其返回的位置在那封信是在列表中,我可以把它用小寫字母代替本身。
我該怎麼做?
謝謝。
我想創建一個函數,用於取消大寫字母的大寫。如何在字符串中創建字母lowercas,Python
我想我可以做
if x in caps
其中帽是所有的大寫字母的列表,我已經將其返回的位置在那封信是在列表中,我可以把它用小寫字母代替本身。
我該怎麼做?
謝謝。
爲什麼不使用內置的「低」
a = 'aBcDeFg'
print a.lower() # abcdefg
如果不工作,你總是可以循環再利用Ord和CHR:
"".join(
# if i is between A and Z change it to between a and z
[chr(ord(i)+32) if 65<= ord(i) <= 90
# otherwise leave it as is
else i for i in a])
就是這樣 - 我頭腦中想到的第一個想法:)似乎很明顯 - 可能他不能解釋他真正想要的東西嗎? –
我不知道更低,謝謝1 – JShoe
Python有一個功能這 - str.lower()。 http://docs.python.org/library/stdtypes.html#str.lower
如果你真的想自己寫的功能,Python的字符串庫有ASCII小寫字母列表,但你可以利用一個事實,即ASCII字符其實只是詮釋值,並添加32到具有價值的每個字母在65到90之間(65 = A和90 = Z,但在Z和a之間有一些標點符號)。無需解析列表!
如果你只是想使字符串小寫嘗試:
>>> import string
>>> myString = "abcDEfGHiJ"
>>> myString.lower()
'abcdefghij'
如果你想每一個小寫字母的指數(無論何種原因):
>>> [pos for pos, let in enumerate(myString) if 65 <= ord(let) <= 90]
[3, 4, 6, 7, 9]
假設這是不是有些這種學術問題,你會使用標準的字符串lower()方法。
x.lower()
如果它是一個鍛鍊,可以將角色翻轉爲int,檢查它是否在ASCII大寫字母的範圍,如果再加入32將其轉換。這當然只適用於ASCII字母。
X = CHR(ORD(X)+32)如果ORD(X)> 64和ord(x)的< 91否則x
不知道還有什麼可以說比庫文檔是在這裏等: http://docs.python.org/library/stdtypes.html
此外,值得注意的是不是真的有一個字符類型,只有數字和字符串,當你具有一個char的字符串它的真正長度爲1同樣的字符串的工作,不要忘記字符串是不可改變的。
誤導性標題 – warvariuc
@warvariuc這是我以爲我會用的解決方案。 '如果x in caps',然後找到它的位置,並將其引用到另一個列表中,並將其替換爲那裏相應位置中的字母。 – JShoe
更改標題以反映您的問題,而不是解決方案 – warvariuc