LZN's Blog CodePlayer

【python】学习笔记·基础篇

2016-02-02
LZN

#20160202#

print() 双引号单引号均可,字符串之间用逗号分隔会自动加入空格

直接写变量名回车可以打印出变量值(类似matlab)

name=input(‘please input your name…’)

if结构

if a>1:
    print a
else:
    print -a

python强制缩进,大小写敏感

#20160204#

rw-file-utf-8

web-utf-8

Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言

ord()函数 字符–》编码

chr()函数 编码–》字符

>>> '\u4e2d\u6587'
'中文'

python默认字符串类型为str,一个字符对应若干字节;传输或者保存为byte类型,以字节为单位。

x=b’xxx’

字节码转回ASCII或utf-8 (decode方法)

>>>b’abc’.decode(‘ascii’)

‘abc’

取字符串长度函数 len()

中文经过utf-8编码后占3个字节,英文仅占1个字节

>>>len(‘我们’.encode(‘utf-8’))

6

格式化输出

>>>‘hi, %s, you have %d’ % (‘xxx’, 100)

‘hi, xxx, you have 100’

%%用于转义

【lists】

>>>classmates=[‘Alice’,’Bob’]

>>>classmates

[‘Alice’,’Bob’]

>>>len(classmates)

2

若取用最后一个元素,用-1做索引;-2,-3类推

追加元素,append方法

>>>classmates.append(‘Adam’)

删除最后一个元素,pop方法

>>>classmates.pop

指定位置

>>>classmates.pop(i)

加入到指定位置,比如,index=1的位置

>>>classmates.insert(1,’Alex’)

替换指定位置元素,直接赋值即可

>>>classmates[1]=’Frank’

list可以放入不同的数据类型,甚至可以list套list,例如

>>>language=[‘VB’,’C++’,[‘php’,’asp’]]

引用’asp’

>>>language[2][1]

有序列别tuple,不可更改,小括号

>>>classmates=(‘Bob’,’Jane’,’Dennis’)

引用依然用中括号。

若定义只有一个元素的tuple,不能用 test=(1)的形式,小括号被解释为数学运算符,加入逗号消除歧义test=(1,)

tuple-1

tuple指的是指向不变

IF

强制缩进代表块语句

if xxx:
    xxxx
elif xxx:
    xxxx
else:
    xxxx

input输入的是str()类型,必须通过int()函数转换才能与数值类型进行比较。

FOR

遍历list

names=['Bob','Steve','John']
for name in names:
    print name

range(n)函数用于生成小于整数n的序列

如0-100的序列求和

num=range(101)
sum=0
for x in num:
    sum=sum+x
print(sum)

WHILE

s=100
sum=0
while s>0:
    sum=sum+s
    s=s-1

DICT和SET

dictionary,key-value对

dic={‘Mike’:100,’Alice’:90}

dic[‘Mike’]

dic[‘Mike’]=10

判断key是否存在,用in

>>>‘Tom’ in dic

False

get方法

>>>dic.get(‘Tom’,-999)

-999

pop方法删除字典元素

dic.pop(‘Mike’)

和list比较,dict有以下几个特点:

  1. 查找和插入的速度极快,不会随着key的增加而增加;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

key是不可变对象,做Hash运算后确定value地址

SET

只保存key,用list初始化

>>>s=set([1,2,3])

>>>s

{1,2,3}

无重复,无序,集合,可以交集并集等

>>>s1=set([1,2,3])

>>>s2=set([2,3,4])

>>>s1 & s2

{2,3}

>>>s1 s2

{1,2,3,4}

注意了解不可变对象的概念,最后一部分

对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

 


Comments

Content