Python是Guido van Rossum(荷兰)在1989年圣诞节期间编写的一种解释型语言。它相对编译型语言运行慢,但Python提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,同时还有大量的第三方库。
Python的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码。
官网:https://www.python.org/
解释器:
Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。
安装好Python3.*后,就有官方版本的解释器:CPython(C语言开发)
CPython用>>>
作为提示符
其他解释器:
1. IPython:基于CPython之上的一个交互式解释器,增强交互方式
2. PyPy:它的目标是执行速度
3. Jython:可以直接把Python代码编译成Java字节码执行
4. IronPython:直接把Python代码编译成.Net的字节码
注:如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
两种模式:
- 命令行模式:
“命令提示符”,就进入到命令行模式,它的提示符类似C:>,可以直接输入代码。
命令行模式下直接运行.py文件是一次性执行该文件内的所有代码,对于运行结果需要手动print。 - Python交互模式:
a. 通过cmd进入命令提示行下,输入python进入,提示符是>>>
。
b. 开始菜单选择Python (command line)菜单项,直接进入。
Python交互模式下的代码是输入一行,执行一行,输入exit()后窗口会直接关闭。Python交互模式主要是为了调试Python代码用,也便于初学者学习,它不是正式运行Python代码的环境!
两款文本编辑器:
1. Sublime Text
2. Notepad++
绝对不能用Word和Windows自带的记事本,因为记事本会在文件开始的地方加上几个特殊字符(UTF-8 BOM)
直接运行py文件:
C:\User\admin>python c:\Users\admin\Desktop\test.py
hello, world
输入Input/输出Output:
>>> name=input()
world
>>> print('hello',name)
hello world
>>> name=input('please input your name: ')
please input your name: admin
>>> print('hello',name)
hello admin
>>>
>>> print('hello', 'world')
hello world
>>> print('1024 * 768 =',1024*768)
1024 * 768 = 786432
Python使用缩进来组织代码块,请务必遵守约定俗成的习惯,坚持使用4个空格的缩进。
以#开头的语句是注释。
>>> sum =0
>>> for x in range(101):
... sum=sum+x
...
>>> print(sum)
5050
>>>
数据类型:
编码
Python 3的字符串使用Unicode,直接支持多语言。
当str和bytes互相转换时,需要指定编码。最常用的编码是UTF-8。Python当然也支持其他编码方式,比如把Unicode编码成GB2312:
>>> '中文'.encode('gb2312')
b'\xd6\xd0\xce\xc4'
- 整数
有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2。 - 浮点数
对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,如1.23e9,1.2e-5。 - 字符串
字符串是以单引号'或双引号"括起来的任意文本,转义字符\
,Python允许用'''...'''
的格式表示多行内容。Python还允许用r''表示''内部的字符串默认不转义。 - 布尔值
在Python中,可以直接用True、False表示布尔值(请注意大小写),布尔值可以用and、or和not运算。 - 空值
Python里一个特殊的值,用None表示。
变量
在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量。
这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。
常量
在Python中,通常用全部大写的变量名表示常量。
Python根本没有任何机制保证常量不会被改变,用全部大写的变量名表示常量只是一个习惯上的用法。
除法
在Python中,有两种除法:
1. /
,计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数:
2. //
,称为地板除,两个整数的除法仍然是整数%
,余数运算,可以得到两个整数相除的余数
list 列表
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> len(classmates)
>>> classmates[-1]
>>> classmates.append('Adam')
>>> classmates.insert(1, 'Jack')
>>> classmates.pop()
>>> classmates.pop(1)
>>> classmates[1] = 'Sarah'
>>> L = ['Apple', 123, True]
>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
tuple 元组
tuple和list非常类似,但是tuple一旦初始化就不能修改
>>> classmates = ('Michael', 'Bob', 'Tracy')
>>> t = ()
>>> t = (1,)
dict
Python内置了字典:dict全称dictionary,类似其他语言的map,使用键-值(key-value)存储,具有极快的查找速度。
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
>>> d['Adam'] = 67
如果key不存在,dict就会报错
1. 通过in判断key是否存在
>>> 'Thomas' in d
- 通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
常用方法:
D.clear() 移除D中的所有项
D.copy() 返回D的副本
D.fromkeys(seq[,val]) 返回从seq中获得的键和被设置为val的值的字典。可做类方法调用
D.get(key[,default]) 如果D[key]存在,将其返回;否则返回给定的默认值None
D.has_key(key) 检查D是否有给定键key
D.items() 返回表示D项的(键,值)对列表
D.iteritems() 从D.items()返回的(键,值)对中返回一个可迭代的对象
D.iterkeys() 从D的键中返回一个可迭代对象
D.itervalues() 从D的值中返回一个可迭代对象
D.keys() 返回D键的列表
D.pop(key[,d]) 移除并且返回对应给定键key或给定的默认值D的值
D.popitem() 从D中移除任意一项,并将其作为(键,值)对返回
D.setdefault(key[,default]) 如果D[key]存在则将其返回;否则返回默认值None
D.update(other) 将other中的每一项加入到D中
D.values() 返回D中值的列表
常用的两种遍历方法:
#法1:
for key, value in D.iteritems():
print key, ':', value
#法2:
for key in D.iterkeys():
print key, ':', D[key]
set
set中,一组key的集合,但不存储value,没有重复的key
>>> s = set([1, 2, 3])
添加元素:s.add(4)
删除元素:s.remove(4)
交集: s1 & s2
并集:s1 | s2
条件判断
if <条件判断1>:
<执行1>
elif <条件判断2>:
<执行2>
elif <条件判断3>:
<执行3>
else:
<执行4>
简写
if x:
print('True')
for循环及while循环
#for
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)
#range()函数,可以生成一个整数序列
>>> list(range(5))
[0, 1, 2, 3, 4]
#while
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)