中华小鬼 发表于 2020-3-21 12:14:03

进制转换代码中的问题

q = True
while q:
    num = input('请输入一个整数(输入Q结束程序):')
    if num != 'Q':
      num = int(num)
      print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
      print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
      print('十进制 -> 二进制 : %d -> ' % num, bin(num))
    else:
      q = False

1. 上述代码中,print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num)),%d这里是指代正整数吗?可以换成abc吗?

2. 上述代码中,print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num)),最后(num, num)起什么作用?

3. q = True,q = False分别是什么作用?


qiuyouzhi 发表于 2020-3-21 12:18:40

1,是的,代表整数,但是不能换,换了就是别的意思了
2,输出格式不同,一个是以十进制形式输出,一个是以八进制输出
3,用于标记是否继续,while q就是while q == True,
你可以改成while True 和 break,效果一样

_荟桐_ 发表于 2020-3-21 14:03:42

1. d%是格式化,例如:
>>> a = 5
>>> print('a是%d' % a)
a是5
把字符串里的%d换成了a
详情见 015字符串:格式化

2.也是格式化,d%是直接把数代入字符串
%o是把数字换成八进制代入字符串

3.while循环条件是,while后的东西为真
一开始给q赋值为True,是为了进入循环
当num!=‘Q’时就会给q赋值为Flase
就会跳出循环

永恒的蓝色梦想 发表于 2020-3-21 16:26:38

这都啥年头了,就别用%格式字符串了吧……
页: [1]
查看完整版本: 进制转换代码中的问题