我正在尝试编写一个打印三个元组的程序,但我只能成功返回两个元组。
我想在元组中返回:字符,序数值和字符的类型:“字母”,“数字”或“标点符号”。
我已经编写了if / elif / else来检查这三个值,但现在不知道如何将它们作为第三个值返回元组中。
这是我的代码:
def character_info(char):
ord_value = ord(char)
ord_result = ord_value
if char.isdigit():
"number"
elif char.isalpha():
"letter"
else:
"punctuation"
return (char,ord_result)
print character_info("t")
print character_info("3")
print character_info("-")
实际输出:
('t', 116)
('3', 51)
('-', 45)
预期输出
('t', 116, letter)
('3', 51, number)
('-', 45, punctuation)
答案 0 :(得分:4)
如果您写下如下声明:
"number"
这是一个无操作:你只需要写一个文字,但你根本不对该文字做任何事情。
这里的技巧是将该文字分配给一个变量,然后您可以在return
语句中使用该变量。例如:
def character_info(char):
ord_value = ord(char)
ord_result = ord_value
if char.isdigit():
chartype = "number"
elif char.isalpha():
chartype = "letter"
else:
chartype = "punctuation"
return (char,ord_result,chartype)
答案 1 :(得分:2)
尝试以下
def character_info(char):
ord_value = ord(char)
ord_result = ord_value
ord_type = ""
if char.isdigit():
ord_type = "number"
elif char.isalpha():
ord_type = "letter"
else:
ord_type = "punctuation"
return (char, ord_result, ord_type)
print character_info("t")
print character_info("3")
print character_info("-")
你从来没有真正使用if语句中的内容 - 我将它保存在一个变量中,然后在最后返回
答案 2 :(得分:1)
def character_info(char):
ord_result = ord(char)
if char.isdigit():
ord_type = "number"
elif char.isalpha():
ord_type = "letter"
else:
ord_type = "punctuation"
return char, ord_result, ord_type
print(character_info("t"))
print(character_info("3"))
print(character_info("-"))