1.数据类型和变量php
2.字符串和编码java
对于单个字符的编码,Python提供了ord()
函数获取字符的整数表示,chr()
函数把编码转换为对应的字符:python
>>> ord('A')app
65函数
相似于C语言ASCII码转换ui
Python对bytes
类型的数据用带b
前缀的单引号或双引号表示:编码
x=b'ABC'spa
要把bytes转变为str,就须要用decode()方法:命令行
>>> b'ABC'.decode('ascii')
code
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
要计算str包含多少个字符,能够用len()函数:
>>> len('ABC')
3
>>> len('中文')
2
格式化
在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'
使用list和tuple
list是一种有序的集合能够随时添加和删除其中的元素。
例如:
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> print(classmates)
['Michael', 'Bob', 'Tracy']
计算len()函数能够得到list元素个数:
>>>print(len(classmates))
3
>>>print(classmates[1])
'Bob'
list是一个可变的有序表,因此,能够往list中追加元素到末尾:
>>>classmates.append('Adam')
>>>print(classmates)
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
用insert()插入指定位置元素
>>>classmates.insert(1,'Jack')
要删除list末尾的元素,用pop()方法:
要删除指定位置元素,用pop(i)方法,其中i是索引位置:
>>>classmates['Michael', 'Bob', 'Tracy']
>>>print(classmates)
>>>classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']
list元素也能够有另一个list,好比:
>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4
>>>print(s[2])
['asp', 'php'],
tuple
tuple和list很是相似,可是tuple一旦初始化就不能被修改。
>>>tuple(1,2,3)
>>>print(t)
123
当tuple中存在list时,list中的数据能够被修改。
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> print(t)
('a', 'b', ['X', 'Y'])
条件判断
若是if语句判断是True,就把缩进两行的print语句执行了,不然,什么也不作。
也能够给if添加一个else语句,意思是,若是if判断是false,不执行if内容,去把else执行了:
if <条件判断1>: <执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
例如:
age = 20
if age >= 6:
print('teenager')
elif age >= 18:
print('adult')
else:
print('kid')
循环:
Python的循环有两种,一种是for...in循环,依次把list或tuple中的每一个元素迭代出来,看例子:
names = ['a','b','c']
for name in names:
print(name)
a
b
c
for x in ...循环就是把每一个元素带入变量x,而后执行缩进块的语句。
python提供了一个range()函数,能够生成一个整数序列,在经过list()函数能够转换成list。
print(list(range(5)))
[0,1,2,3,4]
while循环
只要知足条件就不断的循环,条件不知足时退出循环。
eg:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
break提早跳出循环
continue
在循环过程当中,也能够经过continue语句,跳过当前的此次循环,直接开始下一个循环。
使用dict和set
dict的全称是dictionary相似使用map,使用键-值存储(key-value)存储,具备极快的查找速度。
names = ['Michael','Bob','Tracy']
scores = [92,88,90]
<=>
>>>d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
也能够使用
>>> d['Adam'] = 67
>>> d['Adam']
67
因为一个key只能对应一个value,因此,屡次对一个key放入value,后面的值会把前面的值冲掉:
>>> d['Jack'] = 90
>>> d['Jack']
90
>>> d['Jack'] = 88
>>> d['Jack']
88
若是key不存在,dict就会报错:
>>> d['Thomas']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'Thomas'
要避免key不存在的错误,有两种方法,一是经过in判断key是否存在:
>>> 'Thomas' in d
False
二是经过dict提供get方法,若是不存在,能够返回None,或者本身指定的value:
>>>d.get('a')
>>>d.get('a', -1)
-1
注意:返回None
的时候Python的交互式命令行不显示结果。
要删除一个key,用pop(key)
方法,对应的value也会从dict中删除:
>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}
请务必注意,dict内部存放的顺序和key放入的顺序没有关系的
和list比较,dict有如下几个特色:
查找和插入的速度极快,不会随着key的增长而变慢;
须要占用大量的内存,内存浪费多。
而ist相反:
查找和插入的时间随着元素的增长而增长;
占用空间小,浪费内存不多。
正确使用dict很是重要,须要牢记的第一条就是dict的key必须是不可变对象。
set
set和dict相似,也是一组key的集合,但不存储value。因为key不能重复,因此,在set中,没有重复的key。
要建立一个set,须要提供一个list做为输入集合:
>>>s = set([1, 2, 3])
>>>s
{1,2,3}
注意,传入的参数[1, 2, 3]
是一个list,而显示的{1, 2, 3}
只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。。
重复元素在set中自动被过滤:
>>>s = set ([1,2,2,3,3,3,4,4,4,4])
>>>s
{1,2,3}
经过add(key)方法能够添加元素到set中,能够重复添加可是不会有效果,经过remove(key)方法能够删除元素:
set和dict的惟一区别仅在于没有存储对应的value,可是,set的原理和dict同样,因此,一样不能够放入可变对象,由于没法判断两个可变对象是否相等,也就没法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。
sort()排序函数,能够进行内部排序。