Arcticfoxer 发表于 2020-8-10 23:16:35

15讲格式化动动手题目

看过小甲鱼答案,
但为什么我这样不行?实际运行过程中elif后面的语句执行不出来:题目:
blob:https://fishc.com.cn/61fe3236-ff48-4b20-bf91-4b1e2f369ea4
我的:
while True:
    num=input("请输入一个整数(输入Q结束程序):")
    if num=="Q":
      break
    elif isinstance(num,int) :
      a="{0:#x}".format(num)
      b="{0:#o}".format(num)
      c+"{0:#b}".format(num)
      print("十进制->十六进制:num->a\n十进制->八进制:num->b\n十进制->二进制:num->c")
    else:
      continue

zltzlt 发表于 2020-8-10 23:20:33

判断一个字符串是否为纯整数应该使用 isdigit(),c= 打成了 c+,打印那块需要使用格式化。

帮你改好了:

while True:
    num = input("请输入一个整数(输入Q结束程序):")
    if num == "Q":
      break
    elif num.isdigit():
      num = int(num)
      a = "{0:#x}".format(num)
      b = "{0:#o}".format(num)
      c = "{0:#b}".format(num)
      print(f"十进制->十六进制:num->{a}\n十进制->八进制:num->{b}\n十进制->二进制:num->{c}")
    else:
      continue

永恒的蓝色梦想 发表于 2020-8-10 23:44:08

本帖最后由 永恒的蓝色梦想 于 2020-8-10 23:45 编辑

while True:
    num=input("请输入一个整数(输入Q结束程序):")
    if num=="Q":
      break
    elif num.isdigit() :
      num = int(num)
      print(f"十进制->十六进制:{num}->{num:#x}\n十进制->八进制:{num}->{num:#o}\n十进制->二进制:{num}->{num:#b}")

Arcticfoxer 发表于 2020-8-10 23:59:35

zltzlt 发表于 2020-8-10 23:20
判断一个字符串是否为纯整数应该使用 isdigit(),c= 打成了 c+,打印那块需要使用格式化。

帮你改好了: ...

爱你!!!
但是为什么isinstance不行呀?

Arcticfoxer 发表于 2020-8-11 00:00:16

永恒的蓝色梦想 发表于 2020-8-10 23:44


谢谢你啦

zltzlt 发表于 2020-8-11 07:51:47

Arcticfoxer 发表于 2020-8-10 23:59
爱你!!!
但是为什么isinstance不行呀?

因为无论用户输入的是什么,input() 的返回值都为字符串。

Arcticfoxer 发表于 2020-8-11 22:52:02

zltzlt 发表于 2020-8-11 07:51
因为无论用户输入的是什么,input() 的返回值都为字符串。

明白啦
页: [1]
查看完整版本: 15讲格式化动动手题目