大体上把Python中的数据类型分为如下几类:Number(数字) 包括int,long,float,complex String(字符串) 例如:hello,"hello",hello List(列表) 例如:[1,2,3],[1,2,3,[1,2,3],4] Dictionary(字典) 例如:{1:"nihao",2:"hello"} Tuple(元组) 例如:(1,2,3,abc) Bool(布尔) 包括True、False 由于Python中认为所有的东西都是对象,所以Python不用像其它一些高级...
问题 在平时工作中,遇到了这样的错误:UnicodeDecodeError: ascii codec cant decode byte 想必大家也都碰到过,很常见 。于是决定对python的编码做一个整理和学习。 基础知识 在python2.x中,有两种数据类型,unicode和str,这两个都是basestring的子类>>> a = 中 >>> type(a) <type str> >>> isinstance(a,basestring) True >>> a = u中 >>> type(a) <type unicode> >>> isinstance(a,basestring) True 两者的区别,概括来讲,s...
if语句用来检验一个条件, 如果 条件为真,我们运行一块语句(称为 if-块 ), 否则 我们处理另外一块语句(称为 else-块 )。 else 从句是可选的。 使用if语句:#!/usr/bin/python # Filename: if.py number = 23 guess = int(raw_input(Enter an integer : ))if guess == number:print Congratulations, you guessed it. # New block starts hereprint "(but you do not win any prizes!)" # New block ends here elif guess < n...
Python有四种类型的数字: 1.整型 a = 2 print a 2.长整型 b = 123456789 print b 3.浮点数 c = 3.2E2 print c 4.复数 复数为实数的推广,它使任一多项式都有根。复数当中有个“虚数单位”j,它是-1的一个平方根。任一复数都可表达为x+yj,其中x及y皆为实数,分别称为复数之“实部”和“虚部”。 d = (2+3j) print d 计算示例: 每种程序语言都有数学计算方法,数学符号通用,大家都知道。直接上代码吧:print "I will ...
循环和列表 不管怎样,程序会做一些重复的事情,下面我们就用for循环打印一个列表变量。做这个练习的时候你必须自己弄懂它们的含义和作用。 在使用for循环之前,我们需要一个东西保存循环的值,最好的方法是使用一个列表,列表就是按照顺序保存数据的容器,不是很复杂,就是一种新的语法而已,结构像下面这样:hairs = [brown, blond, red] eyes = [brown, blue, green] weights = [1, 2, 3, 4] list以 [ 号开头,里面的元素以 , 号...
字符串 字符串用''或者""括起来,如果字符串内部有‘或者",需要使用\进行转义>>> print I\m ok. Im ok. 转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\。当然如果不需要转义,可以使用r:>>> print \\\t\\ \ >>> print r\\\t\\ \\\t\如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用…的格式表示多行内容:>>> print line1 ... line2 ... line3 ...
下面我们学习if语句,输入下面的代码,确保能够正确运行。people = 20 cats = 30 dogs = 15 if people < cats: print "Too many cats! The world is doomed!" if people > cats: print "Not many cats! The world is saved!" if people < dogs: print "The world is drooled on!" if people > dogs: print "The world is dry!" dogs += 5 if people >= dogs: print "People are greater than or equal to dogs." if people <= do...
在程序中,变量就是一个名称,让我们更加方便记忆。cars = 100 space_in_a_car = 4.0 drivers = 30 passengers = 90 cars_not_driven = cars - drivers cars_driven = drivers carpool_capacity = cars_driven * space_in_a_car average_passengers_per_car = passengers / cars_driven print "There are", cars, "cars available." print "There are only", drivers, "drivers available." print "There will be", cars_...
有序列表list>>> listTest = [ha,test,yes] >>> listTest [ha, test, yes] len()获取list元素个数。>>> len(listTest) 3 可以用索引来访问每一个元素,0表示第一个,-1还可以表示最后一个,即倒数第一个,依此类推-2表示倒数第二个,超过了也会报越界错误。>>> listTest[0] ha >>> listTest[1] test >>> listTest[3] Traceback (most recent call last):File "", line 1, in IndexError: list index out of range >>> listTest[-1...
列表生成式 即创建列表的方式,最笨的方法就是写循环逐个生成,前面也介绍过可以使用range()函数来生成,不过只能生成线性列表,下面看看更为高级的生成方式:>>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来,十分有用,多写几次,很快就可以熟悉这种语法。 你甚至可以在后面加上if判断:>>> [x * x for x in rang...
shelve类似于一个key-value数据库,可以很方便的用来保存Python的内存对象,其内部使用pickle来序列化数据,简单来说,使用者可以将一个列表、字典、或者用户自定义的类实例保存到shelve中,下次需要用的时候直接取出来,就是一个Python内存对象,不需要像传统数据库一样,先取出数据,然后用这些数据重新构造一遍所需要的对象。下面是简单示例:import shelvedef test_shelve():# open 返回一个Shelf类的实例## 参数flag的取值范围...
Python中可以使用 pickle 模块将对象转化为文件保存在磁盘上,在需要的时候再读取并还原。具体用法如下: pickle是Python库中常用的序列化工具,可以将内存对象以文本或二进制格式导出为字符串,或者写入文档。后续可以从字符或文档中还原为内存对象。新版本的Python中用c重新实现了一遍,叫cPickle,性能更高。 下面的代码演示了pickle库的常用接口用法,非常简单:import cPickle as pickle# dumps and loads # 将内存对象dump为...
用错误码来表示是否出错十分不便,因为函数本身应该返回的正常结果和错误码混在一起,造成调用者必须用大量的代码来判断是否出错:def foo():r = some_function()if r==(-1):return (-1)# do somethingreturn rdef bar():r = foo()if r==(-1):print Errorelse:pass但是Go就是这么干的,哈哈! python 中还是用try … except….finally这种方式来处理的。try:print try...r = 10 / 0print result:, r except ZeroDivisionError, e:p...
if语句 >>通用格式 if语句一般形式如下:if : elif : else: 另外需要注意的是,Python中是没有switch/case语句的while循环 while语句是Python语言中最通用的迭代结构,简而言之,只要顶端测试一直计算到真值,就会重复执行一个语句块。 >>一般格式while : else: >>break,continue,pass和循环else break 跳出最近所在的循环(跳过整个循环语句)。 continue 跳到最近所在循环的开头处(来到循环的首行)。 pass 什么事也不做,只是空占位...
迭代器:初探 上一章曾经提到过,其实for循环是可用于任何可迭代的对象上的。实际上,对Python中所有会从左至右扫描对象的迭代工具而言都是如此,这些迭代工具包括了for循环、列表解析、in成员关系测试以及map内置函数等。 “可迭代对象”的概念在Python中是相当新颖的,基本这就是序列观念的通用化:如果对象时实际保存的序列,或者可以再迭代工具环境中一次产生一个结果的对象,那就看做是可迭代的。 >>文件迭代器 作为内置数据类型...