Python学习

话不多说,进入正题。

一、Python 安装(Windows 64位)

1.进入官网,下载Python。目前最高版本为 3.10.4

Download Python | Python.org

2.安装过程

        网上教程很多,这里不作赘述。

二、编写第一个Python程序

        在完成上述Python安装后,进入CMD命令界面,输入python即可编写程序。

在命令行界面输入:

print("Hello,World")

这样,第一个py程序就完成了!

三、Python解释器

        它是一个计算机程序,它的作用就是用来将“print(xxx)...”等代码翻译成0101001的二进制数据,让计算机再执行。python解释器的安装位置在 <python安装目录>/python.exe。CMD上打开此程序的命令就是“python”。如下图所示:

         还可以将上述代码放在一个文件中,文件格式为"xxx.py"。在CMD中使用命令 python D:/xxx/xxx.py

 三、Python基础语法

1.字面量:像下面这样的数据都是字面量

"xxxx"
123
12.6

固定的值,称之为字面量

2.数据类型

类型描述说明
数字(Number)

整数 => int

浮点数 => float

复数 =>complex

布尔 =>bool

整数:0 ,-1,23
浮点数:13.14
复数:4+6j,j表示复数

布尔类型:True => 1

False => 0

字符串(String)描述文本的一种数据类型可以用  "xxx" 、""" xxx """、'xxx' 表示字符串
列表
元组
集合
字典

可以使用 type()  查看数据的类型。

3.注释的写法

单行注释
# sadasd

多行注释
"""
dsad
asdsads
"""

注意: 

# 单行注释内可以使用多行注释

# 多行注释内可以使用单行注释、

# 多行多行注释内不可以使用多行注释。

4.变量

        在程序运行时,能存储计算结果或能表示值得抽象概念。

变量名 = 变量值 

5.数据类型之间转换

常用的转换函数有 int(x),float(x),str(x)

string = '2344'

integer = int(string) # 将字符串 2344 转化为  integer类型

6. 标识符

给变量、方法、类等命令的值成为标识符。

例如:name = ‘aa’、sum=1+1...中的”name“、”sum“就是标识符。

其中重要的就是命名规则,如下所示:

内容限定:A-Z、a-z、0-9、”_“、中文;(数字不能开头)

大小写敏感:Andy、andy是不一样的;

不可使用关键字:False、for、if、while等都不允许使用;

命名规范 :

1.见名之意

2.英文字母全部小写

7.运算符

  • 算数运算符
运算符描述
+
-减法
*
/
//取整除
%取余
**指数运算符 eg:2**6 表示2的6次方

  • 赋值运算符

运算符描述
=赋值运算符
  • 复合赋值运算符

运算符描述
+=c+=a 等效于 c=c+a
-=c-a等效于c=c-a
*=c*=a等效于c=ca**
/=c/=a等效于c=c/a
%=c%=a等效于c=c%a
=**c**=a等效于c=c**a
//=c//=a等效于c=c//a

注意:Python中没有自增、自减运算符。

  • 比较运算符

运算符描述
==用于判断内容是否相等
!=用于判断内容是否不相等
>
<
>=
<=

8.字符串的定义方式:

name='aaa'

name="aaa"

name="""aaa"""

当字符串中出现单引号[ ' ' ]或双引号[ " " ]时,使用 [ \ ]来进行转义。

字符串字面量可以和字符串变量进行拼接,但是不能和其他类型拼接。

下面代码运行报错:TypeError: can only concatenate str (not "int") to str

name="aaa" age=12
​
print("name = "+name+", 今年"+age+"岁")

9.字符串格式化(方法一)

name = "xxx"
print("xxxx %s" % name)
%s 表示一种字符串类型的格式占用符号,由name的值来替换%s的位置。

当有多个占位变量时,变量要使用括号,并按照顺序填入。

常见的格式符号

格式符号转化
%s字符串类型格式符
%d整数类型格式符
%f浮点类型格式符

精度控制

m . n

m:整体宽度,宽度需要大于等于 数字的长度,否则无效。

%m.n d:长度不足的在前面补充空格。

