米斯特尔.D 发表于 2021-11-1 19:53:42

我是新手求大佬解答

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

请输入一个整数(输入Q结束程序):106
Traceback (most recent call last):
File "C:/Users/25374/Desktop/MR.D/作业/进制的转换.py", line 4, in <module>
    print('十进制 -> 十六进制:'+ num + '->' + '%0x'% num )
TypeError: %x format: an integer is required, not str
哪里的问题?

Stubborn 发表于 2021-11-1 19:56:28

说要传进的num需要一个integer整型数字,而不是一个str字符,使用int进行转换

num=int(input("请输入一个整数(输入Q结束程序):"))

傻眼貓咪 发表于 2021-11-1 19:58:26

你输入的是字符串,不是整数
input() 输入法,默认是字符串,除非前面加个 int,如:int(input())

米斯特尔.D 发表于 2021-11-1 19:59:11

Stubborn 发表于 2021-11-1 19:56
说要传进的num需要一个integer整型数字,而不是一个str字符,使用int进行转换

不对呀!还是显示之前的错误
Traceback (most recent call last):
File "C:/Users/25374/Desktop/MR.D/作业/进制的转换.py", line 5, in <module>
    print('十进制 -> 十六进制:'+ num + '->' + '%0x'% num )
TypeError: can only concatenate str (not "int") to str

Stubborn 发表于 2021-11-1 20:00:17

米斯特尔.D 发表于 2021-11-1 19:59
不对呀!还是显示之前的错误
Traceback (most recent call last):
File "C:/Users/25374/Desktop/MR. ...

把+号,换成,的,英文的,
print('十进制 -> 十六进制:', num + '->' , '%0x'% num )

米斯特尔.D 发表于 2021-11-1 20:01:37

傻眼貓咪 发表于 2021-11-1 19:58
你输入的是字符串,不是整数
input() 输入法,默认是字符串,除非前面加个 int,如:int(input())

number=int(input("请输入一个整数(输入Q结束程序):"))
num=int(number)
Q=True
while num!=Q:
    print('十进制 -> 十六进制:'+ num + '->' + '%0x'% num )
    print('十进制 -> 八进制:'+ num + '->' + '%0o'% num )
    print('十进制 -> 二进制:'+ num + '->' + bin(num) )
    num=input("请输入一个整数(输入Q结束程序):")
这样输入还是不对

米斯特尔.D 发表于 2021-11-1 20:05:28

Stubborn 发表于 2021-11-1 20:00
把+号,换成,的,英文的,

不行呀大哥,你输一下试试

黎明zxc 发表于 2021-11-1 20:51:23

本帖最后由 黎明zxc 于 2021-11-1 20:52 编辑

number = input("请输入一个整数(输入Q结束程序):")
num = int(number)
while num != "Q":
    print('十进制 -> 十六进制:' + number + '->' + '%0x' % num)
    print('十进制 -> 八进制:' + number + '->' + '%0o' % num)
    print('十进制 -> 二进制:' + number + '->' + bin(num))
    number = input("请输入一个整数(输入Q结束程序):")
    num = int(number)

黎明zxc 发表于 2021-11-1 20:54:48

这年头就不要用%控制输出了,format我都嫌老,你去查查f""方法

傻眼貓咪 发表于 2021-11-1 21:24:14

try:
    num = int(input("请输入一个整数:"))
    print(f"十进制:{num},十六进制:{hex(num)}")
    print(f"十进制:{num},八进制:{oct(num)}")
    print(f"十进制:{num},二进制:{bin(num)}")
except:
    pass请输入一个整数:123
十进制:123,十六进制:7b
十进制:123,八进制:173
十进制:123,二进制:1111011

傻眼貓咪 发表于 2021-11-1 21:28:11

本帖最后由 傻眼貓咪 于 2021-11-3 19:32 编辑

Python 的三种字符串格式化:

1.)% 格式化
比如:你的代码

2.).format() 格式化
比如:"你好,{}".format("小白") = "你好,小白"

3.)f-string 格式化
比如:a = "小白"
f"你好,{a}" = "你好,小白"
页: [1]
查看完整版本: 我是新手求大佬解答