1.首先你这个是有逻辑漏洞的,。当你输入一个整数,程序没有运行到break,也可以输出‘break不会直接跳出循环结构’。
注释如下:while num != 'Q':
if num.isdigit(): #输入一个整数,试试看
num = int(num)
print('十进制 -> 十六进制:%d -> %#x'%(num,num))
print('十进制 -> 十六进制:%d -> %#o'%(num,num))
print('十进制 -> 十六进制:%d -> '%num,bin(num))
num = input("请输入一个整数(输入Q结束程序):")#现在输入下一个,输入Q
#num = 'Q'
#print'break不会直接跳出循环结构',回到while条件判定,直接输出'程序结束'
else:
if num == 'Q': #这里永远不执行,因为while大条件是不等于Q,在这种情况下是不会出现num == ‘Q’
break
else:
num = input("输入不合法,请输入一个整数(输入Q结束程序):")
print('break不会直接跳出循环结构')
else:
print("程序结束")
2.如果要改的,我是这样的num = input("请输入一个整数(输入Q结束程序):")
while num != 'Q':
if num.isdigit():
num = int(num)
print('十进制 -> 十六进制:%d -> %#x'%(num,num))
print('十进制 -> 十六进制:%d -> %#o'%(num,num))
print('十进制 -> 十六进制:%d -> '%num,bin(num))
num = input("请输入一个整数(输入Q结束程序):")
if num == 'Q':
print('程序结束')
break
else:
num = input("输入不合法,请输入一个整数(输入Q结束程序):")
print('break不会直接跳出循环结构')
else:
print("程序结束")
如果第二次输入‘Q’的话,因为break跳出了循环的关系(while else 中的else只有在while全部正常执行完毕才会执行),所以最后的else语句不会执行,所以break之前加入‘程序结束’会好一点 |