python爬虫项目学习(复习基础操作)

Python基础知识

1.Python是一门解释型、面向对象的高级编程语言、开源免费。注意Python2和Python3不具有兼容性
2.运行速度慢,不适于超大型项目。代码不能加密。
3.命令指示行操作使用Python进入、exit()或ctrl+Z退出
4.命令指示行在对应目录下使用python+文件名.py进行文件使用操作

Python基础使用

一、基础操作
1.ctrl+/快速注释
2.打印print中
'1.%s、%d常见占位符,后面使用%将变量对应填充
'2.调整是否换行使用end="",默认换行,空为直接连接,\t为空格,\n为换行
3.输入使用input赋值,变量=input(“输入提示语”),默认变量为字符串
4.测试变量类型print(type(变量))
5.强制类型转化,使用int(变量)变成数字、str(变量)变成字符串
6.算数运算符,补充常见易错的符号
'1.“/”,除法,有小数。“//”,整除,无小数
'2.“%”,取模
'3.“**”,幂

二、条件判断和循环
7.用tab来显示层级
8.注意条件判断语句中的“:”不能丢
'1.if、elif、else
9.库的引用import
'1.import random为引入随机数变量=random.randint(a,b)随机生成[a,b]之间的数字
10.for常活用range语句,break结束全部循环,continue结束当前循环

补充学习代码:
# #石头剪刀布游戏
# import random
# while(1):
#     ans=random.randint(0,2)
#     num=int(input("请选择要出的手势,备注石头(0),剪刀(1),布(2)"))
#     print("对方选择出%d"%ans)
#     if num in (0,1,2):
#         if num==ans:
#             print("平局")
#         elif (ans-num)==1 or (ans-num)==-2:
#             print("胜利")
#         else:
#             print("失败")
#     else:
#         print("error")

# #99乘法表
# a=1
# b=1
# while a<10:
#     while b<=a:
#         c=a*b
#         print("%d*%d=%d"%(a,b,c),end='\t')
#         b+=1
#     print(end='\n')
#     a+=1
#     b=1                      #注意易错点

三、字符串
11.字符串可以使用单引号、双引号、三引号,常见转义字符的使用“\”,print打印的字符串前有r,则字符串内所有转义忽略不计,表示直接显示原始字符串
12.字符串可以使用列表的形式访问,str[开始位置:结束位置:步距]
13.字符串可以使用“+”链接,使用“*”与次数实现多次打印
14.熟悉常见的字符串函数,后续补充

四、列表
15.列表可以存储混合元素
16.常用的列表操作函数:
‘1.增加:“列表.append(元素)”,在末尾追加一个元素(一个整体存在);“列表.extend(列表)”,为扩增效果,区别于append;“列表.insert(增加变量下标,元素)”,指定插入位置
‘2.删除:“del 列表[指定位置]”,在指定位置删除一个元素;“列表.pop()”,弹出末尾最后一个元素;“列表.remove(“元素”)”,直接删除指定内容的第一个元素
‘3.改:“列表[位置]=内容”,直接指定下标进行修改
'4.查:“in、not in”,使用if条件语句直接判断元素是否在列表之中;“列表.index(元素,开始位置,结束位置)”,实现从[开始位置,结束位置)中查找,找到并返回存在位置;“列表.count(元素)”,统计某个元素出现的个数
'5.排序:“列表.reverse()”,将列表中所有元素进行反转;“列表.sort()”,将列表中元素升序排列,使用“列表.sort(reverse=true)”实现降序排列
17.列表的嵌套,注意可以使用for循环来去嵌套

补充代码学习:
#现有商品如下  products=[["iphone",6888],["MacPro",14800],["小米6",2499],["coffee",31],["BOOK",60],["Nike",699]]
#实现商品的打印展示,实现一个循环,不断询问用户的需要,用户选择一个商品编号,把对应商品添加到购物车中,最终用户输入q退出时,打印商品列表结算价格

products=[["iphone",6888],["MacPro",14800],["小米6",2499],["coffee",31],["BOOK",60],["Nike",699]]
# print("-"*6,"商品列表","-"*6)
# i=0
# while i<len(products):
#     print("%d\t%s\t%d"%(i,products[i][0],products[i][1]))
#     i+=1

#用户选用商品
car=[]
while(1):
    print("-" * 6, "商品列表", "-" * 6)
    i = 0
    while i < len(products):
        print("%d\t%s\t%d" % (i, products[i][0], products[i][1]))
        i += 1
    a=input("请选择您想要添加入购物车的物品的商品编号")
    if a=="q":
        print("-" * 6, "本次购物结束,开始结算", "-" * 6)
        break
    elif a.isdigit() and int(a) in range(len(products)):
        b=int(a)
        car.append(products[b])
        print("添加购物车成功,已加入%s"%products[b][0])
    else:
        print("选择的编号有误")
    print("-"*20,"\n")

