输出不匹配问题,看不出来哪有问题

img

img

img


请问这里需要怎么操作才能和示例的输出一样呢?我感觉差不多啊 为啥过不了呐

有四处错误
1)输入的字符不对
n = int(input())
2)应该是整除//,而不是除
n//=16
3)if nums[i]<0 后面用print会直接换行
4)如果输出完毕需要换行的话,还要加一个print
试修改如下:

n = int(input())
nums=[]
while n>0:
    nums.append(n%16)
    n//=16
import sys
sum=0
nums = list(reversed(nums))
a=['A','B','C','D','E','F']
for i in range(0,len(nums)):
    if nums[i]<10:
        sys.stdout.write(str(nums[i]))
    else:
        sys.stdout.write((a[nums[i]-10]))
print()

print函数要加参数
print(num[i],end='')
否则它默认后面跟个换行符,
话说,你自己有IDE,不知道先运行一下看看结果吗,就单纯当个码字的工具,也不管代码能不能执行就往网站上传啊
另,print就够用了,不要画蛇添足的又引入什么sys.stdout


def baseshift(self,number,baseFrom:int, baseTo:int):
        assert 16 >= baseFrom >= 2,("base only ranges from 2 to 16")
        assert 16 >= baseTo >= 2,("base only ranges from 2 to 16")
        assert baseFrom != baseTo,("cannot have the same bases")

        #turn to base 10
        number = str(number)
        baseDecNum = 0
        numlen = len(number)-1
        for i in number:
            getNum = self.baseHex.get(i) if i in "ABCDEF" else eval(i)
            baseDecNum += getNum*baseFrom**numlen
            numlen-=1

        #get loop time
        looptime = 0
        while baseTo**(looptime+1) <= baseDecNum:
            looptime += 1

        #turn to target base
        test = baseTo ** looptime
        restr = ""
        for i in range(looptime+1): 
            baseToNum = int(baseDecNum // test)
            baseDecNum = int(baseDecNum % test)
            if baseToNum == 10:
                restr += "A"
            elif baseToNum == 11:
                restr += "B"
            elif baseToNum == 12:
                restr += "C"
            elif baseToNum == 13:
                restr += "D"
            elif baseToNum == 14:
                restr += "E"
            elif baseToNum == 15:
                restr += "F"
            else:
                restr += str(baseToNum)
            test /= baseTo
        return restr
import string
import sys

D = string.hexdigits

def sToH(n):
    h = ''
    if n < 16:
        return D[n]
    while n > 0:
        h = D[n % 16] + h
        n //= 16
    
    return h.upper()

x = 123
res = sToH(x)
sys.stdout.write(res)

in_n = input()
n = int(in_n)
nums = []
while n > 0:
    nums.append(n % 16)
    n = int(n / 16)
nums.reverse()
out = ""
a = ['A','B','C','D','E','F']
for i in range(0, len(nums)):
    if nums[i] < 10:
        out = '{}{}'.format(out, nums[i])
    else:
        out = '{}{}'.format(out, a[nums[i] - 10])
print(out)