|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
问题:请问参考答案中,令q=True while循环中else的条件为q=False的意义是什么? while True为什么不可以?
作业要求如下:
编写一个进制转换程序,程序演示如下(提示,十进制转换二进制可以用bin()这个BIF)
参考答案如下:
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
其实改成while True更好,少了一个变量Q,少了一行代码,好多标答就是这个样子,另外楼上的改写,语法错了,else应该是elif,然后既然前面已经if num=='Q',那么else就是除了Q以外的其他字符了,再来个num!='Q'完全没有必要:
- while True:
- 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:
- break
复制代码
还可以再修改一下,增加容错的功能:
- while True:
- num = input('请输入一个整数(输入Q结束程序):')
- if num.isdigit(): #输入为数字才进行转换
- num = int(num)
- print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
- print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
- print('十进制 -> 二进制 : %d -> ' % num, bin(num))
- elif num.upper()== 'Q' : #输入大小写的q都可以退出,其他的会忽略继续要求输入
- break
复制代码
|
|