Python中raw字符串与多行字符串
如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r ,表示这是一个 raw 字符
串,里面的字符就不需要转义了。
但是r'...'表示法不能表示多行字符串,也不能表示包含'和 "的字符串(为什么?)
如果要表示多行字符串,可以用'''...'''表示
Python中Unicode字符串
Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:
print u'中文'
中文
注意: 不加 u ,中文就不能正常显示。
Unicode字符串除了多了一个 u 之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效:
转义:
u'中文\n日文\n韩文'
多行:
u'''第一行
第二行'''
raw+多行:
ur'''Python的Unicode字符串支持"中文",
"日文",
"韩文"等多种语言'''
# -*- coding: utf-8 -*- 标记python文件统一utf-8编码
Python ————list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
比如,列出班里所有同学的名字,就可以用一个list表示:
['Michael', 'Bob', 'Tracy']
list是数学意义上的有序集合,也就是说,list中的元素是按照顺序排列的。
构造list非常简单,按照上面的代码,直接用 [ ] 把list的所有元素都括起来,就是一个list对象。通常,我们会把list赋值给一个变量,这样,就可以通过变量来
引用list:
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates # 打印classmates变量的内容
['Michael', 'Bob', 'Tracy']
由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据:
>>> L = ['Michael', 100, True]
一个元素也没有的list,就是空list:
>>> empty_list = []
当索引为负数时,表示逆序进行输出。例如:L[-1]表示最后一个
append("") 添加新数据至最后一个
insert(0,"")添加新数据到指定位置
pop(0)删除指定位置的数据 pop()删除最后一个 且返回值为具体的对象
替换数据:可以通过先删除,再添加的方法进行,或者通过直接修改具体位置的值即可。
Python————Tuple
tuple是另一种有序的列表,中文翻译为“ 元组 ”。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
创建tuple和创建list唯一不同之处是用( )替代了[ ]。
创建不含数据的tuple时,直接用()即可
由于()本身存在歧义,既可以用于修改运算优先级,也可以用于进行tuple的定义,所以在定义tuple时,可以进行特殊的如(1,)来定义。
可以通过在tuple中定义list从而实现部分可变的效果。
Python————if
计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。
比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现:
age = 20
if age >= 18:
print 'your age is', age
print 'adult'
print 'END'
注意: Python代码的缩进规则。具有相同缩进的代码被视为代码块,上面的3,4行 print 语句就构成一个代码块(但不包括第5行的print)。如果 if 语句判断为
True,就会执行这个代码块。
缩进请严格按照Python的习惯写法:4个空格,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。
注意: if 语句后接表达式,然后用:表示代码块开始。
如果你在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车。
if-else:
利用 if ... else ... 语句,我们可以根据条件表达式的值为 True 或者 False ,分别执行 if 代码块或者 else 代码块。
注意: else 后面有个“:”。
if-elif-else:
age = 8
if age >= 6:
print 'teenager'
elif age >= 18:
print 'adult'
else:
print 'kid'
Python——for循环
L = ['Adam', 'Lisa', 'Bart']
for name in L:
print name
Python——while循环
N = 10
x = 0
while x < N:
print x
x = x + 1
Python——break退出循环
Python——continue继续循环
Python——多重循环
Python——dict(相当于Java:Map 且无序,作为key的值不可变)
花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。
dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
由于dict是按 key 查找,所以,在一个dict中,key不能重复。
dict的第二个特点就是存储的key-value序对是没有顺序的!
dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为
key。
dict的访问:
可以通过key值直接访问:d['...']
也可以通过get方法:d.get('...')
替换: 使用d['...']=...即可
遍历dict:使用for循环可直接遍历dict的key的值
可以通过d[key]的方式获取value的值
Python——Set(跟Java的Set很像)
s = set(['A', 'B', 'C', 'C'])
可以通过in关键字查找Set中是否存在相应的值。—— print 'Bart' in set
——————————[x.lower() for x in s] 蛮有趣的
set的内部结构和dict很像,唯一区别是不存储value
set存储的元素和dict的key类似,必须是不变对象
set存储的元素也是没有顺序的。
set的添加 set.add(...) 若不存在,不会报错
set的删除 set.remove(...) 若不存在,则会报错