这道Python题怎么做?
假定字符串的upper()方法不存在,编写一个函数对传入的字符串返回一个所有字母全大写的字符串。
请编写一个函数upper(),类似于如下形式:
def upper(s):
<函数体>
return <全大写的字符串>
【输入形式】
【输出形式】
【样例输入】
Hello, 123, World!
【样例输出】
HELLO, 123, WORLD!
【样例说明】
对于输入的字符串中的英文字母全部大写
import string
def upper(s):
letter_table = {}
result = ''
for low,up in zip( string.ascii_lowercase,string.ascii_uppercase ):
letter_table[low] = up
for i in s:
result += letter_table.get(i,i)
return result
s='Hello, 123, World!'
result = upper(s)
print(result)
你可以使用 Python 的内置 ord()
函数和 chr()
函数来实现这个功能。
ord()
函数可以将一个字母转换为它的 ASCII 码,比如 ord('a')
返回 97。
chr()
函数可以将一个 ASCII 码转换为对应的字母,比如 chr(97)
返回 'a'。
因此,我们可以遍历字符串中的每个字母,使用 ord()
函数将它转换为 ASCII 码,然后将 ASCII 码减去 32,最后使用 chr()
函数将结果转换为对应的字母。
下面是一个可以实现这个功能的函数:
def upper(string):
result = ''
for ch in string:
ascii_code = ord(ch)
if 97 <= ascii_code <= 122: # 判断字符是否为小写字母
ascii_code -= 32
result += chr(ascii_code)
return result
你可以使用这个函数来将字符串中的所有字母转换为大写字母。例如:
print(upper('Hello, 123, World!')) # 输出 HELLO, 123, WORLD!