• python代码中碰到的问题及解决 凯


    一、针对raw_input输入的字符进行类型判断及转换:

              raw_input输入默认为字符,如果输入的是数字字符,想自动转换,即:输入为a,不做操作,如果输入为3,即转化为整数。

              可利用try..except..的方法,让程序将raw_input()输入的值转换为int,如果输入的是‘23’则直接转换为数字23,如果输入的是‘xx’则会try失败然后运行except的部分。

    #!/usr/bin/python27
    #_*_ coding:utf-8 _*_
    
    def myint(s):

         if str.isdigit(s):                ###对输入是否是数字进行判断
             s = int(s)                    ###如果输出的是个数字,则转化为整数类型
         else:
             s = s.decode('utf-8')         ###如果是字符串或汉字,则转化为unicode类型(主要是针对汉字转化,汉字默认是str)
         return s


    try: eval(s) ###eval将字符串str当成有效的表达式来求值并返回计算结果 except NameError: ###名称错误 return s except SyntaxError: ###语法错误 return s else: return eval(s) a = raw_input('please input:') print(myint(a))


     特别说明:

        1、加上NameError,可以防止输入字符串出现的报错:


    please input:aaa
    Traceback (most recent call last):
    File "test.py", line 16, in <module>
    print(myint(a))
    File "test.py", line 6, in myint
    eval(s) ###eval将字符串str当成有效的表达式来求值并返回计算结果
    File "<string>", line 1, in <module>
    NameError: name 'aaa' is not defined


        2、加上SyntaxError,可以防止输入中文出现的报错:


    please input:中国
    Traceback (most recent call last):
    File "test.py", line 16, in <module>
    print(myint(a))
    File "test.py", line 6, in myint
    eval(s) ###eval将字符串str当成有效的表达式来求值并返回计算结果
    File "<string>", line 1
    中国
    ^
    SyntaxError: invalid syntax


         

    二、针对存放在字典或列表中的中文进行比对判断时,出现如下报错

    ascii codec can't decode byte 0xe8 in position 0:ordinal not in range(128)

    1.原因分析:字符问题。。

    2.解决办法:在出现问题的脚本加上如下三行即可:

    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')           #设置默认编码

    做人一定要靠自己
  • 相关阅读:
    【流处理】Kafka Stream-Spark Streaming-Storm流式计算框架比较选型
    【大数据】大数据处理-Lambda架构-Kappa架构
    【ElasticSearch】ES5新特性-keyword-text类型-查询区别
    【大数据】大数据-实时统计分析-方案选型
    【Spark】SparkStreaming-流处理-规则动态更新-解决方案
    【ElasticSearch】ElasticSearch-SQL插件
    【ElasticSearch】ElasticSearch-索引优化-自定义索引
    【算法】如何设计--高效的大数据匹配算法
    【Java】Springboot-Quartz-分布式任务调度
    网页提示[Not allowed to load local resource: file://XXXX]错误
  • 原文地址:https://www.cnblogs.com/wushank/p/5068558.html
Copyright © 2020-2023  润新知