xiuxuan 发表于 2015-12-1 10:10:46

Python学习 Day 3 字符串 编码 list tuple 循环 dict set

字符串和编码
  字符
  ASCII
  Unicode
  UTF-8
  A
  1000001
  00000000 01000001
  1000001
  中
  x
  01001110 00101101
  11100100 10111000 10101101
格式化
  在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下:
  >>> 'Hello, %s' % 'world'
  'Hello, world'
  >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
  'Hi, Michael, you have $1000000.'
  %运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。常见的占位符有:
  %d
  整数
  %f
  浮点数
  %s
  字符串
  %x
  十六进制整数
  其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
  >>> '%2d-%02d' % (3, 1)
  ' 3-01'
  >>> '%.2f' % 3.1415926
  '3.14'
  %s永远起作用,它会把任何数据类型转换为字符串:
  >>> 'Age: %s. Gender: %s' % (25, True)
  'Age: 25. Gender: True'
  对于Unicode字符串,用法完全一样,但最好确保替换的字符串也是Unicode字符串:
  >>> u'Hi, %s' % u'Michael'
  u'Hi, Michael'
  字符串里面的%是一个普通字符时,需要转义,用%%来表示一个%
  Python内置的一种数据类型是列表:
  List
  list是一种有序的集合,可以随时添加和删除其中的元素。
  >>>classmates=['michael','bob','tracy']
  >>> classmates
  ['michael', 'bob', 'tracy']
  >>>len(classmates)#获得list元素的个数
  3
  >>> classmates#用索引来访问list中每一个位置的元素,从0开始
  'michael'
  >>> classmates[-1]
  'tracy'
  >>> classmates#索引超出了范围报错
  Traceback (most recent calllast):
   File "<pyshell#11>", line 1,in <module>
   classmates
  IndexError: list index outof range
  >>> classmates[-2]
  'bob'
  >>>classmates.append('adam')#往list中追加元素到末尾
  >>> classmates
  ['michael', 'bob', 'tracy','adam']
  >>>classmates.insert(1,'jack')#把元素插入到指定的位置
  >>> classmates
  ['michael', 'jack', 'bob','tracy', 'adam']
  >>>classmates.pop()#删除list末尾的元素
  'adam'
  >>>classmates.pop(1)#赋值给对应的索引位置
  'jack'
  >>> classmates
  ['michael', 'bob', 'tracy']
  >>>classmates='sarah'#把某个元素替换成别的元素
  >>> classmates
  ['michael', 'sarah','tracy']
  >>> L = ['Apple',123, True]#元素的数据类型也可以不同
  >>> s = ['python','java', ['asp', 'php'], 'scheme']#元素也可以是另一个list
tuple
  元组和list类似,但是元组一旦初始化就不能修改
  >>> classmates =('Michael', 'Bob', 'Tracy')
  >>> t = (1,)#只有1个元素时必须加一个逗号
  特例,“可变的”tuple
  >>> t = ('a', 'b',['A', 'B'])
  >>> t = 'X'
  >>> t = 'Y'
  >>> t
  ('a', 'b', ['X', 'Y'])
条件判断
  age =3
  ifage >= 18:# 如果if判断是False,不执行if的内容,执行else
   print 'your age is', age
   print 'adult'
  else:
   print 'your age is', age
   print 'teenager'
  if语句执行是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else
  if <条件判断1>:
   <执行1>
  elif <条件判断2>:
   <执行2>
  elif <条件判断3>:
   <执行3>
  else:
   <执行4>
循环
  for...in循环
  names= ['Michael', 'Bob', 'Tracy']
  forname in names:
  print name
  
  sum =0
  for xin range(101):
   sum = sum + x
  printsum
  while循环
  sum =0
  n =99
  whilen > 0:
   sum = sum + n
   n = n - 2
  printsum
dict
  dict的key必须是不可变对象。list是可变的,就不能作为key。
  
  >>> d = {'Michael': 95, 'Bob': 75,'Tracy': 85}
  >>> d['Michael']
  95
  和list比较,dict有以下几个特点:
  查找和插入的速度极快,不会随着key的增加而增加;
  需要占用大量的内存,内存浪费多。
  而list相反:
  查找和插入的时间随着元素的增加而增加;
  占用空间小,浪费内存很少。
set
  set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
  要创建一个set,需要提供一个list作为输入集合:
  >>> s = set()
  >>> s
  set()
  >>> s = set()#需要list作为输入集合
  >>> s
  set()#重复元素在set中自动被过滤
  >>> s.add(4)#添加元素到set中
  >>> s
  set()
  >>> s.add(4)
  >>> s
  set()
  >>> s.remove(4)#删除元素
  >>> s
  set()
  >>> s1 = set()
  >>> s2 = set()
  >>> s1 & s2#交集
  set()
  >>> s1 | s2#并集
  set()
  set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。
  欢迎关注
http://mmbiz.qpic.cn/mmbiz/njjfaJS7c9pcxNeeKU0zq8TEgvw4J3EiczPnHX3JCqRe1pvFe0VHKph4SV6k6DR1h909nau18CYWO4NK8RlZVXw/640?wxfmt=jpeg&tp=webp&wxfrom=5
页: [1]
查看完整版本: Python学习 Day 3 字符串 编码 list tuple 循环 dict set