前言:前段时间看了一些关于python的学习网站(主要是廖雪峰总结的python学习),记录了一些在学习中认为比较重要的知识点,分享出来,自己再熟悉一遍,也希望能帮助到正在学习python的人,一起进步。
1、学习python之前要先知道python编码格式:
编写Python文件需在编辑器中选择UTF-8编码(Encode in UTF-8 without BOM);
当str和byte互相转换时需指定编码;
为了避免编码问题,在Python文件开头会添加:
#!/use/bin/env python3 告诉操作系统这是一个Python可执行程序;
# -*- coding: utf-8 -*- 告诉Python解释器,按照UTF-8编码读取源码;
格式化:
%s 替换字符串;
%d 替换整数;
%f 浮点数;
%x 十六进制整数;
格式化整数还可以选择,补0,整数和小数位数;
print(’he is %s,%d yeas old‘ % ('liming',5))
如果不确定用什么,%s 永远管用;
相关函数:
format()用传入的参数依次替换字符串内的占位符{0},{1}......
’Hello,{0},成绩提升了{1:.1f}%.format(’小明‘,17.25)‘
order()获取字符的整数表示;
chr()把编码转换为对应的字符;
decode()把bytes变为str;
len()计算str包含多少个字符;
2、python输入输出:
使用python有两种方式,一种是直接在cmd界面进入python,一种是将编辑好的python文件直接执行:
直接在命令行执行Python语句:
输入Python进入Python界面;
输入Python语句;
使用文本编辑:推荐notepad++
文件名需要以 .py结尾;
运行时需要在保存文件所在的目录下运行 Python 文件名.py;
C:\Documents and Settings\wangkk>python d:/python/c.py
输出:print()
打印输出:print('hello word')
注意两点:1、引号可以用单引号,也可以双引号;
2、末尾没有分号;
输出print()可以中间添加逗号,打印时会转化为空格;
print('a b','c d','e f') -> a b c d e f
直接打印整数:print(300)
print(‘100+200=’,100+200)
输入:input()
需要注意:1、输入必须存放在一个变量中;
2、需调用变量查看输入值;
3、在input()里可以输入提示语;
name=input() --输入名字;name -- 查看输入的值,print(name)打印输入的值;
name = input('plase input your name:')
3、python的基本数据类型:
数据类型:
整数:可用十进制、十六进制表示,十六进制前面需加0x,整数的运算都是精确的(有地板除法\\只取整数部分;\除法算出来是浮点数,即便能除尽也是取浮点数 ),整数没有大小限制;
浮点数:浮点数运算有四舍五入的误差;
字符串:以单引号‘’或者双引号“”括起来的任意文本。如果文本里有‘或者“,就用转移符\标识(\n换行符,\t制表符);
空值:None表示空值(不能理解为0,0是有意义的,none是特殊的空值);
布尔型:true、false(可用通过运算表示,也可以通过直接调用表示);
除这几种数据类型外,Python还提供了列表、字典等多种数据类型,还允许自定义数据类型。(list / tuple/ dict/ set)
变量:
变量名:可包含字符(大小写字母,数字,下划线),不能用数字开头;
动态语言:变量本身类型不固定;
静态语言:变量类型固定(在定义变量时就必须指定变量类型,如果赋值时类型不匹配就会报错);
例如:int a = 3 ,a就不能再被赋值为其他类型。
a = 'abc'
在内存中表示:
1、内存中创建了’abc‘的字符串;
2、创建一个变量a,并把a指向字符串'abc';
常量:
通常用全部大写的变量名表示常量;常量表示不可变的数。
4、数据类型list和tuple:
上面提到python除了基本的数据类型外,还提供了列表、字典等多种数据类型,list和tuple就是其中两种。
数据类型:list ------ 用[ ]表示
python内置的一种数据类型是列表:list。是一种有序集合,可随时添加删除其中元素。
list和数组类似,索引从0开始,当索引超过范围时,会报错 IndexError。
a = [a,b,c,d] 获得元素个数:len(),最后一个元素索引:len(a)-1
追加元素到末尾:
append() a.append(e)
插入元素到指定位置:
insert() a.insert(5,e)
删除指定位置的元素:
pop() a.pop(5)
把某个元素替换成别的元素,直接赋值给对应的索引位置:a[2]=f
list元素可以是多种类型,list里嵌套list,可以看做多维数组;
数据类型:tuple ------ 用( )表示
另一种有序列表-元组:tuple。tuple一旦初始化就不能修改。tuple相比list更安全。
t = (1,2) 获取tuple元素:t[0],t[1]
定义空tuple : t = ()
定义只有一个元素的tuple :
t = (1,)一定要添加逗号,为了和数学中的括号区分。
可变tuple: 当tuple中元素有list时,list元素是可变的。
tuple的“不变”指的是tuple的指向不变。
5、dict和set
dict:用空间换时间的方法。
key是不可变对象
,通过key计算value位置。
dict全称dictionary,是Python内置的字典。其他语言中称为map,使用键-值存储,具有极快的查找速度。
dict用大括号表示。
一个key只能对应一个value,如果对一个key多次放入value,后面放入的回覆盖前面放入的value。
初始化时指定:d = {'a':90,'b':91,'c':92}
寻找a对应的值:d['a']
根据key值放入:d['d'] = 95
如果key不存在,则会报错。可以通过in判断key是否存在:‘d’ in d
也可以通过get方法:d.get('a') 返回none,是不存在。返回none时,在交互环境不显示结果。
删除dict方法:
d.pop('a') 删除key,对应的value也会删除
dict内部存放顺序和key的放入顺序没有关系。
和list比较,dict特点:
1、查找和插入速度快,不会随着key增大而变慢;
2、需要占用大量的内存,内存浪费多。
list特点:
1、查找和插入时间随着元素增加而增加;
2、占用空间小,浪费内存少。
set:一组key的集合,但不存储value。在set中没有重复的key,输入重复的会被自动过滤。(无序无重复,两个set可做并,交操作)
key是不可变对象
创建一个set:s = set([1,2,3])
添加key: s.add(4)
删除key: s.remove(4)
6、条件判断和循环
对其他语言有过了解的人都知道条件判断和循环是语言中最常用的知识点,python的条件判断和循环在语法上和其他语言稍微有些差别。
判断:
条件判断用if实现:
if a>3:
print('hello')
elif a<1:
print('haha')
else:
print('dingdingdang')
注意:if 条件后面不能少了冒号。
到这里,正好用到前面提到的输入input(),在使用input()时,还要注意下面的问题:
birth = input('birth:')
if birth>2000:
print('00后')
else:
print('90后')
上面代码会返回错误。
input()返回的数据类型是str,不能直接和整数进行比较。
因此,出现了
int()。
s = input('birth:')
birth = int(s)
int()函数发现一个字符串并不是整数时,就会报错,程序就会返回。
循环:
for ... in... 把 list 或tuple的每个元素迭代出来
Python提供
range()函数,可以生成一个有序数列。再通过
list()函数转化为list:list(range(5)) =[0,1,2,3,4]
sum = 0
for x in range(10):
sum = sum +x
print(sum)
while n>0: 条件不满足是跳出循环。
break 提前跳出循环
continue 跳出当前循环
如果遇到代码死循环,可以用Ctrl+C结束Python程序。