breaki 发表于 2020-7-7 22:55:04

python课后作业求助。

t = 1
while t == 1:
    temp =input('请输入一个整数:')
    guess = int (temp)
    zimu =['a','b','c','d','e','f']
    x = guess//16
    y = guess%16
    if y >=10:
      y = zimu
    print('十进制转化为十六进制:0x',end='')
    print('x+y')
    s = guess/8
    j = guess%8
    print('十进制转化为八进制:0o',end='')
    print('s+j')
    print('十进制转化为二进制:0b',end='')
    print('bin(guess)')
    while temp == 'Q':
      t = 0
当输入108结果是这样的。
请输入一个整数:108
十进制转化为十六进制:0xx+y
十进制转化为八进制:0os+j
十进制转化为二进制:0bbin(guess)
请输入一个整数:

Hello. 发表于 2020-7-7 23:01:28

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

Twilight6 发表于 2020-7-7 23:08:05



你的代码不能这样算哈,这样算是错误的,建议改成楼上的格式化法,或者用 Python 内置函数:

hex()十进制转十六进制
oct()   十进制转八进制
bin()   十进制转二进制

顺便把你代码多余的都去掉了,t 不需要 等于 1 然后再做 while 的条件,你可以直接写 1:

while 1:
    temp = int(input('请输入一个整数:'))
    print('十进制转化为十六进制:',hex(temp))
    print('十进制转化为八进制:',oct(temp))
    print('十进制转化为二进制:0b',bin(temp))
    if temp == 'Q' or temp == 'q':
      break

breaki 发表于 2020-7-7 23:10:56

Twilight6 发表于 2020-7-7 23:08
你的代码不能这样算哈,这样算是错误的,建议改成楼上的格式化法,或者用 Python 内置函数:

hex()...

那有没有什么办法可以把15和4拼起来变成154,把7和b拼起来变成7b。

breaki 发表于 2020-7-7 23:13:04

Twilight6 发表于 2020-7-7 23:08
你的代码不能这样算哈,这样算是错误的,建议改成楼上的格式化法,或者用 Python 内置函数:

hex()...

输入q的时候会出现ValueError: invalid literal for int() with base 10: 'q'这样的情况。

Twilight6 发表于 2020-7-7 23:13:12

breaki 发表于 2020-7-7 23:10
那有没有什么办法可以把15和4拼起来变成154,把7和b拼起来变成7b。



噗 我的代码发现也错了 忘记要 q 退出了 我的代码是错的哈

你按照楼上的来吧,不用看我的
页: [1]
查看完整版本: python课后作业求助。