Python基础知识点整理 1

Python语言:
python是一个高层次的结合了解释性编译性互动性面向对象脚本语言。
Python的设计局有很强的可读性,它比Java更加的简洁而且易读。相比其他语言经常使用的英文关键字,
其他语言的一些标点符号,它具有比其他语言更有特色的语法结构。
 
  1. Python 是一种解释性语言:这意味着开发过程中没有了编译这个环节,类似于PHP和Perl语言。解释性语言是边解释,边执行,它不像Java一样是先编译成.class字节码文件,然后再在java虚拟机上面执行。
  2. Python是交互式语言,这意味着,你可以在Python的提示符>>>之后直接执行代码。
  3. Python是面向对象语言,这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

Python的几个重要的特点:

  1. 可移植性:基于其开放源代码的特性,Python已经被移植到许多平台。许多平台都可以使用python语言。比如linux,windows,Android..等等一系列没有听过的平台。
  2. 可拓展性:如果你需要运行一段执行很快的关键代码,或者是想要编写一些不愿开放的算法。你可以使用C 或者C++完成那部分程序,然后从你的python程序去调用。
  3. 可嵌入:你可以将python嵌入到C/C++程序,让你的程序的用户获得脚本化的能力。

Python开发工具PyCharm的功能:调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制…


注意:python 在print("hello,world")的时候可以正确运行,但是在运行print("你好,世界")的时候会出错。

SyntaxError: Non-ASCII character '\xe4' in file test.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

原因:python的默认编码格式是ASCII格式,在没有修改编码格式时是无法正确打印汉字的,所以在读取中文时会报错。

解决办法就是在文件开头加入 #-*- coding:utf-8 -*- 或者 # coding=utf-8就行了  '='两边不要有空格

如果你使用的是Pycharm等集成开发环境,可以在Setting->Editor->File encodings中将IDE/Project Encoding设置为utf-8

如果你使用的是编译器,例如notepad++,存储.py文件的时候,需要同时设置.py文件存储的格式为UTF-8。

否则会出现如下错误:

SyntaxError: (unicode error) ‘utf-8’ codec can’t decode byte 0xc4 in position 0: invalid continuation byte


python 为什么要配置环境变量?配置了之后能做什么?

python 配置环境变量就是让电脑具有了Python解释器的路径,在执行python脚本文件的时候,就可以通过该路径找到python解释器,通过解释器执行脚本。

比如我们可以在交互式命令行中执行  $ python test.py ,计算机可以识别Python这个指令,就是因为有环境变量。

另一种执行python脚本的方式:

假定您的Python解释器在/usr/bin目录中,也就是python.exe 安装在/usr/bin目录下,使用以下命令执行脚本:$ chmod +x test.py # 脚本文件添加可执行权限 $ ./test.py

执行python脚本的时候,必须进入到此python脚本所在的文件目录下才能执行,否则会因为找不到文件而报错。


python基础知识:

  1. python严格控制缩进,如果要缩进,所有代码的缩进空格数应该相同。不能有的缩进两行有的缩进三行。
  2. 如果一行语句过长,可以在代码行末加入'\'将一行的语句分为多行显示。
  3. Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须是相同类型的。其中三号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。

  4. Python可以在同一行中使用多条语句,语句之间使用分号(;)分割,以下是一个简单的实例:import sys; x = 'runoob'; sys.stdout.write(x + '\n')

  5. print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,
  6. 缩进相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

  7. 很多程序可以执行一些操作来查看一些基本信息,Python 可以使用 -h 参数查看各参数帮助信息


Number(数字):

Python3 支持 int、float、bool、complex(复数)

在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。像大多数语言一样,数值类型的赋值和计算都是很直观的。

内置的 type() 函数可以用来查询变量所指的对象类型。这个函数以后会常用到。

此外还可以用 isinstance 来判断:
>>> isinstance(a, int)
True

isinstance 和 type 的区别在于:

  • type()不会认为子类是一种父类类型。
  • isinstance()会认为子类是一种父类类型。

注意:在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。

  • 1、Python可以同时为多个变量赋值,如a, b = 1, 2。
  • 2、一个变量可以通过赋值指向不同类型的对象。
  • 3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。

4、在混合计算时,Python会把整型转换成为浮点数。


String(字符串):

Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。

常用的转义字符有:\(续行符),\\(反斜杠符号),\',\''(单双引号),\a(响铃),\b退格,\n换行。其他横纵向制表可查。

字符串的截取的语法格式如下:StringName[起点:终点]  注意字符串是从0开始计数,切片含头不含尾。

图片正在加载...

 python支持格式化字符串的输出,尽管这样可能会用到非常复杂的表达式。但最基本的用法是将一个值插入到一个有字符串格式符%s的字符串中。在Python中,字符串格式化使用与C 中sprintf函数一样的语法。

常用的字符串格式化符号:%c 格式化字符及其ASCII码。%s格式化字符串。%d格式化正数,%f浮点数。%e科学计数法格式化浮点数。

格式化操作符辅助指令:

符号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
<sp>在正数前面显示空格
#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0显示的数字前面填充'0'而不是默认的空格
%'%%'输出一个单一的'%'
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

f-string格式化字符串以f开头,后面跟着字符串,字符串中的表达式会用大括号{}包起来,它会将变量或者表达式计算后的值替换进去。

