Python爬虫学习总结(1)

本文详细介绍了Python的基础语法,包括print和input语句的使用方法、条件判断与循环语句、列表与字典的操作技巧等。此外,还讲解了文件操作的基本步骤及异常处理的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Python语句基础:

print语句:

#输出表示法
a=2
b=1
print(a,b)
print("aaa","bbb","ccc")
print("www","baidu","com",sep=".")
print("一班有%d个学生"%a)
print("aa",end="")
print("bbb",end="\t")
print("ccc",end="\n")
print("-"*3)#打印出的结果:---

print(type(a)) 这是查看a的类型; 

input语句:

#输入表示法
password=input("请输入密码:")
'''
print("刚刚输入的密码为:%s",password)
注意:这里password是字符串型的,若要变为其他类型可强制转换
'''

c=int(input("输入:"))
'''
print("刚刚输入的密码为:%d",c)
'''

等于“==”,不等于“!=”;

if true: #也可以是 if 1:
    print("true")
else :
    print("false")
print("end")

#条件语句嵌套
if true:
    a=1
else :
    if true:
        a=2
    else :
        a=3

#多重条件
if a >= 1 and b >= 1:
    print("1")
elif a >= 1 and b <= 1:
    print("2")
elif a <= 1 and b >= 1:
    print("3")
else:   #elif a <= 1 and b <= 1
    print("4")

最好用tab健缩进,相同层次相同的缩进,如上图:条件语句结束时输出“end”;

 import random 引入随机库;

import random
x = random.randint(0,2) #随机生成[0·2]的随机数,包含0,1,2这三个数字
print(x)

循环语句:

for i in range(5):   #意思为C语言中的for(i=0;i<5;i++)
    print(i)
'''
0
1
2
3
4
'''

for i in range(0,10,3):   #意思为C语言中的for(i=0;i<10;i+=3)
    print(i)
'''
0
3
6
9
'''

for i in range(-10,-100,-30):   #意思为C语言中的for(i=-10;i<100;i-=30)
    print(i)
x="chengdu"
for x in name:
    print(x)#默认换行
'''
c
h
e
n
g
d
u
'''

#列表
a=["aa","bb","cc","dd"]
for i in range(len(a)):
    print(i,a[i])
'''
0 aa
1 bb
2 cc
3 dd
'''
i=0
while i < 5 :
    print("i=%d"%i)
    i+=1
'''
i=0
i=1
i=2
i=3
i=4
'''

count=0
while count<5
    print(count,"小于5")
    count+=1
else :
    print(count,"大于或等于5")
'''
0 小于5
1 小于5
2 小于5
3 小于5
4 小于5
5 大于或等于5
'''

break语句可以跳出for和while的循环体

continue语句跳过当前循环,直接进入下一轮循环

pass是空语句,一般用做占位语句,不做任何事情

字符串

str="chengdu"#0123456
print(str)
print(str[0])
print(str[0:5])
print(str[1:7:2])#[起始位置:结束位置:步进值],注意是[起始,结束)
'''
chengdu
c
cheng
hnd
'''
print([:5])
print([5:])
'''
cheng
du
'''
print(str+",你好")
print(str*3)
'''
chengdu,你好
chengduchengduchengdu
'''
print("hello\nchengdu")#使用转义字符'\'的功能
print(r"hello\nchengdu")#直接显示原始字符串,不进行转义
'''
hello
chengdu
hello\nchengdu
'''

字符串的常见操作

bytes.decode(encoding="utf-8",errors="strict")   给编码解码

isalnum()

isalpha()

isdigit()

isnumeric()

join(seq)

len(string)

 列表(List)---数组理解

namelist=[]#定义一个空列表
namelist=["xiao","zhang","wang"]
print(namelist[1])

testlist=[1,"ceshi"]#列表中可以存储混合类型,1是int,ceshi是字符串
#打印1
for name in namelist:
    print[name]
print(len(namelist))
#打印2
lenth=len(namelist)
i=0
while i<lenth:
    print(namelist[i])
    i+=1

list[n:m:p]#列表的切片

nametemp=input("请输入添加学生的姓名:")
namelist.append(nametemp)#在末尾追加一个元素
#但是要注意的是
a=[1,2]
b=[3,4]
a.append(b)#列表的嵌套,把b作为一个元素加入列表
a.extend(b)#将b列表中每一个元素逐一追加到列表中
print(a)
'''
[1,2,[3,4]]
[1,2,[3,4],3,4]
'''
a=[0,1,2]
a.insert(1,3)#第一个变量表示下标,第二个表示元素对象
print(a)
'''
[0,3,1,2]
'''

#删
movieName=["www","ttt","uuu","rrr"]
del movieName[2]#指定位置删除一个元素
print(movieName)
'''
www
ttt
rrr
'''
movieName.pop()#弹出末尾最后一个元素
movieName.remove("ttt")#直接删除指定内容的元素

#改
namelist[1]="xxx"#修改指定下标的元素内容
print(namelist)
'''
xiao
xxx
wang
'''
#查
findName=input("请输入你要查找的学生姓名:")
if findName in namelist:#内部已经帮你循环一遍了
    print("yes")
else
    print("0")

mylist=["a","b","c","a","b"]#0-4
print(mylist.index("a",1,4))#起点是1,终点是4,可以找到对应数据的下标
print(mylist.index("a",1,3))#注意:范围区间左闭右开,即[1,3),且找不到就报错,可捕捉异常来处理
'''
3
'报错'
'''

print(mylist.count("c"))#统计某个元素出现几次

