whitelbwnb 发表于 2020-9-21 21:46:07

关于字符格式化课后作业

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
前面的转十六、八要指代过去括号要括起来,那十进制转二进制的时候为什么不需要?

liuzhengyuan 发表于 2020-9-21 21:53:14

只是输出方式不同,和进制没有关系,前两种其实也可以不加括号

Datura 发表于 2020-9-21 22:08:05

本帖最后由 Datura 于 2020-9-21 22:11 编辑

#print('the number is %-d %-d' %(+250,-250))
#the number is 250 -250
q = True
while q:
    num = input('请输入一个整数(输入Q结束程序):')
    if num != 'Q':
      num = int(num)
      #print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
      print('十进制 -> 十六进制 : %d -> ' % num, hex(num))
      #print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
      print('十进制 -> 八进制 : %d -> ' % num, oct(num))
      #print('十进制 -> 二进制 : %d -> ' % num, bin(num))
      print('十进制 -> 二进制 : %d -> ' % num, bin(num))
    else:
      q = False'''
s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置
r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置
c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置
o,将整数转换成 八进制表示,并将其格式化到指定位置
x,将整数转换成十六进制表示,并将其格式化到指定位置
d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
F,同上
g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)
G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)
%,当字符串中存在格式化标志时,需要用 %%表示一个百分号
'''https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif

sunrise085 发表于 2020-9-21 22:08:52

前两个需要加括号,是因为格式化字符有两个,必须括起来,否则会出错。而转二进制的这一行只有一个格式化字符,最后的bin(num)是一个函数,用于将数字转为二进制,不需要格式化字符
页: [1]
查看完整版本: 关于字符格式化课后作业