python 学习 abc语言
1989年圣诞节
guido 现在google工作
CNRI 1.5之前
BeOpen 2.0和1.6有很大区别
zope插件
Python3.0
目前用的2.0 2.6 2.7版本
tiobe编程大奖 增长份额最快
Python特征:
脚本语言
编译性和解释性一体
面向对象
高级语言
可扩展性可嵌入性
免费、开源
可移植性
丰富的库
胶水语言
辅助的脚本
优于 ruby语言
搭建Python环境
命令:Python 查看Python环境是否安装成功
print ‘hello world!’
1、下载Python
http:www.python.org/download
2、 >>> :是个提示符
3、
1/2
1//2
1.0//2.0
%求余、**幂
最大值:2147483647
最小值:-2147483648
如果真的需要大数可以使用长整型数
长整型数书写和普通整数一样但是结尾有个L
理论上小写的L也行但是他和1比较接近所以不建议
长整型数和普通整数可以混合使用在绝大多数情况下不用担心长整型数和整数的区别
除非需要进行类型检查
4、在Python3.0中print是函数
5、input(“获取用户输入:”);
6、if的用法:
if 1==2:print 'one equals two'
if 1==1:print 'one equals one'
if time%60==0:print 'on the hour!'
7、函数
pow(2.3)
abs(-10)
round(1.0/2.0)
8、模块
import math
from math import sqrt 区别 不建议使用
9、input和raw_input的区别
input输入时腰带引号
raw_input输入时不需要
10、str和repr的区别
str转字符串易于用户阅读
repr转字符串是转成Python表达式
10、长字符串
用'''zifuchuan'''或者"""字符串"""单双引号代替普通引号没区别
11、原始字符串
import cmath 复数
Unicode 字符串
Unicode字符串使用u前缀就像原始字符串使用r一样
Python3.0中所有字符串都是Unicode字符串
1、序列
6种内建的序列
列表、元组、字符串、Unicode字符串、buffer对象、xrange对象
列表和元组
区别:列表可以修改元组不能
2.通用序列操作
索引、分片、加、乘、检查某个元素是否属于序列的成员
Python还有计算序列长度、找出最大元素和最小元素的内建函数
3、索引
序列中所有元素都是有编号的从0开始递增
也可以用负数索引
字符串字面值能够直接使用索引而不需要一个变量引用他们例如
'hello'[1] 输出'e'
fourth = raw_input('Year:')[3]
4、分片
通过分片操作来访问一定范围内的元素分片通过冒号相隔的两个索引来实现
numbers = [1,2,3,4,5,6,7,8,9,10]
numbers[3:6]
输出:[4,5,6]
numbers[0:1]
输出:[1]
分片操作的实现需要提供两个索引作为边界第一个索引的元素是包含在分片内的,而第二个则不包含在分片内
numbers[-3:]
[8,9,10]
numbers[-3:0]输出为空[]
numbers[:]
numbers[:3]
更大的步长
numbers[0:10:1]
numbers[0:10:2]
步长可以是负数 对于一个正数的步长 Python会从序列的头部开始向右提取元素对于一个负数的步长则是从序列的尾部开始向左提取元素。
5、序列相加
通过使用加号可以进行序列的连接操作
[1,2,3]+[4,5,6]
输出[1,2,3,4,5,6]
'hello.'+'world!'
列表和字符串是无法连接的 只有两种相同类型的序列才能进行连接
6、乘法
用数字X乘以一个序列会生成新的序列而在新的序列中,原来的序列将被重复X次
none 空列表和初始化
none是一个Python的内建值
7、成员资格
in运算符
‘w’in permissions
真为true假为false
8、长度、最小值、最大值
len 、min、max
9、列表:Python的‘苦力’
list 函数适用于所有类型的序列而不只是字符串
10、基本的列表操作
索引、分片、连接、和乘法
1、改变列表的值:元素赋值
2、不能为一个位置不存在的元素进行赋值
3、删除元素del names[2]
4、分片赋值 name[2:]
5、可以使用与原序列不等长的序列将分片替换
6、分片赋值语句可以在不需要替换任何原有元素的情况下插入新元素
7、通过分片赋值来删除元素也是可行的
列表方法
1、对象.方法(参数) append如lst.append 用于在列表末尾追加新的对象
count方法统计某个元素在列表中出现的次数
extend方法可以在列表的末尾一次性追加另一个序列的多个值
index方法用于从列表中找出某个值第一个匹配项的位置
insert用于将对象插入到列表中
pop方法会移除列表中的一个元素(默认是最后一个)并返回该元素的值
pop方法是唯一一个既能修改列表又返回元素值(除了none)的列表方法
remove方法用于移除列表中某个值得第一个匹配项
remove是一个没有返回值的原位置改变方法他更改了列表却没有返回值这与pop方法相反
reverse方法将列表中的元素反向存放,该方法和remove和sort一样改变了列表但不返回值
sort方法用于原位置对列表进行排序,x[:]这是一种很有效率的复制整个列表的方法,另外一种获取已排序列表副本的方法是使用sorted函数
8、高级排序
numbers.sort(cmp) sort方法有另外两个可选的参数
x.sort(key=len) 和x.sort(reverse==true)
cmp key reverse 参数都可以用于sorted函数
9、元组:不可变序列
元组和列表一样,也是一种序列,唯一不同的是元组不能修改
1.如果你用逗号分隔了一些值,那么你就自动创建了元组
2、元组通过圆括号括起来的,大部分时候是
3、空元组可以用没有包含内容的两个圆括号来表示
4、一个值的元组必须加个逗号,即使只有一个值
5、
10、tuple函数
tuple函数的功能与list函数基本上是一样的:以一个序列作为参数并把它转换为元组,如果参数就是元组,那么该参数就原样返回
11、基本元组操作
1、创建元组,访问元组
2、元祖的分片还是元组,就像列表的分片仍是列表一样
元祖的两个重要功能是不可替代的
1、元组可以映射(和集合的成员)中当作键使用----而列表不行
2、元组作为很多内建函数和方法的返回值存在也就是说你必须对元组进行处理只要不尝试修改元组那么处理元组在绝大多数情况下就是把他们当做列表来进行操作,除非需要使用一些元组没有的方法例如:index,count一般来说列表可能更能满足对序列的需求。