Python基础知识
相关视频——Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析
前言
- Python是一门解释型、面向对象的高级编程语言。
- Python是开源免费的,支持交互式、可跨平台移植的脚本语言。
Python的设计混合了传统语言的软件软件工程的特点和脚本语言的易用性。
- 具有如下特性:
- 开源、易于维护
- 可移植
- 易于使用、简单优雅
- 广泛的标准库、功能强大
- 可扩展、可嵌入
- ......
变量
- 注释
多行注释
单行注释
#
- 变量无需先定义,直接使用即可
a = 'ABC'
Python解释器干了两件事
1在内存中创建了一个'ABC'的字符串
2在内存中创建了一个名为a的变量,并把它指向'ABC'
占位符——格式化输入
age = 3
print("我今年%d岁了",age)
- input——进行输入
- type(变量名)查看变量的类型
- 强制类型转换——变量类型(变量)
- **——次方
条件判断语句
c = int(input())
if c > 10:
print("大于10")
elif c <10:
print("小于10")
else:
print("等于10")
通过缩进来告诉编译器这几行代码属于同一个代码段。
引入库
import xxx或者from ... import 来导入相应的模块
可以选择全部引入还是引入部分函数。
循环语句
for...in,可以依次把list或者tuple中的元素迭代出来。
for i in range(5):
print(i)
# 0 1 2 3 4
#从0开始以3为增量(步进值 ),11为限制
for i in range(0,11,3):
print(i)
#0 3 6 9
#逐个遍历字符串中的每个字母
name = "beijing"
for x in name:
print(x)
#遍历列表中的每个元素
a = ["aa","bb","cc"]
for i in range(len(a)):
print(a[i])
while
python没有++
#计算1到100的和
i = 1
sum = 0
while i <= 100:
sum += i
i+=1
print(sum)
python总while可以和else使用,当while条件不满足的时候执行else
i =1
while i < 10:
print(i,"小于10")
i += 2
else:
print(i,"大于等于10") #不满足while执行条件,循环终止。
- break、continue同其他编程语言
- pass是空语句,一般用做占位语句,不做任何事情。
字符串
String
- Python中的字符串可以使用单引号、双引号或者三引号,反斜杠\转义特殊字符。
- Python3源码文件默认以UFT-8编码,所有字符串都是unicode字符串。
- 支持字符串拼接、截取等多种运算。
三引号,默认保留编写程序时的格式。
words = """
123
ABC
A1B2C3
"""
单双引号使用时候区别,有的字符串用到单引号就需要使用转义字符,类似情况同理,使用转义字符。
字符串的截取
str = "123ABC"
#访问某一个字符,就当做字符数组使用
print(str[1])
#xx[起始位置:结束位置]
print(str[1:3])
#字符串访问中同样也有步进值
print(str[0:4:2])
#起始位置可以省略,默认为从第一个开始
print(str[:2])
#结束位置可以省略,默认为到最后一个结束
print(str[0:])
字符串的拼接
"xxx"+"xxx"
引号前加r取消转义,内容全部保留
print(r"123\n")
字符串相关函数
略......,现用现查吧。
列表
类似于其他编程语言中的数组。
- 列表可以完成大多数集合类的数据结构实现。列表中有元素的类型可以不相同,它支持数字、字符串、甚至可以包括列表(嵌套)。
- 列表是写在方括号[]之间,用逗号分隔开的元素列表
- 列表索引值以0为开始值,-1为从末尾的位置开始。
- 列表可以使用+操作符进行拼接。
#创建
nameList = []#定义一个空列表
nameList1 = ["小王","小李"]
print(nameList1)#打印全部内容
testList = [123,"ABC"]#怎么定义的,就是什么类型
#遍历
for name in testList:
print(name)
#长度
length = len(testList)
#常用的方法
#增加
#在末尾追加一个元素
nameList.append("添加一个数据")
#扩展,将另一个列表中的数据逐一添加到末尾
nameList.extend(nameList1)
#insert
nameList.insert(1,"数据")
#删除
#指定下标删除元素
del nameList[1]
#删除末尾元素
nameList.pop()
#指定数据元素删除-多个匹配内容只会删除找到的第一个
nameList.remove("元素名字")
#修改
nameList[1] = "我是新的数据"
#查找
findName = input("查找内容")
if findName in nameList:
print("找到了")
else
print("没有")
#指定范围查找指定内容,找到返回下标,左闭又开
nameList.index("查找内容",0,3)
#统计某个元素出现几次
nameList.count("元素")
#反转
nameList.reverse()
#排序-升序
nameList.sort()
#排序-降序
nameList.sort(reverse=True)
#嵌套
#有三个元素的空列表,其中的每个元素都是一个空列表
schoolNames = [[],[],[]]
SecondNames= [['赵','钱'],['孙','李']]
#例子-将元素随机分配
import random
office=[[],[],[]]
names = ["A","B","C","D","E","F","G","H"]
for name in names:
index = random.randint(0,2)
office[index].append(name);
元组
- 类似于list,不同之处在于元组的元组不能修改,写在小括号里。
- 元组的元素不可变,但可以包含可变对象。
#创建元组
tupTest = (50)
#多数操作同List
tup1 = (12,13,14)
#元组中的元素不能被修改的
#增——将两个元组链接到一起在一起
tup2 = ('a','b')
tup = tup1 + tup2
#删除
del tup#删除了整个元组变量
字典
- 字典是无序的对象集合,使用键-值(key-value)存储,具有极快的查找速度。
- 键(key)必须使用不可变类型。
- 同一个字典中,键(key)必须是唯一的。
#创建
info = {"name":"快乐的威猛先生","age":18}
#访问不存在的键,不报错方法
info.get("test")#不存在默认返回None
#可以设定找不到的默认返回值
info.get("gender","m")#m为默认返回值
#增
newID = input()
info["ID"] = newID
#删除
del info["name"]#删除了整个键值对
del info#删除整个字典,在内存中清除这个变量
#改
info["age"] = 19
#拿到所有的键,列表形式
info.keys()
#拿到所有的值
info.values()
#拿到所有的对儿, 每个键值对是与元组形式
info.items()
#遍历key value
for key,value in info.items():
print("key=%s,value=%s"(key,value))
#使用枚举函数拿到列表元素及其下标
mylist = ["a","b","c","d"]
for i,x in enumerate(mylist):
print(i,x)
集合
- 和字典类似,也是一组key的结合,但不存储value。key不能重复。
- 集合是无序的,重复的元素在set中自动被过滤。去重操作。
略......
函数
把具有独立功能的代码块组织为一个小模块。
#函数的定义
def myfunction():
print("---MyFunction---")
#函数的调用
myfunction()
#带参数的函数
def add2Num(a,b):
return a+b
#返回多个值
def test(a,b):
return a+10,b+10
#接收
tmp1,tmp2 = test(10,20)
文件操作
#打开文件
f = open("test.txt","w")
f.write("hello python")
f.close()
r = open("test.txt","r")
tmp =r.read(6)#读6个
#read方法读取指定的字符,开始定位于文件头部,随着指定往后移动
print(tmp)
#全部读完,放到列表中
tmp2=r.readline()
#每次读一行
tmp3=r.readline()
r.close()
#删除重命名等操作在os这个库中,删除时注意路径
import os
os.rename("test.txt","text2.txt")
异常处理
#可能发生问题的代码块
try:
f = open("123.txt", "r")
#捕获处理异常
except (IOError,NameError)as result:#异常类型想要被捕获,需要一致。逗号分隔多种异常
#捕获异常后指定的内容
pass
#result获取异常描述
print(result)
import time
#try---finally,和嵌套
try:
r = open("123.txt","r")#这里出现问题会直接跳出,到 except
try:
while True:
content = r.readline()
if(len(content) == 0):
break
time.sleep(2)
print(content)
finally:
r.close()
print("文件关闭")
except Exception as result:
print(result)
finally:
#无论有没有异常都会被执行
print(123)