python基础复习

小编 2026-06-09 阅读:1405 评论:0
我学习python已有半年,但是中途因为只看不复习,导致很多前面的只是都快忘光了,最近还在学前端方面的知识,我想通过一周的时间对我以前所学的python知识复习加深,同时也希望可以给小伙伴们给与帮助(因为这...

我学习python已有半年,但是中途因为只看不复习,导致很多前面的只是都快忘光了,最近还在学前端方面的知识,我想通过一周的时间对我以前所学的python知识复习加深,同时也希望可以给小伙伴们给与帮助(因为这个主要是为我复习,所以一些基本的非常简单的东西我就不写了,只写概念性的东西)。

今天是18年12月22日,我主要复习一些基本要点和面试题,主要的面试题我会总结到另一个博客上。现在主要复习python基础。

python简介

为什么学python而不是其他编程语言?

C 和 Python、Java、C#等

    C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作

其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行

Python 和 C  Python这门语言是由C开发而来

  对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
  对于速度:Python的运行速度相较与C,绝逼是慢了

Python 和 Java、C#等

  对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
  对于速度:Python在速度上可能稍显逊色

所以,Python和其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。

Python解释器种类以及特点?

Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释器:

CPython

当 从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解释器:Cpython,这个解释器是用C语言开发的,所以叫 CPython,在命名行下运行python,就是启动CPython解释器,CPython是使用最广的Python解释器。

IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的,好比很多国产浏览器虽然外观不同,但内核其实是调用了IE。

PyPy

PyPy是另一个Python解释器,它的目标是执行速度,PyPy采用JIT技术,对Python代码进行动态编译,所以可以显著提高Python代码的执行速度。

Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

在Python的解释器中,使用广泛的是CPython,对于Python的编译,除了可以采用以上解释器进行编译外,技术高超的开发者还可以按照自己的需求自行编写Python解释器来执行Python代码,十分的方便!

Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释器:

CPython

当 从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解释器:Cpython,这个解释器是用C语言开发的,所以叫 CPython,在命名行下运行python,就是启动CPython解释器,CPython是使用最广的Python解释器。

IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的,好比很多国产浏览器虽然外观不同,但内核其实是调用了IE。

PyPy

PyPy是另一个Python解释器,它的目标是执行速度,PyPy采用JIT技术,对Python代码进行动态编译,所以可以显著提高Python代码的执行速度。

Jython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

在Python的解释器中,使用广泛的是CPython,对于Python的编译,除了可以采用以上解释器进行编译外,技术高超的开发者还可以按照自己的需求自行编写Python解释器来执行Python代码,十分的方便!

python入门

运行编码

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

变量

命名规则:

  • 变量名只能是 字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 以下关键字不能声明为变量名
    [\'and\', \'as\', \'assert\', \'break\', \'class\', \'continue\', \'def\', \'del\', \'elif\', \'else\', \'except\', \'exec\', \'finally\', \'for\', \'from\', \'global\', \'if\', \'import\', \'in\', \'is\', \'lambda\', \'not\', \'or\', \'pass\', \'print\', \'raise\', \'return\', \'try\', \'while\', \'with\', \'yield\']
  • 变量的定义要具有可描述性

个人推荐下划线这种的。 list_name

基础数据类型

怎样知道一个变量的类型呢?

  • 在python中,只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要咱们开发者主动的去说明它的类型,系统会自动辨别
  • 可以使用type(变量的名字),来查看变量的类型

\"\"

 

 

基本运算符 

  • 算术运算符

下面以a=10 ,b=20为例进行计算

运算符 描述 实例
+ 两个对象相加 a + b 输出结果 30
- 得到负数或是一个数减去另一个数 a - b 输出结果 -10
* 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ x除以y b / a 输出结果 2
// 取整除 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
% 取余 返回除法的余数 b % a 输出结果 0
** 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
>>> 9/2.0
4.5
>>> 9//2.0
4.0
  • 逻辑运算符

\"\"

1,在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>not>and>or,同一优先级从左往右计算。

2 ,  x or y , x为真,值就是x,x为假,值是y;

           x and y, x为真,值是y,x为假,值是x。

  • 赋值运算符
运算符 描述 实例
= 赋值运算符 把=号右边的结果给左边的变量 num=1+2*3 结果num的值为7
>>> a, b = 1, 2
>>> a
1
>>> b
2
  • 复合赋值运算符
运算符 描述 实例
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a

判断语句和循环语句 

 

if-elif-else的使用格式

if 条件:
    满足条件执行代码
elif 条件:
    上面的条件不满足就走这个
elif 条件:
    上面的条件不满足就走这个
elif 条件:
    上面的条件不满足就走这个    
else:
    上面所有的条件不满足就走这段

 while循环

  while 条件:
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...

for循环

     name = \'dongGe\'

      for x in name:
          print(x)

 

break和continue 

    break:终止循环。

    continue:跳过此次循环,执行下一次

 

 

字符串

2.3.1、字符串的索引与切片。

 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。

a = \'ABCDEFGHIJK\'
print(a[0])
print(a[3])
print(a[5])
print(a[7])

切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。

a = \'ABCDEFGHIJK\'
print(a[0:3] 
print(a[2:5])
print(a[0:]) #默认到最后
print(a[0:-1]) # -1 是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到K元素
print(a[0:5:2]) #加步长
print(a[5:0:-2]) #反向加步长

字符串常用方法  

#captalize,swapcase,title
print(name.capitalize()) #首字母大写
print(name.swapcase()) #大小写翻转
msg=\'taibai say hi\'
print(msg.title()) #每个单词的首字母大写

# 内同居中,总长度,空白处填充
ret2 = a1.center(20,\"*\")  
print(ret2)

#数字符串中的元素出现的个数。
# ret3 = a1.count(\"a\",0,4) # 可切片
# print(ret3)


a4 = \"dkfjdkfasf54\"
#startswith 判断是否以...开头
#endswith 判断是否以...结尾
# ret4 = a4.endswith(\'jdk\',3,6)  # 顾头不顾腚
# print(ret4)  # 返回的是布尔值
# ret5 = a4.startswith(\"kfj\",1,4)
# print(ret5)

#寻找字符串中的元素是否存在
# ret6 = a4.find(\"fjdk\",1,6)
# print(ret6)  # 返回的找到的元素的索引,如果找不到返回-1

# ret61 = a4.index(\"fjdk\",4,6)
# print(ret61) # 返回的找到的元素的索引,找不到报错。

#split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。
# ret9 = \'title,Tilte,atre,\'.split(\'t\')
# print(ret9)
# ret91 = \'title,Tilte,atre,\'.rsplit(\'t\',1)
# print(ret91)

#format的三种玩法 格式化输出
res=\'{} {} {}\'.format(\'egon\',18,\'male\')
res=\'{1} {0} {1}\'.format(\'egon\',18,\'male\')
res=\'{name} {age} {sex}\'.format(sex=\'male\',name=\'egon\',age=18)

#strip
name=\'*barry**\'
print(name.strip(\'*\')) 
print(name.lstrip(\'*\'))
print(name.rstrip(\'*\'))

#replace
name=\'alex say :i have one tesla,my name is alex\'
print(name.replace(\'alex\',\'SB\',1))

#####is系列
name=\'taibai123\'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成

元组 

元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。例:(1,2,3)(\"a\",\"b\",\"c\")

列表

列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:

li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]

列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

li = [1,\'a\',\'b\',2,3,\'a\']
# li.insert(0,55) #按照索引去增加
# print(li)
#
# li.append(\'aaa\') #增加到最后
# li.append([1,2,3]) #增加到最后
# print(li)
#
# li.extend([\'q,a,w\']) #迭代的去增
# li.extend([\'q,a,w\',\'aaa\'])
# li.extend(\'a\')
# li.extend(\'abc\')
# li.extend(\'a,b,c\')
# print(li)

列表的增

# l1 = li.pop(1) #按照位置去删除,有返回值
# print(l1)

# del li[1:3] #按照位置去删除,也可切片删除没有返回值。
# print(li)

# li.remove(\'a\') #按照元素去删除
# print(li)

# li.clear() #清空列表

列表的删

# 改
# li = [1,\'a\',\'b\',2,3,\'a\']
# li[1] = \'dfasdfas\'
# print(li)
# li[1:3] = [\'a\',\'b\']
# print(li)

列表的改

切片去查,或者循环去查 

其他操作

count(数)(方法统计某个元素在列表中出现的次数)。

1 a = [\"q\",\"w\",\"q\",\"r\",\"t\",\"y\"]
2 print(a.count(\"q\"))

index(方法用于从列表中找出某个值第一个匹配项的索引位置)

1 a = [\"q\",\"w\",\"r\",\"t\",\"y\"]
2 print(a.index(\"r\"))

sort (方法用于在原位置对列表进行排序)。

 reverse (方法将列表中的元素反向存放)。

1 a = [2,1,3,4,5]
2 a.sort()# 他没有返回值,所以只能打印a
3 print(a)
4 a.reverse()#他也没有返回值,所以只能打印a
5 print(a)

字典dict

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

  字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

# dic[\'li\'] = [\"a\",\"b\",\"c\"]
# print(dic)
# setdefault 在字典中添加键值对,如果只有键那对应的值是None,但是如果原字典中存在设置的键值对,则他不会更改或者覆盖。
# dic.setdefault(\'k\',\'v\')
# print(dic)  # {\'age\': 18, \'name\': \'jin\', \'sex\': \'male\', \'k\': \'v\'}
# dic.setdefault(\'k\',\'v1\')  # {\'age\': 18, \'name\': \'jin\', \'sex\': \'male\', \'k\': \'v\'}
# print(dic)

字典的增

# dic_pop = dic.pop(\"a\",\'无key默认返回值\') # pop根据key删除键值对,并返回对应的值,如果没有key则返回默认返回值
# print(dic_pop)
# del dic[\"name\"]  # 没有返回值。
# print(dic)

# dic_pop1 = dic.popitem()  # 随机删除字典中的某个键值对,将删除的键值对以元祖的形式返回
# print(dic_pop1)  # (\'name\',\'jin\')

# dic_clear = dic.clear()  # 清空字典
# print(dic,dic_clear)  # {} None

字典的删

# dic = {\"name\":\"jin\",\"age\":18,\"sex\":\"male\"}
# dic2 = {\"name\":\"alex\",\"weight\":75}
# dic2.update(dic)  # 将dic所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic2中
# print(dic2)

 查

# value1 = dic[\"name\"]  # 没有会报错
# print(value1)
#
# value2 = dic.get(\"djffdsafg\",\"默认返回值\")  # 没有可以返回设定的返回值
# print(value2)

其他操作

# item = dic.items()
# print(item,type(item))  # dict_items([(\'name\', \'jin\'), (\'sex\', \'male\'), (\'age\', 18)]) <class \'dict_items\'>
# 这个类型就是dict_items类型,可迭代的

# keys = dic.keys()
# print(keys,type(keys))  # dict_keys([\'sex\', \'age\', \'name\']) <class \'dict_keys\'>

# values = dic.values()
# print(values,type(values))  # dict_values([\'male\', 18, \'jin\']) <class \'dict_values\'> 同上

 

 

 

 

 

 

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表