%m.n f :长度不足的在小数末尾补0,n省略时,表示只保留整数部分,四舍五入;m省略时,表示不限宽度。

n:小数点保留位数,会进行四舍五入处理。

例子:

f1=12.849
​
print("12.849格式化后为:%8.2f" % f1)
运行结果:12.849格式化后为:  12.85
可以看到,小数点也算作一位。

10.字符串格式化(方法二)

print(f "xxx{变量1}xxx{变量2}")

但这种方法不做精度控制,不理会类型。

四、判断语句格式

if xxx :
    xxx
elif xxx :
    xxx
else:
    xxx

五、循环语句格式

while 循环:

while xxx:
    xxx
    xxx

for 循环

#方式一:
for xxx in xxx:
    xxxx
    continue
    break
#方式二:
for xxx in range(1,10,2):
    xxx
    continue
    break

range(A,B,C)表示 [A,B),C表示步长

range(1,99,2)表示[1,3,5,7,...,97]集合。

六、函数

函数:可以被重复使用,用来实现特定功能的代码段。

格式:

def 函数名(参数)
    """
    函数注释部分
    :param x:
    :param y:
    :return:
    """
    函数体
    #函数也可以没有return语句
    return 返回值1,返回值2
​

  当函数没有返回值,且有变量接受此函数时(例如name=test() ),那么该变量(name)的值为 None,类型为 NoneType,     None可以在定义变量的时候使用,例如 name=None,需要的时候再赋值。

变量的作用域:

局部变量:定义在函数体内部的变量

局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量

全局变量:指的是在函数体内、外都能生效的变量

        当局部变量和全局变量冲突时,可以使用global关键字,使用此关键字可以在函数内部声明变量全局变量

integer=1
def test1() :
    global integer#此时的integer就是全局变量的integer=1
    integer+=9
test1()
print(integer)
#结果:10

七、数据容器

数据容器是指能够存储多个元素的数据类型

  • 列表 list

  • 元组 tuple

  • 字符串 str

  • 集合 set

  • 字典 dict

列表

#字面量
[1,1.2,"aaa",{"name":"张飞"}]
#定义列表变量
list_data = [1,1.2,"aaa",{"name":"张飞"}]
#定义空列表
#方式一:
list1=[]
#方式二:
list2=list()
特点:
  1. 支持下标获取元素,左边下标从0开始,右边下标从-1开始

  2. 可以容纳不同类型的元素

  3. 增加、删除、修改某个元素

  4. 数据在逻辑上是有序排列的,可以有重复元素

常用函数:

编号使用方式作用
1列表.append(元素)向列表中追加一个元素
2列表.extend(容器)将数据容器的内容依次取出,追加到列表尾部
3列表.insert(下标, 元素)在指定下标处,插入指定的元素
4del 列表[下标]删除列表指定下标元素
5列表.pop(下标)删除列表指定下标元素
6列表.remove(元素)从前向后,删除此元素第一个匹配项
7列表.clear()清空列表
8列表.count(元素)统计此元素在列表中出现的次数
9列表.index(元素)查找指定元素在列表的下标找不到报错ValueError
10len(列表)统计容器内有多少元素

元组

#字面量
(1,1,1.2,"aaa",{"name":"张飞"})
#定义元组变量
tuple1=(1,1,1.2,"aaa",{"name":"张飞"})
#定义空元组
#方式一
tuple2=()
#方式二
tuple3=tuple()
特点:
  1. 数据不可以增加、删除、修改

  2. 可以容纳不同数据类型

  3. 支持下标索引

  4. 允许重复数据存在

常用函数:

编号使用方式作用
1index()查找某个数据,如果存在返回下表,否则报错
2count()统计某个数据在当前元组出现的次数
3len(元组)统计某个元组内的元素个数

字符串

特点:

  1. 只可以存储字符

  2. 支持下标索引,正向、反向均可

  3. 不可以修改

常用函数:

