Python1

闲来无事,xiaoxiao Python,跟上时代的步伐

文件首行加入了 

 #!-*- coding:utf-8 -*- 

 或者  

 #coding=utf-8

如果要在python2.x的文件中使用中文,则必须在第一行或者第二行写上注释,否则python2.x会默认使用ASCII编码。千万不能在第二种写法的等号两边加空格

 

print "你还好吗?";

 

在windows cmd命令窗口下执行python test.py,输出还是乱码。 这已经不是python的问题了,是windows cmd命令窗口的字符编码问题。

#coding=utf-8

print u"你还好吗?";

 

以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数

 

文件类型

1 Python的文件类型分为3种,即源代码、字节代码和优化代码。这些都可以直接运行,不需要进行编译或连接。

2 源代码以.py为扩展名,由python来负责解释;

3 源文件经过编译后生成扩展名为.pyc的文件,即编译过的字节文件。这种文件不能使用文本编辑器修改。pyc文件是和平台无关的,可以在大部分操作系统上运行。如下语句可以用来产生pyc文件:

import py_compile py_compile.compile(‘hello.py’)

4 经过优化的源文件会以.pyo为后缀,即优化代码。它也不能直接用文本编辑器修改,如下命令可用来生成pyo文件:

python -O -m py_complie hello.py

 

数据类型

1 python的数字类型分为整型、长整型、浮点型、布尔型、复数类型。

2 python没有字符类型

3 python内部没有普通类型,任何类型都是对象。

4 如果需要查看变量的类型,可以使用type类,该类可以返回变量的类型或创建一个新的类型。

5 python有3种表示字符串类型的方式,即单引号、双引号、三引号。单引号和双引号的作用是相同的。python程序员更喜欢用单引号,C/Java程序员则习惯使用双引号表示字符串。三引号中可以输入单引号、双引号或换行等字符。

运算符和表达式

1 python不支持自增运算符和自减运算符。例如i++/i-是错误的,但i+=1是可以的。

2 1/2在python2.5之前会等于0.5,在python2.5之后会等于0。

3 不等于为!=或<>

4 等于用==表示

5 逻辑表达式中and表示逻辑与,or表示逻辑或,not表示逻辑非

控制语句

条件语句:

if (表达式) : 语句1 elif (表达式) : 语句2 … elif (表达式) : 语句n else : 语句m

python本身没有switch语句

循环语句:

while(表达式) : … else : …

循环语句:

for 变量 in 集合 : … else : …

python不支持类似c的for(i=0;i<5;i++)这样的循环语句,但可以借助range模拟:

for x in range(0,5,2): print x

 

 

列表

list = ['abc', 123, 4.12, 'dsd']

tinylist = [123, 'john']

print list[0:3] * 2

print list[0:3] + tinylist # 打印组合的元组

 

结果

['abc', 123, 4.12, 'abc', 123, 4.12]

['abc', 123, 4.12, 123, 'john']

元组

元组与列表是非常类似的,区别在于元组的元素值不能修改元组是放在括号中,列表是放于方括号中

内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表

tuple = ('runoob', 786, 2.23, 'john', 70.2)

tinytuple = (123, 'john')

print tuple[1]

print tuple[3:]*2

print tuple + tinytuple

 

 

结果

786

('john', 70.2, 'john', 70.2)

('runoob', 786, 2.23, 'john', 70.2, 123, 'john')

 

字典

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

dict = {'name': 'john','code':6734, 'dept': 'sales', 2 : 1213}

print dict[2]

print dict

print dict.keys()

print dict.values()

 

结果

1213

{'dept': 'sales', 2: 1213, 'code': 6734, 'name': 'john'}

['dept', 2, 'code', 'name']

['sales', 1213, 6734, 'john']

 

# 类型转换

int(3.6)

int('12', 16) # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制

int('0xa', 16)

long('123')

float(123)

 

结果

3

18

10

123L

123.0

 

complex() 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。。

>>>complex(1, 2) (1 + 2j) >>> complex(1) # 数字 (1 + 0j) 
>>> complex("1") # 当做字符串处理 (1 + 0j) 
# 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错 
>>> complex("1+2j") (1 + 2j)



>>>s = 'RUNOOB' 
>>> str(s) #str() 函数将对象转化为适于人阅读的形式。 'RUNOOB'

>>> repr(s) #repr() 函数将对象转化为供解释器读取的形式。 "'RUNOOB'"

>>> dict = {'runoob': 'runoob.com', 'google': 'google.com'};
>>> str(dict) "{'google': 'google.com', 'runoob': 'runoob.com'}"

>>> repr(dict) "{'google': 'google.com', 'runoob': 'runoob.com'}"

eval() 函数用来执行一个字符串表达式,并返回表达式的值。

>>>x = 7 
>>> eval( '3 * x' ) 21 
>>> eval('pow(2,-2)') #次方 0.25 
>>> eval('2 + 2')

结果:4

 

tuple() 函数将列表转换为元组。

>>>tuple([1,2,3,4]) (1, 2, 3, 4) 
>>> tuple({1:2,3:4}) #针对字典 会返回字典的key组成的tuple (1, 3)

 

list() 方法用于将元组转换为列表。

aTuple = (123, 'xyz', 'zara', 'abc'); 
aList = list(aTuple) 
print "列表元素 : ", aList

 

set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。

>>>x = set('runoob') 
>>> y = set('google') 
>>> x, y 
(set(['b', 'r', 'u', 'o', 'n']), set(['e', 'o', 'g', 'l'])) # 重复的被删除 
>>> x & y # 交集 
set(['o']) 
>>> x | y # 并集 
set(['b', 'e', 'g', 'l', 'o', 'n', 'r', 'u']) 
>>> x - y # 差集 
set(['r', 'b', 'u', 'n'])

 

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。

>>>a = [1,2,3] 
>>> b = [4,5,6] 
>>> c = [4,5,6,7,8] 
>>> zipped = zip(a,b) # 打包为元组的列表 
[(1, 4), (2, 5), (3, 6)] 
>>> zip(a,c) # 元素个数与最短的列表一致 
[(1, 4), (2, 5), (3, 6)] 
>>> zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式 
[(1, 2, 3), (4, 5, 6)]

 

dict() 函数用于创建一个字典。

>>> dict(a='1',b='ad',c=123) # 传入关键字 
{'a': '1', 'c': 123, 'b': 'ad'} 
>>> dict(zip(['one', 'two', 'three'], [1, 2, 3])) # 映射函数方式来构造字典 
{'three': 3, 'two': 2, 'one': 1} 
>>> dict([('one', 1), ('two', 2), ('three', 3)]) # 可迭代对象方式来构造字典 
{'three': 3, 'two': 2, 'one': 1}

 

 

frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

>>>a = frozenset(range(10)) # 生成一个新的不可变集合 
>>> a frozenset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 
>>> b = frozenset('runoob') 
>>> b frozenset(['b', 'r', 'u', 'o', 'n']) # 创建不可变集合

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值