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 ...
随机推荐
- http协议笔记
协议:双方/多方共同遵守的一个规范.类比生活中协议 理解: webservice=http协议+xml Rest =http协议+json 开始,客户端和其他服务器都是没有关系的,比如 ...
- IOS 开发调用打电话,发短信
1.调用 自带mail[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@hzl ...
- Bean不同配置方式的比较
在<Spring3.x 企业应用开发实战>上学习了Bean的三种不同配置方法,下图是我从书中截取的图片,比较了一下这三种配置的异同 ps:发现图片不能完全显示(右侧有一块不显示),解决方法 ...
- USACO 2014 FEB 银组
1.自动打字{Silver题1} [问题描述] 贝西新买了手机,打字不方便,请设计一款应用,帮助她快速发消息. 字典里有W(W<=30000)个小写字母构成的单词,所有单词的字符总数量不超过1, ...
- HTTP,FTP,TCP,UDP及SOCKET
一.TCP/IP协议简析TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层:网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:F ...
- 给Source Insight做个外挂系列之三--构建外挂软件的定制代码框架
上一篇文章介绍了“TabSiPlus”是如何进行代码注入的,本篇将介绍如何构建一个外挂软件最重要的部分,也就是为其扩展功能的定制代码.本文前面提到过,由于windows进程管理的限制,扩展代码必须以动 ...
- Ref 与 Out 的使用方法及区别
C# 中我们有的时候会遇到这样的情况,一个方法需要返回多个参数的时候.怎么办呐? 我们可以给返回的参数加上 Out 或 Ref 类型标识 就可以实现返回多个参数了. 具体他们两个的用法有什么区别 ...
- docker-freebsd-20150625
http://www.docker.org.cn/book/docker/prepare-docker-1.html https://wiki.freebsd.org/Docker pkg insta ...
- bmp图片的有关操作
读取bmp图片 并生成新的bmp图片 #include "stdafx.h"#include <windows.h>#include <cmath>#inc ...
- Sqlserver中 登录用户只能看到自己拥有权限的库
执行之前新建用户时不要赋予任何权限 USE master GO --将所有数据库的查看权限给Public角色,每个登录用户只能查看指定的数据库 --此语句会导致服务器上所有的用户在没有设置数据库权限的 ...