鱼C论坛

 找回密码
 立即注册
查看: 1510|回复: 13

进制变换的问题

[复制链接]
发表于 2018-1-21 17:53:38 | 显示全部楼层 |阅读模式

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

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

x
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
各位大侠,这个Q并没有定义啊,为什么这里没有报错。另外q=true,是不是这个q一直为真的意思。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-21 18:06:55 | 显示全部楼层
你指哪个??
q = True 一开始就赋值为真了。
'Q'  是字符。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-21 18:21:12 | 显示全部楼层
1.True是bool类型,其实代表的是不是0的值,一般用1表示真。你可以试试True + True ,会输出2。在判断语句循环语句中,非0值都表示True.

2.'Q'就是一个常量代表字母Q,不是变量不用赋值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-21 19:26:38 | 显示全部楼层
1.  if num != 'Q':   Q定义了一个True
2.  if 后面跟Bool类型  True就是布尔类型 所以不会报错的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-21 19:41:34 | 显示全部楼层
Q是常量,ASC码里有,
觉得没必要定义q
  1. while True:
  2.     num = input('请输入一个整数(输入Q结束程序):')
  3.     if num != 'Q':
  4.         num = int(num)
  5.         print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
  6.         print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
  7.         print('十进制 -> 二进制 : %d -> ' % num, bin(num))
  8.     else:
  9.         break
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-21 20:58:31 | 显示全部楼层
你这样写不好理解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 18:07:10 | 显示全部楼层
塔利班 发表于 2018-1-21 19:41
Q是常量,ASC码里有,
觉得没必要定义q

那你能告诉我这里为什么要用 if num != 'Q':
那是不是可以用其他字母代替,比如 if num != ‘A’':我就是这里没搞懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 18:08:17 | 显示全部楼层
南城顾她 发表于 2018-1-21 19:26
1.  if num != 'Q':   Q定义了一个True
2.  if 后面跟Bool类型  True就是布尔类型 所以不会报错的

但是定义为true的是q不是Q吧,pyhton中大小写有区别的的吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 18:09:58 | 显示全部楼层
orino 发表于 2018-1-21 18:21
1.True是bool类型,其实代表的是不是0的值,一般用1表示真。你可以试试True + True ,会输出2。在判断语句循 ...

我就是想问这个问题,这个num是用户随机给的一个整数,是int,而‘’Q‘’是个字符串,是str,这两个能用等号不等号联系在一起吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 18:42:49 | 显示全部楼层
fan1993423 发表于 2018-1-22 18:09
我就是想问这个问题,这个num是用户随机给的一个整数,是int,而‘’Q‘’是个字符串,是str,这两个能用 ...

input的输入结果是str不是int, 要当作int来使用,需要int(input())
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 19:09:28 | 显示全部楼层
fan1993423 发表于 2018-1-22 18:07
那你能告诉我这里为什么要用 if num != 'Q':
那是不是可以用其他字母代替,比如 if num != ‘A’':我就 ...

这些都是随意的,编代码的原意是QUIT退出的英文首字母,
也可以用英文全拼甚至拼音都可以,
不过一般建议用英文,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 19:16:14 | 显示全部楼层
fan1993423 发表于 2018-1-22 18:08
但是定义为true的是q不是Q吧,pyhton中大小写有区别的的吧

'Q'是一个字符串不影响的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 19:17:01 | 显示全部楼层
fan1993423 发表于 2018-1-22 18:08
但是定义为true的是q不是Q吧,pyhton中大小写有区别的的吧

当q = False时,他就自然跳出程序了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 19:32:51 | 显示全部楼层
import random

q = True
while  q:
    c = input('请输入你想要转换的数字:(输入Q退出程序):')
   
    if c != 'Q':
        c = int(c)
        print('您输入的数字十进制%d->八进制0o%o'%(c,c))
        print('您输入的数字十进制-%d>十六进制0x%x'%(c,c))
        print('您输入的数字十进制%d->二进制'%c,bin(c))
    else:
        q = False

看下这个就是正确的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-27 09:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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