基础知识
Python基础
python2和python3的区别
输出不同:python3中print当函数用:print(..)
,python2中直接print即可print ..
。
从键盘输入字符不同:Mac中的python
Mac自带python2,且不能卸载 (一部分系统功能依赖这个python)
因此装python3后,系统中就会带有两个版本python, python命令就不能只写python
了,需要用python2
和python3
来区分, pip命令也是pip2
&pip3
(所以推荐使用annaconda来管理python版本)python中对象有类型,变量无类型(变量可随意更改值类型)
数字类型有:int、float、bool、complex(复数)注释
单行注释:#
多行注释:三对单/双引号,’’’xxx’’’或”””xxx”””python中“/”做除法结果肯定是浮点数,取商为“//”,取余为“%”,x**y:x的y次方
分数除法:
1
2from fraction import Fraction
Fraction(10,3) # 分数10/3
基本数据结构
字符串string
双引号””、单引号’’括起来都是字符串
访问字符串中元素:str[i]
数字转字符串:str();字符串转数字:int()/float()
求字符串长度:len()
截取字符串:str[x:y],前包后不包
字符->ASCII:ord('a')
; ASCII->字符:chr(78)
格式化字符串:”I like {0} and {1}”.format(62,”b”)->”I like 62 and b”unhashable:不可哈希——值可改变;hashable:可哈希——值不可改变。
列表(list)
即数组,但里面元素类型可不一致,lst=[‘a’,13,”lrrr”]
数组尾追加元素:lst.append,数组间插入元素:lst.insert(i,x)
删除数组元素:lst.pop(i),返回值为删除的元素
将数组元素顺序颠倒:lst.reverse()
数组排序函数:lst.sort()
字符串->数组:split();数组->字符串:join()元组(tuple)
元素值不可改变的list,遍历操作与list相同
初始化:t=(1,"ab",[123,"abc"])
或d=dict([("1","22"),("2","22")])
用数组初始化
优点:遍历比列表快;对数据进行“写保护”;可在字典中用作key字典(dict)
即哈希表,以键值对存储:dic={"n1":"ab","n2":"cd","n3":12}
键(key)不可修改,可以是字符串或元组;但键值可以更改。
通过键访问键值:dic[‘n1’]集合(set)
无序、不重复序列,s=set([123,'lrrr',"asd"])->s={'lrrr', 123, 'asd'}
集合增加元素:add;删除元素:remove
不可改变的集合:frozenset,集合一旦创建就不能再增加/删除元素。
可进行集合的“交并补”等运算,得到新的集合。range类型
range(a,b,t):a为起点,b为终点,t为步长,是一个前开后闭的区间(包括起点不包括终点)
注:a默认0,t默认1。
range主要用于产生一个序列,在for in
循环中很常见1
2
3x = range(10) #x是从0到9的一个range类型
for i in x:
print(i) #循环输出0-9
range转List:list(range(1,10,3))
List Comprehension机制
1
2
3
4
5
6# 两个用法等价
list1 = [i for i in range(10)]
list2 = []
for i in range(10):
list2.append(i)迭代器(iter)
1
2
3
4
5
6遍历操作
while True:
it.__next__()
数组转迭代器:it=iter(list)
文件流默认为可迭代对象,可直接调用__next__()generator
和可迭代类型(Iterator)类似,区别:其不保存所有值,其只计算一个值,保存一个值,计算下一个值时这个值就会被覆盖。适用于数据只使用一次的场景。
在函数中可使用yield
语句来返回一个generator
,类似return语句,但区别是在调用时其并没有真正计算值,只是返回了一个generator,等到真正访问generator时才会去一个一个地计算其值。
语句
- if语句
1
2
3
4
5
6if a==5:
xxx
elif a==10:
xxx
else:
xxx
采用四个空格的缩进来表示语句块开始,删去缩进表示语句块结束;不要忘了冒号。
三元表达式:A = Y if X else Z
- for语句
1
2
3str="hello"
for i in range(len(str)):
print(str[i],end=' ') #输出为h e l l o
同样注意冒号,缩进
for else语句
1
2
3
4
5for i in range(1,10,2):
#语句块
else :
#for循环正常结束会执行
#break直接跳出,不会执行elsewhile语句
1
2while a>5 :
#while语句
函数
文件操作
文件路径
Windows中文件分隔符为\\
, Linux和Mac中是/
, 注意区分.
绝对路径: Mac下绝对路径为/Users/lrrr/Dekstop(Doucuments, Downloads等)
, 起始为/Users/lrrr
.
相对路径: 相对是指相对于.py
文件所在目录的路径, 路径中用.
表示向上一级目录(..
就是上两级目录).读取文件
1
2
3
4
5
6
7
8f = open("test.txt")
for line in f #读取一行
print(line)
或
f = open("e:\\test.txt")
f.read(12) #读取12个字符
f.readline() #读取一行
f.readlines() #按行读取文件,并存到list中写文件
1
2
3
4
5
6f = open("e:\\test.txt","w") #先清空文件再写
或
f = open("e:\\test.txt","a") #追加写
f.write(xxx)
#插入换行
f.write(xxx+'\n') #win下会自动翻译为\r\n,直接在字符串中写\n没用
函数
seek函数
seek(x),将文件指针移到位置x(相对文件开头)自定义函数
1
2
3函数定义
def funName(a,b):
函数体python函数参数传递
1
2
3
4
5
6
7
8
9
10
11def fun(x):
x=2
a=3
fun(a)
print(a) #输出3
def fun(x):
x.append("two")
b=["one"]
fun(b)
print(b) #输出["one","two"]
原因:python中变量的赋值就是“贴标签”,第一段代码中x=2就是将x的标签贴到了别的地方,并非修改值。
- python3和python2区别
1、输出: python3是print(xxx)
, python2是print xxx
2、输入:
其他地方都差不多
Post Date: 2018-03-18
版权声明: 本文为原创文章,转载请注明出处