牛逼牛逼 发表于 2020-4-18 10:06:09

第15讲的动动手的一个小问题

print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))

print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))

print('十进制 -> 二进制 : %d -> ' % num, bin(num))


有人给我解释一下这个代码吗???


大致懂,但是还有很多小问题不懂

老八秘制 发表于 2020-4-18 10:09:11

格式化字符串这节课确实比较难……那个列表不用背下来,用的时候拿出来看就行,视频有不理解的地方可以多看几次

牛逼牛逼 发表于 2020-4-18 10:13:04

老八秘制 发表于 2020-4-18 10:09
格式化字符串这节课确实比较难……那个列表不用背下来,用的时候拿出来看就行,视频有不理解的地方可以多看 ...

大佬又是你,我想问一下为什么十进制转十六进制后面为什么是(num,num),八进制也是

老八秘制 发表于 2020-4-18 10:19:37

牛逼牛逼 发表于 2020-4-18 10:13
大佬又是你,我想问一下为什么十进制转十六进制后面为什么是(num,num),八进制也是

https://blog.csdn.net/qq_41556318/article/details/84072944

jkluoling1992 发表于 2020-4-18 10:19:40

牛逼牛逼 发表于 2020-4-18 10:13
大佬又是你,我想问一下为什么十进制转十六进制后面为什么是(num,num),八进制也是

因为第一个num 是十进制啊,第二num代表十六进制,,肯定要两个参数来表示啊

牛逼牛逼 发表于 2020-4-18 10:22:08

老八秘制 发表于 2020-4-18 10:19
https://blog.csdn.net/qq_41556318/article/details/84072944

这个网站有点看不懂

牛逼牛逼 发表于 2020-4-18 10:23:04

jkluoling1992 发表于 2020-4-18 10:19
因为第一个num 是十进制啊,第二num代表十六进制,,肯定要两个参数来表示啊

不太懂啊大佬

老八秘制 发表于 2020-4-18 10:24:32

牛逼牛逼 发表于 2020-4-18 10:22
这个网站有点看不懂

最底下有个知识总结,多敲代码自然就会了,看一遍不懂是很正常的

jkluoling1992 发表于 2020-4-18 10:31:12

牛逼牛逼 发表于 2020-4-18 10:23
不太懂啊大佬

你把十进制转成十六进制,你要输入一个数字,然后再输出一个数字,,你用一个num怎么表示前后变化呢,所以用两个num 来显示

牛逼牛逼 发表于 2020-4-18 10:36:58

jkluoling1992 发表于 2020-4-18 10:31
你把十进制转成十六进制,你要输入一个数字,然后再输出一个数字,,你用一个num怎么表示前后变化呢,所 ...

我输入一个num,它为什么会报错

牛逼牛逼 发表于 2020-4-18 10:38:14

jkluoling1992 发表于 2020-4-18 10:31
你把十进制转成十六进制,你要输入一个数字,然后再输出一个数字,,你用一个num怎么表示前后变化呢,所 ...

还是不太懂

牛逼牛逼 发表于 2020-4-18 10:38:46

老八秘制 发表于 2020-4-18 10:24
最底下有个知识总结,多敲代码自然就会了,看一遍不懂是很正常的

有点难搞{:5_107:}

Hoiste 发表于 2020-4-18 12:07:44

本帖最后由 Hoiste 于 2020-4-18 12:10 编辑

牛逼牛逼 发表于 2020-4-18 10:36
我输入一个num,它为什么会报错

这两个num是括在一起的%(num, num),与前面%d,%o对应位置配对,第一个%d代表后面第一个%num为十进制数,所以会把第一个num的数字转化为十进制数替换到%d的位置,第二个%o表示把%后第二个num转化为八进制替换到%o的位置。正因为前面字符串中有两个%号,所以在字符串后面也要跟上两个%num代表前面%d和%o的对象。

格式化字符串只是看起来难而已,只要知道%后面跟的字符代表什么含义并与字符串之后的%一一对应就可以完成写入不同类型数据到字符串里的功能了,基本上只要熟练了就自然能够应用自如的。

qiuyouzhi 发表于 2020-4-18 12:18:54

牛逼牛逼 发表于 2020-4-18 10:38
有点难搞

你看前面的格式化操作符,有两个
所以后面也要对应两个
但由于Python语法,要用括号打包起来。
这个东西你自己多练就好了,实在掌握不好就
用f-string。
语法:
>>> a = 5
>>> print(f"a = {a}")
a = 5
在字符串前面加上f,然后把要打印的变量放进大括号里就好

heidern0612 发表于 2020-4-18 12:29:34

没啥用,不用记。

写程序一辈子你能转换几次八进制和十六进制?

真有这需求了,再回来现查都赶趟。

永恒的蓝色梦想 发表于 2020-4-18 12:34:57

这个不会就不会了,写一辈子程序都不见得用上。
现在谁还用 str.__mod__?都用 f-string 和 str.format 去了。

zltzlt 发表于 2020-4-18 13:02:06

q = True    # 定义一个变量 q 标志着是否继续循环,True 表示继续循环,否则退出循环
while q:    # 当 q 为真时循环
    # 询问用户输入
    num = input('请输入一个整数(输入Q结束程序):')
    # 如果用户输入的不是 Q
    if num != 'Q':
      # 将用户输入的数字转化为整数
      num = int(num)
      # 字符串格式化输出 num 以及 num 转化为十六进制的结果
      # 这里第一个 num 填充字符串的 %d,第二个 num 填充字符串的 %x
      print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num))
      # 字符串格式化输出 num 以及 num 转化为八进制的结果
      # 这里第一个 num 填充字符串的 %d,第二个 num 填充字符串的 %o
      print('十进制 -> 八进制 : %d -> 0o%o' % (num, num))
      # 注意,下面一句代码是打印两个字符串,即 '十进制 -> 二进制 : %d -> ' % num 和 bin(num)
      # 第一个打印的字符串中 num 填充原字符串中的 %d
      print('十进制 -> 二进制 : %d -> ' % num, bin(num))
    else:
      # 如果用户输入的是 'Q' 则将 q 设置为 False,表示需要退出循环
      q = False

牛逼牛逼 发表于 2020-4-18 13:32:04

永恒的蓝色梦想 发表于 2020-4-18 12:34
这个不会就不会了,写一辈子程序都不见得用上。
现在谁还用 str.__mod__?都用 f-string 和 str.format 去 ...

好的大佬

牛逼牛逼 发表于 2020-4-18 13:32:40

heidern0612 发表于 2020-4-18 12:29
没啥用,不用记。

写程序一辈子你能转换几次八进制和十六进制?


{:5_98:}是的大佬

牛逼牛逼 发表于 2020-4-18 13:34:53

永恒的蓝色梦想 发表于 2020-4-18 12:34
这个不会就不会了,写一辈子程序都不见得用上。
现在谁还用 str.__mod__?都用 f-string 和 str.format 去 ...

大佬你好,问你一个问题print('十进制 -> 二进制 : %d -> '% (temp , bin(temp))),为什么我temp前面加个括号就报错
页: [1] 2
查看完整版本: 第15讲的动动手的一个小问题