python基础汇总
Posted eyes++
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础汇总相关的知识,希望对你有一定的参考价值。
零:python之禅
Python之禅 by Tim Peters
优美胜于丑陋(Python 以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
可读性很重要(优美的代码是可读的)
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
当存在多种可能,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)
一:基础语法
1.编码
在python2.1中,unicode编码只能通过Latin-1中的“unicode-escape”的方式来实现。这让很多平时不使用Latin-1编码的用户感到非常的不友好,尤其是大多数的亚洲国家更是这样。从Python 2.3开始,可以在Python源文件中明确地声明字符编码,默认是7-bit ASCII编码。字符编码声明是以在源文件第一行或者第二行出现的一个魔法注释来实现的:
#coding=<encoding name>
但是在Unix/Linux平台上,第一行可能留给了Python解释器声明,#!/usr/bin/python,这也是一个魔法注释。所以还有第二种声明方式:
#!/usr/bin/python
# -*- coding: <encoding name> -*-
或者:
#!/usr/bin/python
# vim: set fileencoding=<encoding name> :
2.标识符
- 第一个字符必须是字母表中的字母或下划线 “_”
- 标识符的其他部分由字母、数字和下划线组成
- 标识符对大小敏感
在python3中,可以用中文作为变量名,非ASCII 标识也是允许的
3.保留字
Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字
4.注释
Python中单行注释以 # 开头, 如果注释在代码右侧,标准写法是空两格,然后打注释
# 第一个注释
print("hello, Python!") # 第二个注释
多行注释可以用多个 # 号,还有 ‘’’ 和 “”"
# 第一个注释
# 第二个注释
'''
第三注释
第四注释
'''
"""
第五注释
第六注释
"""
print ("Hello, Python!")
5.行与缩进
python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
if True:
print ("Answer")
print ("True")
else:
print ("Answer")
print ("False")
6.多行语句
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \\ 来实现多行语句
n1 = 1
n2 = 2
n3 = 5
n4 = n1 + n2 \\
+ n3
print(n4) # 8
但在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \\
total = ['item_one', 'item_two', 'item_three',
'item_four', 'item_five']
7.空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
空行与代码缩进不同,空行并不是Python语法的一部分。书写时不插入空行,Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
8.等待用户输入
"\\n\\n"在结果输出前会输出两个新的空行。一旦用户按下 enter 键时,程序将退出。
input("\\n\\n按下 enter 键后退出。")
9.同一行显示多条语句
Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割
n1 = 1; n2 = 1; print(n1 + n2) # 2
10.多个语句构成代码组
缩进相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。我们将首行及后面的代码组称为一个子句(clause)。
if 1 == 2:
print("aaa")
elif 3 == 3:
print("bbb")
else:
print("ccc")
11.print输出
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""
x="a"
y="b"
# 换行输出
print( x )
print( y )
print('---------')
# 不换行输出
print( x, end=" " )
print( y, end=" " )
print()
12.import与from…import
在 python 用 import 或者 from…import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,格式为:from somemodule import somefunction
从某个模块中导入多个函数,格式为:from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为:from somemodule import *
导入sys模块
import sys
print('================Python import mode==========================')
print ('命令行参数为:')
for i in sys.argv:
print (i)
print ('\\n python 路径为',sys.path)
导入sys模块的argv.path成员
from sys import argv,path # 导入特定的成员
print('================python from import===================================')
print('path:',path) # 因为已经导入path成员,所以此处引用时不需要加sys.path
二:基本数据类型
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
counter = 100 # 整型变量
miles = 1000.0 # 浮点型变量
name = "runoob" # 字符串
print (counter) # 100
print (miles) # 1000.0
print (name) # runoob
Python允许你同时为多个变量赋值。
a = b = c = 1
也可以为多个对象指定多个变量。
a, b, c = 1, 2, "runoob"
Python3 中有六个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
python内置type()函数用来查询变量所指的对象类型
此外还可以用 isinstance 来判断
Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加 True == 1,False ==0 是会返回 Ture,但可以通过 is 来判断类型。
1.数字(Number)
Python 支持三种不同的数值类型:
- 整型(int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。布尔(bool)是整型的子类型。
- 浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
- 复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
我们可以用十六进制和八进制来代表整数:
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
int(x) 将x转换为一个整数。
float(x) 将x转换到一个浮点数。
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
2.字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号( ’ 或 " )来创建字符串。创建字符串很简单,只要为变量分配一个值即可。注意Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
str1 = 'Hello World!'
str2 = "Python!"
(1).访问字符串中的值
Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:
变量[头下标:尾下标]
var1 = 'Hello World!'
var2 = "Runoob"
print ("var1[0]: ", var1[0]) # H
print ("var2[1:5]: ", var2[1:5]) # unoo
print ("var3[:5]: ", var2[:5]) # Runoo
print ("var4[:]: ", var2[:]) # Runoob
print ("var5[-5:-1]: ", var2[-5:-1]) # unoo
print ("var6[1:-1]: ", var2[1:-1]) # unoo
(2).字符串更新
可以截取字符串的一部分并与其他字段拼接
var1 = 'Hello World!'
print ("已更新字符串 : ", var1[:6] + 'Runoob!') # 已更新字符串 : Hello Runoob!
(3).转义字符
在需要在字符中使用特殊字符时,python 用反斜杠 \\ 转义字符。
(4).字符串运算符
a = "Hello"
b = "Python"
print("a + b 输出结果:", a + b)
print("a * 2 输出结果:", a * 2)
print("a[1] 输出结果:", a[1])
print("a[1:4] 输出结果:", a[1:4])
if( "H" in a) :
print("H 在变量 a 中")
else :
print("H 不在变量 a 中")
if( "M" not in a) :
print("M 不在变量 a 中")
else :
print("M 在变量 a 中")
print (r'\\n')
print (R'\\n')
(5).字符串格式化
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
格式化操作符辅助指令:
(6).三引号
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的
(7).f-string
f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。
之前我们习惯用百分号 (%)
f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去。
用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。
在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果
三:列表
序列是 Python 中最基本的数据结构。序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。Python 有 6 个序列的内置类型,但最常见的是列表和元组。列表都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python 已经内置确定序列的长度以及确定最大和最小的元素的方法。列表是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可
list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
(1).访问列表中的值
与字符串的索引一样,列表索引从 0 开始,第二个索引是 1,依此类推。通过索引列表可以进行截取、组合等操作。
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print( list[0] ) # red
print( list[1] ) # green
print( list[2] ) # blue
print( list[-1] ) # black
print( list[-2] ) # white
print( list[-3] ) # yellow
print(nums[0:4]) # ['red', 'green', 'blue', 'yellow']
print ("list[1:-2]: ", list[1:-2]) # list[1:-2]: ['green', 'blue', 'yellow']
(2).更新列表
可以对列表的数据项进行修改或更新,你也可以使用 append() 方法来添加列表项
list = ['Google', 'Runoob', 1997, 2000]
print ("第三个元素为 : ", list[2]) # 第三个元素为 : 1997
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2]) # 更新后的第三个元素为 : 2001
list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')
print ("更新后的列表 : ", list1) # 更新后的列表 : ['Google', 'Runoob', 'Taobao', 'Baidu']
(3).删除列表元素
可以使用 del 语句来删除列表的的元素
list = ['Google', 'Runoob', 1997, 2000]
print ("原始列表 : ", list) # 原始列表 : ['Google', 'Runoob', 1997, 2000]
del list[2]
print ("删除第三个元素 : ", list) # 删除第三个元素 : ['Google', 'Runoob', 2000]
(4).列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
(5).嵌套列表
使用嵌套列表即在列表里创建其它列表
a = ['a', 'b', 'c']
n = [1, 2, 3]
x = [a, n]
print(x) # [['a', 'b', 'c'], [1, 2, 3]]
print(x[0]) # ['a', 'b', 'c']
print(x[0][1]) # b
四:元组
Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号 ( ),列表使用方括号 [ ]。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
元组中只包含一个元素时,需要在元素后面添加逗号 , ,否则括号会被当作运算符使用
(1).访问元组
元组可以使用下标索引来访问元组中的值
tup1 = ('Google', 'Runoob', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print ("tup1[0]: ", tup1[0]) # tup1[0]: Google
print ("tup2[1:5]: ", tup2[1:5]) # tup2[1:5]:(2, 3, 4, 5)
(2).修改元组
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# 以下修改元组元素操作是非法的。
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
print (tup3) # (12, 34.56, 'abc', 'xyz')
(3).删除元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
tup = ('Google', 'Runoob', 1997, 2000)
print (tup)
del tup
print ("删除后的元组 tup : ")
print (tup) # 会报错
(4).元组运算符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组
(5).元组内置函数
- len(tuple) 计算元组元素个数。
>>> tuple1 = ('Google', 'Runoob', 'Taobao')
>>> len(tuple1)
3
>>>
- max(tuple) 返回元组中元素最大值。
>>> tuple2 = ('5', '4', '8')
>>> max(tuple2)
'8'
>>>
- min(tuple) 返回元组中元素最小值。
>>> tuple2 = ('5', '4', '8')
>>> min(tuple2)
'4'
>>>
- tuple(iterable) 将可迭代系列转换为元组。
>>> list1= ['Google', 'Taobao', 'Runoob', 'Baidu']
>>> tuple1=tuple(list1)
>>> tuple1
('Google', 'Taobao', 'Runoob', 'Baidu')
五:字典
字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中
d = {key1 : value1, key2 : value2, key3 : value3 }
键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
dict0 = { 'name': 'eyes++', 'age': 1, 'height': '180cm'}
dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }
(1).访问字典里的值
把相应的键放入到方括号中
dict = {'Name':'eyes++', 'Age':1, 123:456}
print("dict['Name']:", dict['Name']) # dict['Name']: eyes++
print("dict['Age']:", dict['Age']) # dict['Age']: 1
print("dict[123]:", dict[123]) # dict[123]: 456
(2).修改字典
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8 # 更新 Age
dict['School'] = "菜鸟教程" # 添加信息
print ("dict['Age']: ", dict['Age']) # dict['Age']: 8
print ("dict['School']: ", dict['School']) # dict['School']: 菜鸟教程
(3).删除字典元素
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dict['Name'] # 删除键 'Name'
dict.clear() # 清空字典
del dict # 删除字典
print ("dict['Age']: ", dict['Age']) # 报错
print ("dict['School']: ", <以上是关于python基础汇总的主要内容,如果未能解决你的问题,请参考以下文章