编号操作说明
1字符串[下标]根据下标索引取出特定位置字符
2字符串.index(字符串)查找给定字符的第一个匹配项的下标
3字符串.replace(字符串1, 字符串2)将字符串内的全部字符串1,替换为字符串2不会修改原字符串,而是得到一个新的
4字符串.split(字符串)按照给定字符串,对字符串进行分隔不会修改原字符串,而是得到一个新的列表
5字符串.strip()字符串.strip(字符串)移除首尾的空格和换行符或指定字符串
6字符串.count(字符串)统计字符串内某字符串的出现次数
7len(字符串)统计字符串的字符个数

以上三类数据类型也被称为序列。序列的特征是元素在容器中是顺序的 ,可以通过下标来获取对应的元素。

序列切片:

my_list=[1,2,3,4,5,6]
#下标1开始,下标4(不含)结束,步长1
newlist1=my_list[1:4]           #结果:[2, 3, 4]
# 从头开始,到最后结束,步长1
newlist2=my_list[:]             #结果:[1, 2, 3, 4, 5, 6]
# 从头开始,到最后结束,步长2
newlist3=my_list[::2]           #结果:[1, 3, 5]
# 从头(最后)开始,到尾结束,步长-1(倒序)
newlist4=my_list[::-1]          #结果:[6, 5, 4, 3, 2, 1]
# 从下标3开始,到下标1(不含)结束,步长-1(倒序)
newlist5=my_list[3:1:-1]        #结果:[4, 3]
# 从头(最后)开始,到下标1(不含)结束,步长-2(倒序)
newlist6=my_list[:1:-1]         #结果:[6, 5, 4, 3]
​

集合

#字面量
{1,1,1.2,"tomSmith"}
#定义集合变量
set1={1,1,1.2,"tomSmith"}
#定义空集合
set2=set()

特点:

  1. 可以容纳不同类型数据

  2. 数据之间是没有顺序的,不支持下标的方式索引

  3. 不允许重复元素存在

  4. 可以增加、删除元素

常用函数:

编号操作说明
1集合.add(元素)集合内添加一个元素
2集合.remove(元素)移除集合内指定的元素
3集合.pop()从集合中随机取出一个元素
4集合.clear()将集合清空
5集合1.difference(集合2)得到一个新集合,内含2个集合的差集原有的2个集合内容不变
6集合1.difference_update(集合2)在集合1中,删除集合2中存在的元素集合1被修改,集合2不变
7集合1.union(集合2)得到1个新集合,内含2个集合的全部元素原有的2个集合内容不变
8len(集合)得到一个整数,记录了集合的元素数量

字典

特点:
#字面量
{"name":"Tom","age":14,"sex":"boy"}
#定义字典变量
dict1={"name":"Tom","age":14,"sex":"boy"}
#定义空字典
#方式一
dict2={}
#方式二
dict3=dict()
  1. 不允许重复

  2. 可以使用key来检索value

  3. 可以容纳不同类型的数据

  4. 增加、删除、修改都可以

  5. Python3.6之前,数据之间是无序的,3.6开始dict的插入变为有序,插入a,b,c返回结果就是a,b,c

常用函数:

编号操作说明
1字典[Key]获取指定Key对应的Value值
2字典[Key] = Value添加或更新键值对
3字典.pop(Key)取出Key对应的Value并在字典内删除此Key的键值对
4字典.clear()清空字典
5字典.keys()获取字典的全部Key,可用于for循环遍历字典
6len(字典)计算字典内的元素数量

总结

五种数据容器对比:

** **列表元组字符串集合字典
元素数量支持多个支持多个支持多个支持多个支持多个
元素类型任意任意仅字符任意Key:ValueKey:除字典外任意类型Value:任意类型
下标索引支持支持支持不支持不支持
重复元素支持支持支持不支持不支持
可修改性支持不支持不支持支持支持
数据有序从python3.6开始,dict的插入变为有序,即字典整体变的有序
使用场景可修改、可重复的一批数据记录场景不可修改、可重复的一批数据记录场景一串字符的记录场景不可重复的数据记录场景以Key检索Value的数据记录场景

容器通用操作:

功能描述
通用for循环遍历容器(字典是遍历key)
max容器内最大元素
min()容器内最小元素
len()容器元素个数
list()转换为列表
tuple()转换为元组
str()转换为字符串
set()转换为集合
sorted(序列, [reverse=True])排序,reverse=True表示降序得到一个排好序的列表

