python学习笔记,类型转换出错的解决方法!

来源:互联网 发布:卫星遥感数据招标公告 编辑:程序博客网 时间:2024/06/05 10:28

A、类型转换出错的解决方法:

Python可以使用int(), float()等类型转换函数实现类型转换的功能,特别是string类型转换。 

现这种情况的原因是被转换的字符串包含不是数字的字符,例如小数点,连字符,或者其他的字符。

例如:

h=float("\n9")
这个转换会出错,主要是因为其包含了不是数字的字符,\n。如果去掉\n这转换成功。

所以以后可以把数值打印出来,看看是否包含了非法字符。

1、python对象

#号(#):注释

换行(\n):换行

反斜杠(\n):继续上一行

分号(;):两个语句连在一行

冒号(:):将代码块的头和体分开

不同的缩进深度代表不同的代码块,def定义的函数块其是没有结束标志的,只要当缩进度一样就还是块里的,

当缩进度等于def的缩进时就代表代码块结束了,如下:

foo_func()函数结束在第二个print

def foo_func():    print 2    print 4foo_func()

foo_func()函数结束在第一个print

def foo_func():    print 2print 4foo_func()

cmp(obj1,obj2)比较obj1和obj2,返回整形i(>0;=0;<0)

repr(obj)或‘obj’返回obj的字符串表示,即转换成字符串

str(obj)返回obj适合可读性好胡字符串表示,即转换成字符串,推荐使用这个

type(obj)返回obj的类型

isinstance(obj,obj_type):判断obj是否为obj_type类型,返回布尔值,例:print isinstance(4,int)  得出false。

注意:Python 没有 char 或 byte 类型来保存单一字符或 8 比特整数。你可以使用长度为 1 的字符串表示字符或 8 比特整数。

int vs short vs long:无区别   float vs double:无区别

幂运算(**)   -3**2=-9   内建函数pow()功能相同

divmod(num1,num2) 返回元组(num1/num2,num1%num2)

hex(num) 将num转化为十六进制,并以字符串返回   仅适用于整型的内建函数:

chr(num)返回num胡ASCII值,范围:0<=num<=255   仅适用于整型的内建函数:

{}为字典,里面的:之前的为键如‘name’、‘port’而后面的为值。不允许一个键对应多个值。 

dict1={'name':'earth','port':80}for key in dict1.keys():    print 'key=%s,value=%s'%(key,dict1[key])
第八章 条件和循环

python不支持switch/case语句,但完全可以用if/else的结构来代替

三元操作符:X if C else Y (如果条件C成立,则结果为X,否则为Y)

t=3 if isinstance(4,bytes) else 8print t
for语句

  b = [1]*10  #print b  for i in range(0,10):      print b[i],  for i in range(0,10):      print b[i]

pass语句:Python中提供pass语句,表示不做任何事,NOP(No Operation)

第九章 文件输入和输出

文件内建函数(open()和file())

open()语法:file_object = open(file_name, access_mode=‘r’,buffering=-1)

open()和file()函数具有完全相同的功能,一般来说,建议使用open()来读文件,在你想说明你是处理文件对象的时候使用file(),例如 if isinstance(f, file)

文件内移动:seek() 0,1,2分别代表文件开头,当前位置,文件末尾

fl=open('f.txt',mode='r')print fl.seek(4)print fl.readline()print fl.readline()

第十二章 模块

import语句的模块顺序:
 Python标准库模块
 Python第三方模块
 应用程序自定义模块

globals()和locals()分别返回调用者全局和局部名称空间的字典。
reload()重新导入一个已经导入的模块: reload(module) 使用reload()时候必须是全部导入,而不是使用from-import。
第十三章 面向对象编程

class MyNewObgectType():    def __init__(self):         print 'kk'    def printFoo(self):        print 'You invoked printFoo()'myFirstObject=MyNewObgectType()myFirstObject.printFoo()
打印为:kk

               You invoked printFoo()

你可能注意到self参数,它在所有的方法声明中都存在。并且必须是第一个参数。这个参数代表实例对象本身,当你调用方法的时候由解释器悄悄地传递给方法,而不需要你自己传递self。
_init_()方法:类似于一个构造器,但不能说是一个构造器(因为python没有使用new),它在创建一个新的对象时被调用,完成一个初始化工作。

类、属性和方法的命名方式:
类:通常大写字母打头。这是标准惯例。有助于识别类。
属性:小写字母打头 + 驼峰,使用名词作为名字。
方法:小写字母打头 + 驼峰,使用谓词作为名字。

Python不支持纯虚函数(如C++)或抽象方法(如Java)。

dir(class_name): 返回类对象的属性的一个名字列表
class_name.__dict__ : 返回的是一个字典,key是属性名,value是数据值

__init__()方法不应该返回任何对象,即,它应该返回None,否则将产生TypeError。

子类可以通过继承覆盖父类的方法。类似,如果在子类中覆盖了了__init__()方法,那么基类的__init__()就不会被自动调用了。
同C++一样,Python支持多继承

第十四章 执行环境

>>>eval_code = compile(‘100+200’, ‘’, ‘eval’)
>>>eval(eval_code)
300

用compile()预编译重复代码有助于改善性能,因为在调用时不必经过字节编译处理。

结束执行:
 sys.exit() and SystemExit

os._exit(status):跟以上两种不同,它不执行任何清理就直接退出Python解释器。且status参数是必须的。




0 0
原创粉丝点击