Python概述与基础

Posted 礁之

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python概述与基础相关的知识,希望对你有一定的参考价值。

文章目录

一、 Python变量与数据类型

  • Python是一种动态解释型的编程语言
  • 要想使用python,可以使用python自带的IDLE编辑器,也可以下载PyCharm、VScode等

1.变量概述

  • 变量是存储在内存中的值,而这就意味着在创建变量时会在内存中开辟一个空间基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中,因此,变量可以指定不同的数据类型,如字符串、数字、列表、字典甚至函数

  • 变量名是由字母、数字、下划线组成的,第一个字符必须是字母或者下划线_

  • 使用变量可以提高代码的可读性,便于修改

  • Python中的变量赋值不需要类似声明,每个变量都在内存中创建,包括变量的的标识、名称、数据等信息,每个变量在使用前都必须赋值,变量赋值以后这个变量才会被创建

  • 在Python中“=”用来给变量赋值,变量名=变量值,例如:

>>> a = "hello world" 
>>> print(a)  
hello world

2.创建变量

#创建合法的变量名称
>>> a =1 
>>>print(a)  #print()是打印,即shell中的echo
1
>>> _a =2
>>> print(_a)
2
>>> a1 = 3
>>> print(a1)
3

#可以同时指定多个变量名进行赋值
>>> a,b,c = 1,2,3
>>> print(a)
1
>>> print(b,c)
2 3

3.Python3常用的数据类型

