如何在python中返回涉及if语句的三个元组

时间:2017-10-21 19:56:48

标签: python tuples

我正在尝试编写一个打印三个元组的程序,但我只能成功返回两个元组。

我想在元组中返回:字符,序数值和字符的类型:“字母”,“数字”或“标点符号”。

我已经编写了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)

3 个答案:

答案 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("-"))