• 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')           #设置默认编码

    做人一定要靠自己
  • 相关阅读:
    分工的好处
    这是真正的随笔,无论形式还是内容。。。
    javascript 检查函数传入的实参个数和期待的形参个数是否相同的方法
    JS中比较难记的函数
    3.0 Basic Usage of Class
    0.0 Visual Studio
    2.0 Exercise of Basic Statements
    5.0 String And RegularExpressions.
    1.0 HelloWorld
    dell mini9 fluxbox 声卡的安装 和 屏幕分辨率和刷新率的调节
  • 原文地址:https://www.cnblogs.com/wushank/p/5068558.html
Copyright © 2020-2023  润新知