类型作用
数字(Numbers)数字类型数据用于存储数值,他们是不可改变的数据类型,这意味着改变数字类型会分配一个新的对象,当你指定一个值时,Numbers类型的对象就会被创建,数字类型在输入时,直接输入数字即可,如55,无需加引号等
字符串(String)字符串或串是由数字、字母、下划线组成的一串字符,在给变量赋值时加双引号" "或单引号' '就是字符串类型
列表(List)Python中使用最频繁的数据类型,列表可以完成大多数集合类的数据结构,支持字符、数字、字符串,也可以嵌套,在列表中包含列表,使用`[ ]创建列表
元组(Tuple)元组是另一个数据类型,类似于列表,但是不能二次赋值,相当于只读列表,使用()创建元组
字典(Dictionary)字典是除了列表以外,Python中最灵活的内置数据结构类型,使用 创建字典
  • 列表是有序的对象集合,而字典是无序的对象集合

  • 两者的区别在于:

    (1)字典中的元素是通过键来存取的,也就是键值对的方式Key-Value,而不是通过偏移存取

    (2)列表只是简单的存放多个变量值,字典相当于是"在字典中又创建了变量"

  • 还有一种类型是集合(set),集合是无序的对象集合,集合中没有重复的元素,通常用来去重等,使用 来创建,不过和字典不同的是不需要使用来定义key和value,与列表一样的去定义元素即可

3.1.数字(Numbers)

3.1.1.数字的数据类型也分成了很多种类型:

整型(int): 也就是整数

浮点型(float): 带小数点的数字

布尔型(bool): 用于逻辑运算,只有true和false,即真和假

复数(complex): 复数由实部(real)和虚部(imag)构成,在 Python 中,复数的虚部以j或者J作为后缀,,如1+2j、1.1+2.2J

3.1.2.Python运算符:

算法运算符
加法+
减法-
乘法*
除法/
求模,取余%
求幂,即求次方,2**2即2的2次方**

先乘除后加减,有小括号就先算小括号,注意:Python是不支持自增运算符++和自减运算符–的

3.1.3.整型、浮点型、布尔型

>>> x = 123   #整型
>>> print(x)
123


>>> y = 1.12  #浮点型
>>> print(y)
1.12


>>> a = True  #布尔型true
>>> print(a)
True
>>>if(a):  #使用if语句反段,符合if语句的条件,就输出下面的语句,因为a为布尔型true,所以始终为真,也就是始终符合条件
...    print("为真")
...    
为真


>>> b = False #布尔型false
>>> if(b):  #如果b符合条件,则输出为真,否则输出为假,因为b是布尔型false,所以始终为假,也就是始终为假
...    print("为真")
... else:    
...    print("为假")
...   
为假

3.1.4.变量标识符

变量标识符就像是变量的“身份证”,具有唯一性

>>> print(id(x))  #查看x变量的标识符
2774440106160

>>> print(id(y))  #查看y变量的标识符
2774486777776

3.1.5.Python运算符

>>> x,y = 2,4     #赋值变量x和y的值分别是2和4
>>> print(x+y,y-x,x*y)  #加、减、乘算法
6 2 8

>>> print(4/2,2**4)  #除、求幂算法
2.0 16

>>> print(8%5)  #取余算法,8除5余3
3

3.2.字符串(String)

  1. python中单引号和双引号使用完全相同
  2. 使用三引号'''""")可以指定一个多行字符串
  3. 转义符 \\
  4. 反斜杠可以用来转义,使用r可以让反斜杠不发生转义,如 r"this is a line with \\n"\\n会作为普通字符显示,而不是作为换行符
  5. 按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string
  6. 字符串可以用 + 运算符连接在一起,用 * 运算符重复
  7. Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始,与列表相同
  8. Python中的字符串不能改变
  9. Python 没有单独的字符类型,一个字符就是长度为 1 的字符串

3.2.1.单引号、双引号、三引号

>>> name = '亚索'  #单引号
>>> print(name)
亚索

>>> age = "34岁"   #双引号
>>> print(age)
34>>> aihao = """    #三引号
耍剑
喝酒
"""
>>> print(aihao)
耍剑
喝酒

3.2.2.转义符

>>> aaa = "aa'gao'"   
>>> print(aaa)
aa'gao'
>>> bbb = ' aaa"ccc"'
>>> print(bbb)
 aaa"ccc"
>>> ccc = 'abc\\'ccc' #转义'为普通字符
>>> print(ccc)
abc'ccc

3.2.3.常用转义符

转义符作用
\\在行尾时使用,为续航符,也就是换行符
\\\\这个含义是指把\\转义成普通字符
\\’把’转义成普通字符
\\"把“转义成普通字符
\\n换行符,把光标移动到下一行继续
\\v纵向制表符,将光标向下移动一个制表符单位
\\t水平制表符,将光标向右移动一个制表符单位
\\r代表一个回车

3.2.4.字符串的其他用法

#+号可以当作字符串的连接字符,而*号可以是重复操作
>>> print("aaa" + "bbb")
aaabbb
>>> print(3*"aaa")
aaaaaaaaa

#新建一个新的.py文件,写入:
a = ' '
print("欢迎来到,英雄联盟")
print(a*2+"欢迎来到,英雄联盟")
print(a*4+"欢迎来到,英雄联盟")
欢迎来到,英雄联盟
  欢迎来到,英雄联盟
    欢迎来到,英雄联盟
#a为一个空,利用*号可以使空重复操作变成多个,然后就可以实现上面的效果

3.3.列表(list)

3.3.1.列表的定义

#列表其实就是一个变量有多个变量值,但是这个变量值叫做元素,所以也叫做,一个列表中有多个元素,使用[]来表示列表
>>> a = ["1","2","3"]
>>> print(a)
['1', '2', '3']

3.3.2列表的取值

#列表有两种取值顺序:
1.从左到右索引默认从0开始,最大范围是字符串长度-1,这个0和shell的位置变量有点像
2.从右到左的索引默认从-1开始,最大范围是字符串开头
>>> a = ["1","2","3"]
>>> print(a)
['1', '2', '3']
>>> print(a[0])
1
>>> print(a[1])
2
>>> print(a[2])
3
>>> print(a[-1])
3
>>> print(a[-2])
2
>>> print(a[-3])
1
>>> print(a[0:2])   #从0开始到2位置结束
['1', '2']
>>> print(a[0:3])
['1', '2', '3']
>>> print(a[0:1])
['1']
>>> a[0]=4   #修改a列表中0位置为4
>>> print(a)  
[4, '2', '3']
>>> a.append(5)  #在a列表末尾添加5
>>> print(a)
[4, '2', '3', 5]
>>> a.insert(1,6)  #在a列表的1位置后添加6
>>> print(a)
[4, 6, '2', '3', 5]

3.3.3.删除列表元素

>>> print(a)
[4, 6, '2', '3', 5]
>>> del a[0]    #删除a列表中的0位置的元素
>>> print(a)
[6, '2', '3', 5]

3.3.4.查找列表元素

>>> print(a)
[6, '2', '3', 5]
>>> 6 in a      #查看a列表中是否有6,有就返回True没有就返回False
True
>>> 8 in a
False

3.3.5.合并列表

>>> a = ["nihao","shijie"]
>>> b = ["hello","world"]
>>> c = a + b   #利用+号,来合并列表,变量也可以这样使用
>>> print(c)
['nihao', 'shijie', 'hello', 'world']
>>> d = b + a
>>> print(d)
['hello', 'world', 'nihao', 'shijie']
>>> print(a*3)   #利用*号,来重复列表
['nihao', 'shijie', 'nihao', 'shijie', 'nihao', 'shijie']

3.3.6.列表常见问题

>>> print(a)
[1, 2, 3]
>>> print(a[6])     #不能直接查看超过列表元素总数的值
Traceback (most recent call last):
  File "<input>", line 1, in <module>
IndexError: list index out of range
>>> print(a[1:6])    #但是可以指定范围查看
[2, 3]
>>> print(a[0:-1])   #指定范围时,可以同时使用正数和负数进行索引
[1, 2]

3.3.7.嵌套列表

#列表中也可以是列表,是可以无限嵌套的
>>> a = [[1,2,3],"aaa",[4,5,6]]
>>> print(a)
[[1, 2, 3], 'aaa', [4, 5, 6]]
>>> print(a[0])  #查看a列表中的第0个位置的元素
[1, 2, 3]
>>> print(a[0][0])  #查看a列表中第0个位置元素的第0个位置的元素
1

3.3.8.字符串转列表

str1 = "12345"
list1 = list(str1)
print list1

str2 = "123 sjhid dhi"
list2 = str2.split() #or list2 = str2.split(" ")  #以“空”为分割来切割字符串生成列表
print list2

str3 = "www.google.com"
list3 = str3.split(".")  #以“.”为结果分割
print list3

结果如下:

['1', '2', '3', '4', '5']
['123', 'sjhid', 'dhi']
['www', 'google', 'com']

3.3.9.反转列表元素

a=[1,2,3,4]
b=a[-1::-1]   #第一个-1表示从4开始,::表示移动到列表末尾,也就是移动到1,第二个-1表示逆向
print(b)

#输出结果
[4, 3, 2, 1]

3.4.元组(Tuple)

  • 元组类似于一个只读列表,写入元素后,元组中的元素是不可变的,操作速度比列表要快,安全性更强,使用()来创建元组

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表

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

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

3.4.1元组的创建和删除

>>> a = (1,2,3)
>>> print(a)
(1, 2, 3)
>>> a[0] = 4  #元组的元素不能修改,会报错
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> del a    #在删除元组时,只能全部删除,不能指定删除某个元素
>>> print(a)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'a' is not defined

3.4.2.元组和列表的互相转换

>>> a = [1,2,3]
>>> b = (1,2,3)
>>> c = list(b)  #转换时,需要重新定义变量
>>> print(c)
[1, 2, 3]
>>> print(type(c))  #查看c变量的类型,发现是列表
<class 'list'>
>>> d = tuple(a)  #把a列表变成元组,并且重新定义变量成d
>>> print(d)
(1, 2, 3)
>>> print(type(d))
<class 'tuple'>

3.5.集合(Set)

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

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

可以使用大括号 或者是set( )函数创建集合,要注意的是,创建一个空集合必须使用set( ),因为 使用来创建一个空字典的

创建格式:

a = value1,value2,...
set(value)

3.5.1.集合的创建

a = 'aaa','bbb','ccc','ddd'
print(a)
print(type(a))

输出结果:
'aaa', 'ddd', 'bbb', 'ccc'
<class 'set'>
b=set("aaaa5cccddd")
print(b)
print(type(b))

输出结果:
'a', 'd', 'c', '5'
<class 'set'>

3.5.2.成员测试

a = 'aaa','bbb','ccc','ddd'
if 'aaa' in a:
    print("aaa在a集合中")
else:
    print("aaa不在a集合中")
    
输出结果:
aaa在a集合中

3.5.3.集合运算

a = set('abracadabra')
b = set('alacazam')
print(a)
print(b)
print(a - b)   #a和b的差集
print(a | b)   #a和b的并集
print(a & b)   #a和b的交集
print(a ^ b)   #a和b中不同时存在的元素

输出结果:
'b', 'r', 'd', 'c', 'a'
'l', 'z', 'm', 'c', 基于Python OpenCV的车牌识别智能计费系统设计

Android平台车牌识别开发手册

基于深度学习的中文车牌识别与管理系统(含UI界面,Python代码)

Python-车牌识别

论车牌识别与电子警察关系

Python项目演练:使用深度学习自动识别车牌号附源代码