四.python基础语法

1、交互式编程

简单来说,就是直接在终端中运行解释器,而不使用文件名的方式来执行文件。 交互式编程不需要创建脚本文件,是通过Python解释器的交互模式来进行编写代码。Python解释器它能对输入的Python代码进行解释和执行。进入创建的文件所在的路径针对使用Python代码编写的文件进行解释 在cmd命令行中输入Python命令即可启动交互式编程,如下图所示:

 

2、脚本式编程

通过脚本参数调用解释器开始执行脚本,直到脚本执行完毕。当脚本执行完成后,解释器不再有效。 我们写一个简单的Python脚本程序。所有Python文件将以.py为扩展名,如下图所示:

3.Python变量

3.1变量

变量是可以赋给值的标签,也可以说变量指向特定的值。 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 等号 = 用来给变量赋值。 等号 = 运算符左边是一个变量名,等号 = 运算符右边是存储在变量中的值。

变量的生命周期:当一个变量调用的时候,会在内存当中给这个变量分配地址,比如name分配zx,age分配20,当变量调用结束后,分配的内存地址也会消失。print输出

name=‘zx’ print(name) 意思是添加了一个名为name的变量。每个变量都指向一个值,与该变量相关的信息。在这里指向的值为文本‘zx’

注释:1.多行注释’‘’ 规划‘’‘ 2.单行注释# 注释之后运行不受影响

3.2查看变量的数据类型

查看一个对象(变量)的数据类型,使用的关键字是type

4种数据类型:

  • int :年龄,也就是这个变量是单纯的数字

  • str :姓名、地址等

  • bool:True/False:存储的变量表示的是真或者是假,而且这两个首字母必须是大写的

  • float :薪资,变量是带有数字的小数点

 

3.3变量的命名规则

  1. Python中的变量赋值不需要类型声明。

  2. 变量名只能包含字母、数字和下划线。变量名只能以字母或下划线打头,但不能以数字打头。可以message_1,但不能将其命名为1_message。

  3. 变量名不能包含空格,但能是用下划线来分隔其中的单词。可以greeting_message,但变量名greeting message会引发错误。

  4. 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词。

  5. 变量名应既简短又具有描述性。例如name比n好。

  6. 慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。

  7. 就目前而言,应使用小写的Python变量名。大写字母在变量名中有特殊的含义。

  8. 骆驼式命名法(Camel-Case)又称驼峰式命名法, 小驼峰法 变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。譬如:int myStudentCount; 变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。 大驼峰法 相比小驼峰法,大驼峰法(即帕斯卡命名法)把第一个单词的首字母也大写了。常用于类名,命名空间等。譬如public class DataBaseUser; 变量DataBaseUser的每一个单词的首字母都是大写。

4.基础操作语法

输入:input 输出:print 换行:\n 批量注释:全选Ctrl+/ 查看数据类型:type()

5.编码解码的过程

  1. Python的默认编码是ascll,Python3 的默认编码是unicode

  2. 编码:encode() 把字符串转为bytes(二进制)数据类型的过程(转为二进制的过程) 解码:decode() 把bytes转为字符串的过程

  3. 编码解码在网络爬虫中的应用,从很多数据中筛选出自己想要的数据

  4. 安装爬虫工具:pip install requests ——做网络爬虫的工具

比如:

1.把网页打开的内容复制过来是二进制的需要解码成字符串输出

6.控制流与逻辑判断

在Python⾥⾯,控制流我们会使⽤到For和While,判断主要值的是if

6.1while循环

  1. while Ture:死循环

  2. break:跳出循环

  3. continue:当不想输入上一段的结果时,在后边加上此命令,就会默认跳过继续执行后边的任务,否则报错。

    比如,不输出60——70的结果,需加此命令继续执行

#进入死循环
while True:
    score=int(input('输入学生成绩:\n'))
    #print('学生成绩:\n',score)
    if score>=90 and score<100:
        print('优秀')
    elif score>=80 and score<90:
        print('良好')
    elif score>=60 and score<70:
        print('及格')
    elif score==100:
        print('满分')
#继续执行
        continue
    else:
        print('不及格')
#跳出循环
        break

 

6.2for循环:将字符串竖着排列输出

for … in … :

作用是在每一次的循环中,依次将in关键字后面序列变量的一个元素赋值给for关键字后的变量。

注意:

  • 循环的次数是由字符串的长度决定的

  • 这里"item"是变量,可以用任何字母来代它,“for”和“in”是关键字。

6.3enumerate()得到对象的索引和值

for....in enumerate():

也可以对索引进行判断

#for循环,竖着排列字符串
#打断点
str1='今天要加油鸭'
for item in str1:
    print(item)

#enumerate()  得到对象的索引和值用的函数
for index,item in enumerate(str1):
    print(index,item)

for index,item in enumerate(str1):
    if index==0:
        print('计算机中索引是从0开始的')