print("-" * 6, "购物车列表", "-" * 6)
l = 0
sum=0
while l < len(car):
    print("%d\t%s" % (l, car[l][0]))
    sum+=car[l][1]
    l += 1
print("本次购物总花销为:%d"%sum)

五、元组和字典
18.元组tuple是不可以改变的,但若包含类似可变元素列表,及元组中的列表是可变的
19.元组也可以使用下标访问、切片访问(左开右闭)
20.对元组的使用操作:
'1.修改:没有修改
'2.增加:可以使用“+”来链接两个元组,实际上是新建一个更大的元组将先前两个元组内容填入
'3.删除:“del 元组”,删除整个元组,再访问会报错
'4.查找:与列表相同
21.字典为键—值对,键唯一,键值使用“:”分隔。
22.字典的直接访问使用“字典[键]”,不存在会报错;使用get访问,“字典.get[键,不存在时返回的默认值]”不存在返回默认值,不涉定默认值即为none
23.对字典的使用操作:
'1.增加:“字典[新的键]=新的值”,直接会增加一个新的键值对
'2.删除:“del 字典[已有的键]”,会删除指定键值对,再访问会报错,“del 字典”,会删除指定字典,再访问会报错;“字典.clear()”,保存字典,清空内容
'3.修改:‘“字典[键]=新的值”
'4.查找:“字典.keys()”,得到所有的键以列表的形式;“字典.values()”,得到所有的值以列表的形式;“字典.items()”,得到所有的项以列表的形式,每个键值对是一个元组。——后续可以进行for的遍历“for key,value in 字典.items()”
24.使用for循环与枚举函数,同时拿到列表中的下标和元素内容,“enumerate(列表)”生成下标、元素对应关系
25.集合,是一组key的集合,但不存储value值,key不可以重复
在这里插入图片描述
六、函数
26.“def 函数名():”,直接使用“函数名()”即可调用函数 ;可以使用“,”来return多个参数,可以传参,也可以不传参

代码练习
def printf():
    print("-"*20)
printf()

def intprintf(a):
    for i in range(a):
        printf()
intprintf(1)

def sum3(a,b,c):
    return a+b+c
print(sum3(5,6,7))

def averge3(a,b,c):
    return sum3(a,b,c)/3
print(averge3(5,6,7))

27.全局变量和局部变量:
'1.在函数内部定义的值只在函数内部有效,即局部变量。不同函数可以定义相同的名字,彼此无关
'2.在函数外部定义的值在所有函数中都有效,即全局变量。函数内部修改不会影响到全局变量实际的值,影响的只是函数内部的局部变量
'3.“global 变量”,在函数中使用,可以通过修改局部变量的值来影响全局变量的值

七、文件操作
28.把一些数据存放起来,让程序在下一次执行的时候直接使用。
29.“操作名=open(文件名,访问模式)”,打开文件(默认为读模式),写模式下,文件不存在就新建;“操作名.close()”,关闭打开的文件,注意有开要有关。模式:r读、w写(覆盖写)、rb二进制读、wb二进制写。读写等操作必须对应打开时访问模式
'1.写操作:“操作名.write()”
'2.读操作:“操作名.read()”,读取指定的字符,开始时定位在文件开头,每执行一次都向后移动指定的字符数;“操作名.readlines()”,全部读出,每行一个字符串,以列表的形式 :“操作名.readline()”,一次性读一行
30.os模块,import os 可以实现文件的重命名、文件删除、目录创建、路径获取等等

八、异常处理
31.“try:代码段”,捕获异常;“except 异常名:出现对应异常时的处理”。异常类型想要被捕获,必须保证出现的异常和异常名一致
32.获取错误描述,调整为“except (多个异常名)as resutt:”,在对result进行打印,可以显示错误提醒
33.“except exception as resutt:”,可以接受任何异常
34.可以使用嵌套“try:“和"finally:”来确保文件的开和关闭,在finally中对文件进行强制关闭操作

代码练习:
#应用文件操作的相关知识,通过Python新建一个文件,选择一首古诗写入文件之中
#另外写一个函数,读取指定文件,将内容复制到另一个文件之中,并在控制台输出“复制完毕”
#使用两个函数完成读写文件的操作,尽可能完善代码添加异常操作
try:
    try:
        def reados(name):
            f=open(name,"r",encoding='UTF-8')
            cons=f.readlines()
            contexts=""
            for con in cons:
                contexts+=con
            f.close()
            return contexts

        def writeos(name,context):
            f=open(name,"w",encoding='UTF-8')
            f.write(context)
            f.close()

        context1=reados("gushi.txt")
        writeos("copy.txt",context1)
    finally:
        print("复制完毕")
except Exception as result:
    print(result)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值