八、函数进阶

函数多返回值

示例:

def test():
    return 1,2
​
x,y = test()

函数传参方式

  1. 位置传参:调用函数时根据函数定义的参数位置来传递参数,注意:传递的参数和定义的参数的顺序及个数必须一致

    例如:

def test1(id,name,age):
    print(f"id={id},age={age},name={name}")
#位置传参
test1(1,"aaa",12)

     2.关键字传参:函数调用时通过“键=值”形式传递参数.

  1. 
    def test1(id,name,age):
        print(f"id={id},age={age},name={name}")​
    ​
    # 关键字参数
    test1(name="asds",id='2',age=12)
    test1(id='2',age=12,name="asds")
    # 关键字参数 & 位置参数 :位置参数放在前面
    test1(2,name="asds",age=12)

        函数调用时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序。

     1.缺省参数:也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值(注意:所有位置参数必须出现在默认参数前,包括函数定义和调用).

# 缺省参数
def test2(name,age ,sex="男"):
    print("缺省参数展示:")
    print(f"您的名字是{name},年龄是{age},性别是{sex}")
test2("张飞",22)

        2.不定长参数:不定长参数也叫可变参数. 用于不确定调用的时候会传递多少个参数(不传参也可以)的场景.

不定长参数的类型:

①位置传递:传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是 元组类型,这就是位置传递。

②关键字传递:参数是“键=值”形式的形式的情况下, 所有的“键=值”都会被kwargs接受, 同时会根据“键=值”组成字典.

#位置传递 agrs = 元组类型
def test3(*args):
    print(type(args))
    print(args)
test3("asdd","bbb",'c',12.30)
test3("ccc","ddd",'eee',12.30)
#关键字传递 agrs = 字典类型
def test4(**args):
    print(type(args))
    print(args)
test4(name ="tom",age=18,id=110)

 函数作为参数传递 & lambda匿名函数

#函数作为参数传递
def test5(test6):
    print(test6(12,23))
​
def test6(a,b):
    return a,b
test5(test6)
#lambda匿名函数
test5(lambda x,y: x+y )

九、文件操作

相关函数

1.open(name,mode,encoding)

name :   要打开的目标文件位置字符串(绝对路径、相对路径均可)

mode :设置打开文件的模式(访问模式):常用的有r(只读),w(写入),a(追加操作)

具体描述如下:

模式描述
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被删除。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

encoding  :  编码格式

示例代码:

#打开相对路径文件
f=open("test1.txt","r",encoding="UTF-8")
#打开绝对路径文件
f=open("C:\\Users\\tomzz\\Desktop\\test1.txt","r",encoding="UTF-8")

2.read(num)

num:读取的字符数量,如果省略,那么就表示读取所有字符。

3.readlines()

按照行的方式把整个文件中的内容进行一次读取,并且返回的是一个列表。

示例:

f=open('python.txt',"r",encoding="UTF-8")
content=f.readlines()
print(content)
f.close()

4.readline()

一次读取一行内容

5.for循环读取文件行

for line in open("python.txt","r")
    print(line)
#每一个line临时变量,就记录了文件的一行数据
6.close()

关闭对文件的占用

7.with open()

该语句执行后会自动关闭当前文件。

示例:

with open("test1.txt","r") as f
    content=f.readlines()
8.文件写入相关函数
f.write('xxxx')
​
f.flush()
注意:
  1. 直接调用wirite,内容并未真正写入文件,而是会积攒在程序的内存中(缓冲区)

  1. 当调用flush时候,内容会正真写入到文件中。

十、异常处理

异常:

基本语法:

try:
    可能发生错误的代码
except:
    如果出现异常执行的代码
#或者
except NameError as e:#注意:尝试执行的代码的异常类型和要捕获的异常类型一致,否则无法捕获异常。
    print("xxxx")
#或者 捕获所有异常信息
except Exception as e:
    print(e)
else:
    print("xxx") #没有异常时候执行的代码
finally:
    xxx #无论异常都要执行的部分

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值