撰寫一個名為 get_numerals 的函式。get_numerals 應該接受一個引數,一個字串。它應該回傳一個只包含原始字串中數字的字串:沒有字母、標點符號或空格。
請記住,數字的序數介于 48(“0”)和 57(“9”)之間。您可以使用 ord() 函式來獲取字母的序數。
您的函式應該能夠處理沒有數字的字串(回傳空字串)和所有數字的字串(回傳原始字串)。您可能認為我們只會使用常規字符(沒有表情符號、格式字符等)。
在這里寫你的函式!
def get_numerals(a_string):
for char in a_string:
if ord(char) >= 48 or ord(char) <= 57:
a_string = a_string.replace(char, "")
return a_string
下面是一些將測驗您的功能的代碼行。您可以更改變數的值以使用不同的輸入測驗您的函式。
如果您的功能正常作業,則最初將列印:1301
8675309
print(get_numerals("CS1301"))
print(get_numerals("Georgia Institute of Technology"))
print(get_numerals("8675309"))
我已經嘗試了多種方法,結果是我的函式只回傳空字串。我知道我錯過了一些簡單的東西。任何幫助表示贊賞。
uj5u.com熱心網友回復:
每個數字都是>= 48 or <= 57。你想用 ord 洗掉字符< 48 or > 57:
def get_numerals(a_string):
for char in a_string:
if ord(char) < 48 or ord(char) > 57:
a_string = a_string.replace(char, "")
return a_string
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/381636.html