>>> name = 'Runoob'
>>> f'Hello {name}'  # 替换变量

使用这种方式明显简单了,因为它不用再自己去判断到底是%s还是%d.

其次字符串还有很多常用的内建函数,也就是字符串类的成员函数。比如captalize()将第一个字符串的第一个字符转换为大写。

1. 加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,与之结合的数字为复制的次数.

2. Python 使用反斜杠 \ 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串

>>> print('Ru\noob')
Ru
oob
>>> print(r'Ru\noob')
Ru\noob
3. Python 没有单独的字符类型,一个字符就是长度为1的字符串。

4. 与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误。

5. Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。


List(列表):

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号 [] 之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

列表截取的语法格式如下:变量[头下标:尾下标]

正在加载图片...

加号 + 是列表连接运算符,星号 * 是重复操作.这里是对列表里的元素进行重复。

与Python字符串不一样的是,列表中的元素是可以改变的。

Python列表有很多函数len(list)列表元素个数,max(list),min(list),list(seq)将元组转换为列表。

序号方法
1list.append(obj)
在列表末尾添加新的对象
2list.count(obj)
统计某个元素在列表中出现的次数
3list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
4list.index(obj)
从列表中找出某个值第一个匹配项的索引位置
5list.insert(index, obj)
将对象插入列表
6list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
7list.remove(obj)
移除列表中某个值的第一个匹配项
8list.reverse()
反向列表中元素
9list.sort( key=None, reverse=False)
对原列表进行排序
10list.clear()
清空列表
11list.copy()
复制列表

Tuple(元组)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。

元组中的元素类型也可以不相同。

元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取(看上面,这里不再赘述)。

其实,可以把字符串看作一种特殊的元组。

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。List列表中也可以包含元组对象。这样的数据可以转换为字典。

比如:>>> dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])         得到     {'Runoob': 1, 'Google': 2, 'Taobao': 3}

构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号

string、list 和 tuple 都属于 sequence(序列)。元组也可以使用+操作符进行拼接。

元组中的元素值是不允许修改的,但我们可以对元组进行连接组合。

元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组

元组中也包含了很多内置函数,比如len(),max(),min(),tuple().其中tuple()可以将可迭代的系列转换为元组。

关于元组是不可变的理解:

所谓元组的不可变指的是元组所指向的内存中的内容不可变。

>>> tup = ('r', 'u', 'n', 'o', 'o', 'b')
>>> tup[0] = 'g'     # 不支持修改元素
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> id(tup)     # 查看内存地址
4440687904
>>> tup = (1,2,3)
>>> id(tup)
4441088800    # 内存地址不一样了

也就是说tup这个元组,它可以修改指向,但是它指向一个内存后,这个内存中的数据就不可更改。

从以上实例可以看出,重新赋值的元组 tup,绑定到新的对象了,不是修改了原来的对象。


Set(集合)

集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。

基本功能是进行成员关系测试和删除重复元素。

 

集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合。

set(seq),这个函数就像list(seq),tuple(seq),其中seq可以是任何序列。元组或者列表都可以。

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

集合添加元素用add().还有一个办法,也可以添加元素,且参数可以是列表,元组,字典等。s.update(x)

删除元素可以用remove(),pop(),discard()等等。

方法描述
add()为集合添加元素
clear()移除集合中的所有元素
copy()拷贝一个集合
difference()返回多个集合的差集
difference_update()移除集合中的元素,该元素在指定的集合也存在。
discard()删除集合中指定的元素
intersection()返回集合的交集
intersection_update()返回集合的交集。
isdisjoint()判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
issubset()判断指定集合是否为该方法参数集合的子集。
issuperset()判断该方法的参数集合是否为指定集合的子集
pop()随机移除元素
remove()移除指定元素
symmetric_difference()返回两个集合中不重复的元素集合。
symmetric_difference_update()移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
union()返回两个集合的并集
update()给集合添加元素

Dictionary(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

键(key)必须使用不可变类型。值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

在同一个字典中,键(key)必须是唯一的。创建空字典使用 { }

删除字典元素:del dict['Name']   清空字典:dict.clear()

字典的特性:

字典值可以是任何的python对象,既可以是标准的对象,也可以是用户定义的。但键不行。

两个重要的点需要记住  1. 不允许同一个键出现两次,创建时如果同一个键被赋值两次,后一个值会被记住。

2.键必须不可变,所以可以用数字,字符串,或者元组充当,但是用列表就不行。

字典的内置函数len(dict),str(dict)打印字典用字符串表示。

Python字典包含了以下内置方法:

序号函数及描述
1radiansdict.clear()
删除字典内所有元素
2radiansdict.copy()
返回一个字典的浅复制
3radiansdict.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4radiansdict.get(key, default=None)
返回指定键的值,如果键不在字典中返回 default 设置的默认值
5key in dict
如果键在字典dict里返回true,否则返回false
6radiansdict.items()
以列表返回可遍历的(键, 值) 元组数组
7radiansdict.keys()
返回一个迭代器,可以使用 list() 来转换为列表
8radiansdict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9radiansdict.update(dict2)
把字典dict2的键/值对更新到dict里
10radiansdict.values()
返回一个迭代器,可以使用 list() 来转换为列表
11pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
12popitem()
随机返回并删除字典中的最后一对键和值。

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页