鱼C论坛

 找回密码
 立即注册
查看: 1445|回复: 4

[已解决]请大神帮助改进程序(进制转换 )

[复制链接]
发表于 2017-12-15 09:49:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
q = True
while q:
    number = input('请输入一个整数(输入Q退出程序):')  #输入Q并不能退出程序待改进
    if number != 'Q':        
            while not number.isdigit():
                number = input('您的输入有误!只能输入整数!\n请重新输入:')
            number = int(number)           
            print('十进制 --> 十六进制 :%d -> 0x%x' %(number,number))
            print('十进制 -->   八进制 :%d -> 0o%o' %(number,number))
            print('十进制 -->   二进制 :%d ->'%number,bin(number))
    else:
        q = False


注:帮助实现输入Q退出程序,小弟刚接触python,请各位大神多多指教,不吝感激!
最佳答案
2017-12-15 12:50:51
本帖最后由 missmile 于 2017-12-15 12:56 编辑
  1. while True:
  2.     number = input('请输入一个整数(输入Q退出程序):')
  3.     if number in ['q','Q']:
  4.         break
  5.     elif not number.isdigit():
  6.         print('您的输入有误!只能输入整数(输入Q退出程序)!请重新输入')
  7.         continue
  8.     else :
  9.             number = int(number)      
  10.             print('十进制 --> 十六进制 :%d -> 0x%x' %(number,number))
  11.             print('十进制 -->   八进制 :%d -> 0o%o' %(number,number))
  12.             print('十进制 -->   二进制 :%d ->'%number,bin(number))

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-15 10:07:04 | 显示全部楼层
  1. while True:
  2.     number = input('请输入一个整数(输入Q退出程序):')  #输入Q并不能退出程序待改进
  3.     if number in ['q','Q']:
  4.         break
  5.     while not number.isdigit():
  6.         number = input('您的输入有误!只能输入整数!\n请重新输入:')
  7.     number = int(number)           
  8.     print('十进制 --> 十六进制 :%d -> 0x%x' %(number,number))
  9.     print('十进制 -->   八进制 :%d -> 0o%o' %(number,number))
  10.     print('十进制 -->   二进制 :%d ->'%number,bin(number))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-15 11:43:44 | 显示全部楼层
本帖最后由 yycsec 于 2017-12-15 11:49 编辑


感谢您的解答,能解决Q退出的问题,可能我描述的不是太准确,发现其中判断用户输入是不是数字的时候有一个死循环。
当用户第一次输入字母时
Windows下执行如下:
请输入一个整数(输入Q退出程序):T
您的输入有误!只能输入整数!
请重新输入:R
您的输入有误!只能输入整数!
请重新输入:Q
您的输入有误!只能输入整数!
请重新输入:Q

稍微改了一下判断的语句,直接判断用户输入是否为数字,如果是数字执行进制转换!
while True:
    number = input('请输入一个整数(输入Q退出程序):')  
    if number in ['q','Q']:
        break
    if  number.isdigit():
        number = int(number)           
        print('十进制 --> 十六进制 :%d -> 0x%x' %(number,number))
        print('十进制 -->   八进制 :%d -> 0o%o' %(number,number))
        print('十进制 -->   二进制 :%d ->'%number,bin(number))
最后非常感谢您的回答!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-15 11:58:53 | 显示全部楼层
yycsec 发表于 2017-12-15 11:43
感谢您的解答,能解决Q退出的问题,可能我描述的不是太准确,发现其中判断用户输入是不是数字的时候有 ...

很好,能举一反三,祝你学习愉快
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-15 12:50:51 | 显示全部楼层    本楼为最佳答案   
本帖最后由 missmile 于 2017-12-15 12:56 编辑
  1. while True:
  2.     number = input('请输入一个整数(输入Q退出程序):')
  3.     if number in ['q','Q']:
  4.         break
  5.     elif not number.isdigit():
  6.         print('您的输入有误!只能输入整数(输入Q退出程序)!请重新输入')
  7.         continue
  8.     else :
  9.             number = int(number)      
  10.             print('十进制 --> 十六进制 :%d -> 0x%x' %(number,number))
  11.             print('十进制 -->   八进制 :%d -> 0o%o' %(number,number))
  12.             print('十进制 -->   二进制 :%d ->'%number,bin(number))

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-4 19:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表