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') #设置默认编码
python代码中碰到的问题及解决的更多相关文章
- Kivy A to Z -- 怎样从python代码中直接訪问Android的Service
在Kivy中,通过pyjnius扩展能够间接调用Java代码,而pyjnius利用的是Java的反射机制.可是在Python对象和Java对象中转来转去总让人感觉到十分别扭.好在android提供了b ...
- pycharm运行Pytest,有没有将Pytest写入Python代码中的区别
初学pytest. 将pytest写进Python代码中 不同运行方式都可正常运行 =======================**********************========= ...
- python代码中判断版本
在python代码中判断python版本: if sys.version_info < (3, 0): lib.make_flows.argtypes = [c_char_p, c_char_p ...
- 如何在创建hive表格的python代码中导入外部文件
业务场景大概是这样的,我要对用户博文进行分词(这个步骤可以看这篇文章如何在hive调用python的时候使用第三方不存在的库-how to use external python library in ...
- 解决python代码中含有中文报错
python中写入中文时报错如下图所示: 依照网上解决方法:在py文件中加入:#encoding=utf-8 然后继续报错如下图所示: 解决方法: 在py文件中加入: import sysreload ...
- python绘图中使用公式时,解决\frac{}{}出来的字体太小的问题
在用matplotlib绘图需要在图片中加入公式时,一般要用 text 或 annotate函数,并结合latex语法 '$...$'. 对于分数,如果直接使用\frac{}{},会造成分子分母上的字 ...
- InstallShield 工程类型MSI 使用过程中碰到的问题及解决方法。
原文 http://www.cnblogs.com/daocaorenbx/p/InstallShield.html 一.安装完 桌面创建IE快捷方式: 1. install script可以直接建 ...
- python学习中遇到的错误及解决办法
1. nodename nor servname provided 原因:Python程序中有段程序调用 socket.gethostbyname(socket.gethostname()) sock ...
- python代码中pass的用法
我们有时会在方法中写一些注释代码,用来提示这个方法是干嘛的之类,看下面代码: class Game_object: def __init__(self, name): self.name = name ...
随机推荐
- MongoDB 3.X 用户权限控制
摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...
- P1041 传染病控制
#include <bits/stdc++.h> using namespace std; const int maxn = 301; std::vector<int> son ...
- Tp验证码:$Verify = new \Think\Verify(); $Verify->entry(n);【参数n,页面有多个验证码时用】
一.验证码参数:(中文字符集和英文字符集在父类里面都可以取到,可修改) //1.生成验证码 $Verify = new \Think\Verify(); $Verify->entry(n);[参 ...
- android内存分析:heap Snapshot的使用
网上有很多讲解关于android studio中memory工具的使用,接下来我来说一段在项目中发生的实例:大家可以根据我的这个方法来分析自己项目中的问题 首先我们要通过手动先触发GC操作,点击mem ...
- http获取图片信息
一.安卓访问网络需要AndroidManifest.xml配置这样一个节点 <manifest> <uses-permission android:name="androi ...
- 无法安装MVC3,错误提示:安装KB2483190(vs10-kb2483190)出错
原文:无法安装MVC3,错误提示:安装KB2483190(vs10-kb2483190)出错 无法安装MVC3,错误提示:安装KB2483190(vs10-kb2483190)出错. 安装指导:&qu ...
- [Python笔记]序列(一)索引、分片
Python包含6种内建序列:列表.元组.字符串.Unicode字符串.buffer对象.xrange对象. 这些序列支持通用的操作: 索引 索引是从0开始计数:当索引值为负数时,表示从最后一个元素( ...
- 日志监控系统中,大批量查询mysql方案
最近开发遇到一个问题:需要查询一个大时间段内的数据,分1000个小段,即为1000个点.X轴是时间,Y轴是该小时间段内统计后数据.注意:数据返回是一个list,其中每个对象返回值都是该小时间段内数据统 ...
- vim 命令加解密文件
加密文件 vim file :X (大写X,是加密 ,小写x是保存) 输入密码: 确认密码: 解除密码: vim file :set key= :wq 命令模式下,输入 /word 后回车,即查找w ...
- python Gunicorn
1. 简介 Gunicorn(Green Unicorn)是给Unix用的WSGI HTTP 服务器,它与不同的web框架是非常兼容的.易安装.轻.速度快. 2. 示例代码1 def app(envi ...