python 课,习题进制转换,我略一改动,输入Q提示出错
#我略微改动q = True
while q:
number=input('请输入一个整数(输入Q结束程序):')
num=int(number)#此处改动
if number!='Q':
print('十进制→十六进制: %d→%#x'%(num,num))
print('十进制→八进制: %d→0o%o'%(num,num))
print('十进制→二进制: %d→'%num,bin(num))
else:
q=False
#原代码
q = True
while q:
num= input('请输入一个整数(输入Q结束程序):')
if num != 'Q':
num = int(num)
print('十进制 -> 十六进制 : %d -> %#x' % (num, num))
print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
print('十进制 -> 二进制 : %d ->'% num, bin(num))
else:
q = False 本帖最后由 小伤口 于 2020-12-8 15:24 编辑
q = True
while q:
number=input('请输入一个整数(输入Q结束程序):')
num=int(number)#此处改动
if num!='Q':#这应该是num不是number
print('十进制→十六进制: %d→%#x'%(num,num))
print('十进制→八进制: %d→0o%o'%(num,num))
print('十进制→二进制: %d→'%num,bin(num))
else:
q=False
因为‘Q’是字符串不是整数所以会报错 源代码逻辑:
先判断输入的内容num是否为'Q'
不是'Q'的话再将字符串num转化为整型
修改后代码逻辑:
先将输入的内容num转化为整型
再判断变为整型的num是否为字符串'Q'
按照修改后的代码
我们传入字符串'Q'
num=int('Q')
显然字符串'Q'无法转化为整型
代码报错 小伤口 发表于 2020-12-8 15:22
因为‘Q’是字符串不是整数所以会报错
按照你改后,仍然报错 huyanmin 发表于 2020-12-8 15:47
按照你改后,仍然报错
我知道{:10_250:}没办法你想要num=int(number)
我也不知道该怎么改
我改的只是另一个小错误 逃兵 发表于 2020-12-8 15:23
源代码逻辑:
先判断输入的内容num是否为'Q'
不是'Q'的话再将字符串num转化为整型
number=input('请输入一个整数(输入Q结束程序):')
num=int(number)#此处改动
我用了两个变量,一个是字符串一个是整数啊 huyanmin 发表于 2020-12-8 15:51
number=input('请输入一个整数(输入Q结束程序):')
num=int(number)#此处改动
错就错在这里num=int(number)
>>> number = 'Q'
>>> num = int(number)
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
num = int(number)
ValueError: invalid literal for int() with base 10: 'Q'
把字符串转化成整型报的错 huyanmin 发表于 2020-12-8 15:51
number=input('请输入一个整数(输入Q结束程序):')
num=int(number)#此处改动
q = True
while q:
number=input('请输入一个整数(输入Q结束程序):')
if number=='Q':
break
num=int(number)#此处改动
if num!='Q':
print('十进制→十六进制: %d→%#x'%(num,num))
print('十进制→八进制: %d→0o%o'%(num,num))
print('十进制→二进制: %d→'%num,bin(num))
你真想要你改的
就这样吧你不嫌麻烦的话{:10_250:} 小伤口 发表于 2020-12-8 15:58
你真想要你改的
就这样吧你不嫌麻烦的话
q = True
while q:
number=input('请输入一个整数(输入Q结束程序):')
if number!='Q':
num=int(number)#换个位置即可
print('十进制→十六进制: %d→%#x'%(num,num))
print('十进制→八进制: %d→0o%o'%(num,num))
print('十进制→二进制: %d→'%num,bin(num))
else:
q=False
换个位置即可 huyanmin 发表于 2020-12-8 16:23
q = True
while q:
number=input('请输入一个整数(输入Q结束程序):')
这样不就跟甲鱼老师一样了吗{:10_256:} 小伤口 发表于 2020-12-8 15:58
你真想要你改的
就这样吧你不嫌麻烦的话
q = True
while q:
number=input('请输入一个整数(输入Q结束程序):')
if number=='Q':
break
num=int(number)#此处改动
if number!='Q':#此处不用改动即可
print('十进制→十六进制: %d→%#x'%(num,num))
print('十进制→八进制: %d→0o%o'%(num,num))
print('十进制→二进制: %d→'%num,bin(num))
huyanmin 发表于 2020-12-8 16:33
q = True
while q:
number=input('请输入一个整数(输入Q结束程序):')
虽然你这样也没有问题
但是开头还是不用number!='Q'为好,因为你后面是用num来判定
从代码运行角度讲应该是num!=‘Q’{:10_256:} 小伤口 发表于 2020-12-8 16:50
虽然你这样也没有问题
但是开头还是不用number!='Q'为好,因为你后面是用num来判定
从代码运行角度讲应 ...
num!=‘Q’他两个类型不同,num是整形,‘Q’是字符型 huyanmin 发表于 2020-12-8 16:57
num!=‘Q’他两个类型不同,num是整形,‘Q’是字符型
if number=='Q':
break
所以我用了这个呀
嗯,,,,你我的理解都可以
的确不用改也可以{:10_256:} 小伤口 发表于 2020-12-8 17:07
if number=='Q':
break
所以我用了这个呀
num!=‘Q’他两个类型不同,num是整形,‘Q’是字符型
类型不同居然也可以比较,跟君一席谈,收获颇丰 huyanmin 发表于 2020-12-8 17:16
num!=‘Q’他两个类型不同,num是整形,‘Q’是字符型
类型不同居然也可以比较,跟君一席谈,收获颇丰
好吧,我错了{:10_243:} 小伤口 发表于 2020-12-8 17:18
好吧,我错了
num!=‘Q’他两个类型不同,num是整形,‘Q’是字符型
类型不同,真的可以比较,我试了能运行,没有错啊你 huyanmin 发表于 2020-12-8 17:21
num!=‘Q’他两个类型不同,num是整形,‘Q’是字符型
类型不同,真的可以比较,我试了能运行,没有错 ...
{:10_256:} huyanmin 发表于 2020-12-8 17:21
num!=‘Q’他两个类型不同,num是整形,‘Q’是字符型
类型不同,真的可以比较,我试了能运行,没有错 ...
你看到第几讲了呀{:10_297:}
课后作业做不来我{:10_266:} 小伤口 发表于 2020-12-8 17:41
你看到第几讲了呀
课后作业做不来我
16讲,你呢
页:
[1]
2