我不允許在我的代碼中使用 .upper 但我不知道為什么這不起作用。我的一些輸入是“AgtGtGcC”“AAtcccgG”
import sys
seqs = []
for i in range(len(sys.argv)):
seq = sys.argv
seqs.append(seq)
def uppercase(seq):
alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
result = ''
for x in seq:
for pos in range(52):
if alphabet[pos] == x:
i = pos
if x not in alphabet or i>=26:
result = x
else:
result = alphabet[i 26]
return result
uppercase(seq)
print(seqs)
uj5u.com熱心網友回復:
我認為您的功能確實有效(除非您遇到非字母字符)。
但是,您的腳本并沒有按照您的想法進行。最后看看這行:
uppercase(seq)
print(seqs)
您僅在一個示例上運行您的函式,并且您列印測驗字串而不是結果。也許你應該把它改成這樣:
for seq in seqs:
print(uppercase(seq))
uj5u.com熱心網友回復:
map這是使用 ASCII 表和andord函式的低級(C 風格)方法。
該函式通過測驗傳遞的字符實際上是小寫的(因此您不會在轉換后的值中得到符號)。如果字符是小寫,則轉換為大寫;否則回傳原始字符。
最后,將字串(通過map函式)映射到upper函式,在函式中將字串連接在一起以獲得最終結果。
示例代碼:
def upper(c):
"""Convert lower case to upper case."""
if 97 <= ord(c) <= 122:
return chr(ord(c)-32)
else:
return c
string = 'AgtGtGcC'
result = ''.join(map(upper, string))
輸出:
'AGTGTGCC'
檔案參考:
- 映射、 排序、字串連接
uj5u.com熱心網友回復:
其邏輯很簡單:如果字符為小寫,則轉換為對應的大寫,否則,原樣包含。
def uppercase(seq):
lowers = 'abcdefghijklmnopqrstuvwxyz'
uppers = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
result = ''
for x in seq:
if x in lowers:
result = uppers[lowers.index(x)]
else:
result = x
return result
seqs = 'Hello, How Are You?'
uppercase(seqs)
# HELLO, HOW ARE YOU?
uj5u.com熱心網友回復:
您可以使用 ASCII 字符將小寫字符轉換為大寫字符。這里唯一需要注意的是你應該知道 ASCII 字符是如何作業的。
uj5u.com熱心網友回復:
該功能運行良好,但您弄亂了命令列界面,這里是sys. 在這里如何解決它:
檔案:upper.py
def uppercase(seq):
# original implementation of the OP
alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
result = ''
for x in seq:
for pos in range(52):
if alphabet[pos] == x:
i = pos
if x not in alphabet or i>=26:
result = x
else:
result = alphabet[i 26]
return result
if __name__ == "__main__":
import sys
for seq in sys.argv[1:]: # the 0 entry is always the file name, so skip it!
print(uppercase(seq))
從命令列:
$ python3 upper.py 1212 check check: hallo tHere!
輸出
1212
CHECK
CHECK:
HALLO
THERE!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/497046.html
下一篇:比較兩個串列并獲取值不同的索引
