• 2020612自学python路上的又一个小峭壁


     

    今天这第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。看来这个路不通。

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

    3、  方法还是不行。另外我发现。其实可以不用base.直接写int(number, 16)也可以呀

        

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

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

  • 相关阅读:
    hbase存储优化
    cloudera manager下phoenix的安装
    Cloudera manager的服务安装以及spark升级到2.2
    redis学习总结
    kylin基础概念和基础性能优化
    mycat使用注意事项
    kylin2.0环境搭建
    ETL实践--kettle转到hive
    集成 SOLR 到 TOMCAT 中(傻瓜教程)
    局域网ip扫描
  • 原文地址:https://www.cnblogs.com/yogaMan/p/13098002.html
Copyright © 2020-2023  润新知