《python语言程序设计》第4章第34题 2020-6-12自学路上又一个小峭壁。

             今天这第2次做这个道题,发现了原来写题的一个错误点。但也是今天到现在1个小时了还没有分析明白的核心。怎么去判定被输入的数不是16位,

== 比如例题中你书G系统提示你Invalid input  ==

下面这三行是指考虑输入一个十六进制字符然后显示十进制整数。

number = input("Enter a hex character: ")
numberHex = int(number, base=16)
print(f"The decimal value is {number}")

这个今天看了个视频一下子就解出来了。第一次做的时候光这步我就苦苦合计了2天。(不是全天。但是这个白天都已经崩溃了)

     然后接下来。不是16进制的字符输入就出invalid input这个点,就开始新崩溃了。

首先我用的是pycharm这个软件。当我输入g或者G的时候

系统会自动提示下列语句。

Traceback (most recent call last):

  File "F:/LearnPython/untitled/04-00 test.py", line 604, in <module>

    if int(number, base=16) == True:

ValueError: invalid literal for int() with base 16: 'g'

** 这里说明一下。我是40多道题写在一个程序里所以行数比较多。大家别误会

我现在就卡在这里了。我怎么判断呢。或者怎么告诉系统g或者G不是16进制的。然后这个系统提示由我这边执行。不用你这边给我做。

  1. 怎么判断。其实这一步解决了,系统强在我前面判断的问题也解决了。

我程序中number 这个变量变10进制整数是通过 int(number, base=16)这个语句完成的。我曾经想直接把这个语句为真变成if的条件。反之就说无效。但想法和现实很骨感。不论输入0到10,和A到F.系统,系统竟然提示我invalid input。看来这个路不通。

  1. 哪我直接将numberHex >=15作为if条件呢?条件是成立了,但是还是G或者g的时候pycharm系统提示我“无效的int文字”。我将nubmerHex换成了number 。结果还是出错,这次换成了TypeError: '<=' not supported between instances of 'str' and 'int'。换句话说numberHex这个条件还是对的。如果引入了number这个由用户输入的变量。那么问题就不是无效的int了。而是变成了字符和整数没法比较的问题了。
  2. 方法还是不行。另外我发现。其实可以不用base.直接写int(number, 16)也可以呀

    

第4天早上训练,心情不那么闹心了。但是看这个题。我现在只能煎熬。自学路漫长。

我想转型。我想提高直接的收入。我想改变自己的生活。没别的继续干下去吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

电饭叔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值