a=[1,4,2,3]
a.reverse()#将列表所有元素反转(且是改变了本身不是临时)
a.sort()#默认排序且为升序
a.sort(reverse=True)#降序排列

#嵌套
#schoolName=[[],[],[]]#三个元素为三个空列表
schoolName=[["北京大学","清华大学"],["南开大学","天津大学","天津师范大学"],[]]
print(schoolName[0][0])
'''
北京大学
'''

元组

tup1=()#空元组
tup2=(50)#不是元组
print(type(tup1),type(tup2))
'''
<class 'tuple'> <class 'int'>
'''
tup3=(50,)#一个数值时的元组表达
tup4=(50,60,70)
tup1=("abc","def",2000,2020)
print(tup1[0])
print(tup1[-1])#访问最后一个元素
print(tup1[1:5])#左闭右开的进行切片
'''
abc
2020
('def',2000,2020)
'''

#增
tup1=(12,34,56)
tup2=("abc","xyz")
tuo=tup1+tup2#新建元组来连接两个元组
print(tup)
'''
(12,34,56,'abc','xyx')
'''

#删
tup1=(12,34,56)
del tup1#删除整个元组变量


#改
tup1=(12,34,56)
tup1[0]=100#报错,不允许修改

字典

info={"name":"吴彦祖","age":18}
print("键值对为:%s"%info)
print(info["age"])
'''
键值对为:{"name":"吴彦祖","age":18}
18
'''
print(info["gender"])#访问不存在的键报错

print(info.get("gender"))#使用get方法,没有找到对应的键,默认返回:None
print(info.get("gender","m"))#没找到时可设定默认值
print(info.get("age","20"))
'''
None
m
18
'''

#增
newID=input("请输入新学号:")
info["id"]=newID
print(info["id"])
'''
1
'''

#删
del info("name")#删除的是整个键值对
print(info["name"])#再访问该键值对会报错
del info#删除整个字典,再访问就报错
info.clear#清空
print(info)
'''
{}
'''

#改
info["age"]=20
print(info["age"])

#查
print(info.keys())#得到所有的键(列表)
print(info.values())#得到所有的值(列表)
print(info.items())#得到所有的项(列表),每个键值对是一个元组
for key in info.keys():
    print(key)
for value in info.values():
    print(value)0
for key,value in info.item():
    print(key,value)

list=["a","b","c","d"]
for i,x in enumerate(list):#使用枚举函数,同时拿到列表中的下标和元素内容
    print(i,x)
'''
0 a
1 b
2 c
3 d
'''

set集合可去重 s=set([1,1,2,3,3])  s为{1,2,3}

是否有序是否可变类型
列表[ ]有序可变类型
元组( )有序不可变类型
字典{ }无序(指键值对)key不可变 val可变
集合{ }无序可变类型(不重复)

def 函数名():

def printinfo():#函数的定义
    print("!")
printinfo()#函数的调用

def addNum(a,b):#带参数的函数
    c=a+b
    print(c)
addNum(11,22)

def add2Num(a,b):#带返回值的函数
    return a+b
result=add2Num(11,22)

def divid(a,b):#返回多个值的函数
    shang=a/b
    mod=a%b
    return shang,mod
sh,yushu=divid(5,2)
#文件操作
f=open("test.txt","w")#打开文件,w模式(写),文件不存在就新建
f.close()#每次打开都要记得关闭文件
f1=open("test.txt")#默认模式(只读),若不存在则报错

f.write("hello world,i am here!")#将字符串写入文件中

f2=open("test.txt","r")
content=f.read(5)#执行一次移动指定(这里是5)位,开始时定位开头
print(content)
content=f.read(5)
print(content)
'''
hello
 worl
'''

f3.write("hello world,i am here!\nhello world,i am here!\n")
content=f3.readlines()#一个文档全部读完,文件读取的是列表
'''
['hello world,i am here!\n','hello world,i am here!\n']#一个元素的列表
'''

content=f.readlines()#一次性读取全部文件为列表,每行一个字符串元素
i=1
for temp in content:
    print("%d:%s"%(i,temp))
    i+=1
'''
1:hello world,i am here!
2:hello world,i am here!
'''

f3.write("hello world,i am here!--1\nhello world,i am here!--2\n")
content=f3.readline()
print("1:%s"%content,end="")
content=f.readline()
print("2:%s"%content,end="")
'''
1:hello world,i am here!--1
2:hello world,i am here!--2
'''

import os

 异常

try:
    print("1")
    f=open("123.txt","r")#用只读模式打开了一个不存在的文件,报错
    print("2")#这句代码不会被执行
except IOError:#文件没找到,属于IO异常(输入输出异常)
    pass
'''
1
'''

#捕捉异常
try:
    print(num)
#except IOError:#这是因为异常类型想要被捕获需要一致
#    print("3")
#'''
#(报错)
#'''
except NameError:
    print("4")
'''
4
'''

#多个错误
try:
    print("1")
    print(num)
    print("2")
    f=open("123.txt","r")
    print("3")
except (NameError,IOError) as result:
    print("4")
    print("result")
'''
1
4
name 'num' is not defined
'''

捕获所有的异常: except Exception as result:

#try...finally嵌套
try:
    f=open("123.txt","r")
    try:
        while true:
            content=f.readline()
            if len(content)==0
                break
            time.sleep(2)
            print(content)
    finally:
        f.close()
        print("文件关闭")
except Exception as result:
    print(result)
#finally:
#    f.close()
#    print("文件关闭")#由于在try外面没有f.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值