《python程序语言设计》2018版第5章第45题利用python循环进行十进制变十六进制,依然是44题的旧问题。倒着打出来的16进制

它似乎也有上一道题同样道问题。就是结果可能是倒着的。我还不能用超纲的办法。似乎上一个问题的难点又传到了下面

在这里插入图片描述

note:
我建立了一个method_a的变量干脆把整数除16的第一次放到循环外。
这样是不是可以解决呢?
我感觉还是在整除和除于的概念中,没有解脱
我只需进行除法并将余数进行保存。
现在是少了一位余数。
这个余数的结果恰恰就是循环开始的条件产生的。
现在我是设置了条件但不能显示结果。而显示了结果就会进入无线循环。
看了一个小时的抖音。
真TM要疯了
我们不按循环来算

这个是我写的草稿,通过这个我理清了我计算的到底什么。

1234 // 16 = 77 1234 % 16 = 2
77 // 16 = 4   77 % 16 =13
4 // 16 = 0    4 % 16 =4
16进制取除于结果 2 13 4 倒过来 4D2  *13=D
*好经过的智商一样的学习。我成功的明白了。我要找的是余数,而不是别的。
好我继续进行无脑的编写。无限循环的代码设计。我发现了一些新的问题。

也是这段代码让我开始了分析

decimal_num = 1234
while decimal_num // 16 != 0:
    if decimal_num % 16 != 0:
        print(decimal_num)

这段代码的结果还是无限无限的循环。但是他们打印的结果很有意思。

竟然打印的为1234
按我之前的理解,此处应该打印的是上一行计算的结果呀!!
decimal_num % 16 应该是2呀 可为什么没有呢而是不断的重复1234呢??
难道我想的不对吗?
我好像有理解了,为此又回到了原点。
在这里插入图片描述

经过持续的头疼。我又开始了尝试

decimal_num = 1234
conversion_num = ""
a = ""
#我是不是可以在这里改造一下
while decimal_num // 16 != 0:
    a = decimal_num % 16
    decimal_num //= 16
    print(a,decimal_num)

这段代码的问题是。a= decimal_num % 16放在decimal_num //= 16上面,结果就是
2
13
在这里插入图片描述

放在decimal_num //= 16下面,就是
13
4
在这里插入图片描述

成功了

经过了一上午看抖音、发呆、和别人聊天。反复把自己拉回来做题。
我终于成功了
我加了一段代码
while decimal_num // 16 != 0:
把她变成了
while decimal_num // 16 != 0 or decimal_num % 16 != 0:
我滴个乖乖成功了
2
13
4
太兴奋了接下来我要找个数字试试
我成功了。祝贺我吧。老亚索

decimal_num = 1234
conversion_num = ""
a = ""
while decimal_num // 16 != 0 or decimal_num % 16 != 0:
    a = decimal_num % 16
    decimal_num //= 16
    if a == 10:
        a = str("A")
    elif a == 11:
        a = str("B")
    elif a == 12:
        a = str("C")
    elif a == 13:
        a = str("D")
    elif a == 14:
        a = str("E")
    elif a == 15:
        a = str("F")

    print(a)

在这里插入图片描述

但结果还是倒这显示的怎么办。

下次再说吧

另外这次还有个不错的地方。我把a复制字符。没有新建变量直接用a接上。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电饭叔

谢谢各位兄弟们的关注,谢谢破费

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值