|
发表于 2019-3-30 15:50:05
|
显示全部楼层
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之前加入‘程序结束’会好一点 |
|