7.字符串的格式化

  1. python字符串格式化的意思就是在字符串中使用变量,通常用format函数格式化字符串的用法。

  2. 为什么要在Python中要字符串格式化?

    因为在python中我们会遇到一个问题,问题是如何输出格式化的字符串。我们经常会输出类似"各位xx辖区市民:为切实保障人民群众身体健康和生命安全,xx区疫情防控指挥部决定于xx月xx日上午xx"而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。在python中,我们用传统的%或者{}实现格式化字符串。

  3. %s:字符串,也是万能的 %d:整型 %f:浮点型

    注意:在字符串格式化的输出中,int的数据类型可以使⽤%s来表示,但是str的数据类型,不能使⽤%d来表示

#%s
name='zx'
#%d
age=20
#%f
salary=99999.888
isGirl=True
print('姓名:{0},年龄:{1},薪资:{2}'.format(name,age,salary))
print('姓名:{name},年龄:{age},薪资:{salary}'.format(name=name,age=age,salary=salary))
print('我的名字:%s,我的年龄:%d,我的薪资:%f'%(name,age,salary))

8.字符串详解

1.获取对象长度len

获取对象的长度:len()函数

#得到一个对象的长度
str1='今天要加油鸭'
print(len(str1))

 

2.大小写的转换

  1. 把小写转换为大写: .upper()函数,:判断是不是大写,is是判断:.isupper()

  2. 把大写转换为小写: .lower()函数,is是判断:.islower()

#把字符串转为大写upper函数
str1='hello'
print(str1.upper())
print(str1.upper().isupper())
#把大写的字符串转为小写lower函数
str2='HELLO'
print(str2.lower())
print(str2.lower().islower())

 

3.判断字符串开头结尾

  1. 判断字符串以什么开头:.startswith()函数

  2. 判断字符串以什么结尾:.endswith()函数

str1='hello'
#以什么开头,Python里边只会判断对错
print(str1.startswith('h'))
#以什么结尾 ,大小写都有差别
print(str1.endswith('O'))

4.获取字符串里边的元素索引

查看字符串里面对象的索引,是线性查找的思路,所谓线性查找是指计算机一旦检索到了该对象,就停止再去检索该对象第二、三、四....次出现

.index()函数

#获取字符串里边的元素索引index(排序是从0开始的),线性查找
str1='hello'
print(str1.index('l'))

5.字符串的替换

字符串的替换:.replace("旧","新")函数

#替换对象的内容
str1='hello'
print(str1.replace('ello','i,fairy'))

6.字符串的拆分合并

字符串的拆分:.split()函数,它的数据类型是列表 字符串的合并:.join()函数,它的数据类型为str

str4='go,java,python'
#字符串拆分split,变成列表list,’‘里边是拆分方式
str_list=str4.split(',')
print(str_list,type(str_list))
#列表的合并join变成字符串,’‘里边是合并方式
list_str=','.join(str_list)
print(list_str,type(list_str))

7.字符串取消首尾空格

字符串的取消空格:.strip()函数

#取消空格,仅限前后
str3='   water'
print(str3.strip())

8.字符串查找索引

字符串的查找索引,也是线性方式查找:.find()函数

#字符串的查找,返回的是索引,如果收尾是有空格的,空格也占索引序号
print(str1.find('l'))

9.字符串的循环

#字符串的循环
str1='hello'
for item in str1:
    print(item)

五.Python数据结构

(一)列表

所谓列表,我们可以简单的把它理解为按照索引存放各种集合,在列表中,每个位置代表⼀个元素。在Python中, 列表的对象⽅法是list类提供的,列表是有序的。列表的特点具体如下:

  1. 可存放多个值

  2. 按照从左到右的顺序定义列表元素,下标从0开始顺序访问

  3. 列表是有序的

  4. 列表也是可变化的,也就是说可以根据列表的索引位置来修改列表的值

列表实战操作

1.列表的添加append、insert

  1. append:默认把添加的元素添加到最后一位

  2. insert:按照索引添加

 

2.修改列表内容

list1=['go','java','python','go']
#修改列表内容,按照索引号
#list1[0]='GO语言'
#print(list1)

3.循环列表内容

#循环列表内容
#for item in list1:
   # print(item)

4.列表内元素的删除pop、remove

#列表内容的删除,
#pop:默认删除列表租后一位并且返回结果
#remove:删除指定的任何一个列表元素,不返回结果
print(list1.pop())
print(list1)
print(list1.remove('java'))
print(list1)

5.列表的复制

list2=list1.copy()
print(list2)

6.列表内元素的追加

list3=[1,2,3]
list1.extend(list3)
print(list1)

7.列表元素的清空

list1.clear()
print(list1)

 8.查看列表某元素的索引号

#查看某元素在列表中的总数
print(list1.count('go'))

9.列表元素的反转

list2=[1,5,6.80,100]
#列表元素的反转
list2.reverse()
print(list2)

10.列表元素的排序

#列表元素的排序,由小到大
list2.sort()
print(list2)