这道Python题怎么做

这道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!