Python爬虫基本语法及代码编写02

九、流程控制语句

  • if

    """
    if <条件> :
    <一个tab键或者4个空格><事件>
    """
    # demo1
    age = 18
    if age > 10:
        print("我不是小朋友了")
    
    #demo2
    age = input('你多大了:')
    if int(age) > 10:
        print("我不是小朋友了")
    
    • if else
    """
    if <条件> :
    <一个tab键或者4个空格><事件>
    else :
    <一个tab键或者4个空格><事件>
    """
    #demo1
    age = 7
    if age > 10:
        print("我不是小朋友了")
    else:
        print("我还是小朋友")
    
    #demo2
    
    age = input('你多大了:')
    if age > 10:
        print("我不是小朋友了")
    else:
        print("我还是小朋友")
    
  • elif

    """
    if <条件1> :
    <一个tab键或者4个空格><事件1>
    elif <条件2> :
    <一个tab键或者4个空格><事件2>
    elif <条件3> :
    <一个tab键或者4个空格><事件3>
    else :
    <一个tab键或者4个空格><事件4>
    """
    age = input("你多大了:")
    if int(age) > 18:
        print("我成年了")
    elif int(age) > 12:
        print("我上中学了")
    elif int(age) > 6:
        print("我上小学了")
    elif int(age) < 6:
        print("我读幼儿园")
    else:
        print("唉")
    
    
  • for

    """
    for <临时变量> in <列表或字符串等可迭代对象>:
    <一个tab键或者4个空格><事件>
    """
    # 输出:h,e,l,l,o
    _str='hello'
    for s in _str:
        print(s) 
    # 输出:a,b,c
    _list=["a","b","c"]
    for s in _list:
        print(s)
    # 输出:d,e,f
    _tuple=("d","e","f")
    for s in _tuple:
        print(s)
    # 输出:aa,aaa,bb,bbb,cc,ccc
    _dic={"aa":"aaa","bb":"bbb","cc":"ccc"}
    for s in _dic:
        print(s)
        print(_dic[s])
    
  • range

    # range(从0开始几位)
    # 输出0,1,2,3,4
    for s in range(4):
        print(s)
    # range(起始值,结束值)
    # 输出1,2
    for s in range(1, 3):
        print(s)
    # range(起始值,结束值,每次递增值)
    # 输出5,9
    for s in range(1, 10, 4):
        print(s)
    

十、字符串高级

  • len:获取字符串长度
  • find:查找内容是否存在,返回索引,没有返-1
  • startswith,endswith:判断字符串是不是以xx开头或结尾
  • count:返回字符串在start和end之间出现的次数
  • replace:替换
  • split:切割
  • upper,lower:大小写互换
  • strip:去空格
  • join:字符串拼接
    _s = "a"
    print(_s.join("你看这个在哪儿"))
    输出:
    你a看a这a个a在a哪a儿
    

十一、列表高级

  • 添加

    • append:在末尾添加元素
    • insert:在指定位置插入元素
    • extend:合并两个列表
    # append
    a = ["dada", "didi", "dudu"]
    b = "addend"
    a.append(b)
    # 输出:['dada', 'didi', 'dudu', 'addend']
    print(a)
    
    # insert
    b = "addinto"
    a.insert(1, b)
    # 输出:['dada', 'addinto', 'didi', 'dudu', 'addend']
    print(a)
    # extend
    b = ["lili", "lala", "lulu"]
    a.extend(b)
    # 输出:['dada', 'addinto', 'didi', 'dudu', 'addend', 'lili', 'lala', 'lulu']
    print(a)
    
  • 修改

    a = ["dada", "didi", "dudu"]
    a[0] = "lili"
    # 输出:['lili', 'didi', 'dudu']
    print(a)
    
    
  • 查询

    • in 和 not in
    a = ["dada", "didi", "dudu"]
    b = "didi"
    # 输出:找到了
    if b in a:
        print("找到了")
    else:
        print("没找到")
     # 输出:没找到?
    if b not in a:
        print("找到了?")
    else:
        print("没找到?")
    
    • index 和 count
  • 删除

    • del:根据下标进行删除
    • pop:删除最后一个元素
    • remove:根据元素值进行删除
    a = ["dada", "didi", "dudu"]
    # del
    del a[2]
    # 输出:['dada', 'didi']
    print(a)
    # pop
    a.pop()
    # 输出:['dada']
    print(a)
    # remove
    a.remove("dada")
    # 输出:[]
    print(a)
    

十二、元组高级

元组的元素不能修改,删除
元组的元素如果只有一个,需要在最后面加一个逗号

  • a = (11,)

十三、切片

  • 字符串,列表,元组 都支持切片操作

  • 切片语法:[起始:结束:步长] ,[起始:结束]

  • 切片是通过下标去某一元素

    a = "hello word!"
    # o 字符串里的第4个元素
    print(a[4])
    # lo W 包含下标 3,不含下标 7
    print(a[3:7])
    # llo word! 从下标为2开始,取出 后面所有的元素 (没有结束位)
    print(a[2:])
    # hello 从起始位置开始,取到 下标为5的前一个元素 (不包括结束位本身)
    print(a[:5])
    # l o 从下标为3开始,取到下标为8的一个元素,步长为2(不包括结束位本身)
    print(a[3:8:2])
    

十四、字典高级

  • 查询

    a = {"t1": "hello word!", "t2": "Wang Xiao Ming", "t3": "Zhang Xiao Na"}
    # hello word!
    print(a["t1"])
    # Wang Xiao Ming
    print(a.get("t2"))
    # None
    print(a.get("t4"))
    # Wang Xiao Ming
    print(a.get("t2", "大学生"))
    # 小学生
    print(a.get("t4", "小学生"))
    
  • 修改

    a = {"t1": "hello word!", "t2": "Wang Xiao Ming", "t3": "Zhang Xiao Na"}
    # hello word!!!
    a["t1"] = "hello word!!!"
    print(a["t1"])
    
  • 添加

    a = {"t1": "hello word!", "t2": "Wang Xiao Ming", "t3": "Zhang Xiao Na"}
    # {'t1': 'hello word!', 't2': 'Wang Xiao Ming', 't3': 'Zhang Xiao Na', 't4': '小学生'}
    a["t4"] = "小学生"
    print(a)
    
  • 删除

    • del:删除指定元素,删除整个字典
    • clear():清空
    #del
    a = {"t1": "hello word!", "t2": "Wang Xiao Ming", "t3": "Zhang Xiao Na"}
    # {'t1': 'hello word!', 't3': 'Zhang Xiao Na'}
    del a["t2"]
    print(a)
    # 然后a就不存在了
    del a 
    
    # clear
    a = {"t1": "hello word!", "t2": "Wang Xiao Ming", "t3": "Zhang Xiao Na"}
    # {}
    a.clear()
    print(a)
    
  • 遍历

    • 遍历字典的key
    • 遍历字典的value
    • 遍历字典的key和value
    • 遍历字典的项/元素
    a = {"t1": "hello word!", "t2": "Wang Xiao Ming", "t3": "Zhang Xiao Na"}
    # dict_keys(['t1', 't2', 't3'])
    print(a.keys())
    #dict_values(['hello word!', 'Wang Xiao Ming', 'Zhang Xiao Na'])
    print(a.values())
    #dict_items([('t1', 'hello word!'), ('t2', 'Wang Xiao Ming'), ('t3', 'Zhang Xiao Na')])
    print(a.items())
    # t1 t2 t3
    for key in a.keys():
        print(key)
    # hello word! Wang Xiao Ming Zhang Xiao Na
    for value in a.values():
        print(value)
    # t1 hello word!
    # t2 Wang Xiao Ming
    # t3 Zhang Xiao Na
    for key,value in a.items():
        print(key,value)
    # ('t1', 'hello word!')
    # ('t2', 'Wang Xiao Ming')
    # ('t3', 'Zhang Xiao Na')
    for key in a.items():
        print(key)
    for value in a.items():
        print(value)
    

十五、函数

  • 函数的定义和调用

    '''
    定义格式
    def <函数名称>():
    <一个tab键或者4个空格><事件>
    调用格式
    <函数名称>()
    '''
    def f1():
        print('调用f1')
        
    # 输出:调用f1
    f1()
    
  • 函数的参数

    def addnum(a, b):
        c = a + b
        print(c)
    
    addnum(1, 10)
    
  • 函数的返回值

    def addnum(a, b):
        c = a + b
        return c
    
    d = addnum(1, 10)
    print(d)
    
  • 函数的局部变量和全局变量

十六、文件

  • 文件的打开和关闭
    open方法默认情况下使用的是gbk编码 如果我们想写入汉字 那么需要在open方法中指定编码格式为utf-8
    encodeing='utf-8
    open(‘douban_page1.txt’,‘w’,encoding=‘utf-8’)

    open(文件路径,访问模式):打开一个已存在的

    • 绝对路径:从盘符开始的路径,如C:/a.txt
    • 相对路径
      • a.txt 当前文件夹同级下的文件
      • ./a.txt 当前文件夹同级下的文件
      • …/a.txt 当前文件夹上一级文件夹下的文件
      • demo/a.txt 当前文件夹下中demo文件夹下的文件
    • 访问模式
      • r:只读,默认是r
      • w:只写,不存在则创建
      • a:追加内容,从文件最后开始
      • r+:读写,从文件开头开始
      • w+:读写,不存在创建,存在则覆盖创建
      • a+:读写,从文件最后开始
      • rb:和r的区别是二进制打开
      • wb:和w的区别是二进制打开
      • ab:和a的区别是二进制打开
      • rb+:和r+的区别是二进制打开
      • wb+:和w+的区别是二进制打开
      • ab+:和a+的区别是二进制打开
    # 创建一个文件
    open("test.txt", "w")
    # 打开文件
    fp = open("test.txt", "w")
    # 向文件中写入
    fp.write('first')
    # 关闭文件
    fp.close()
    
  • 文件的读写

    # 打开文件
    fp = open("test.txt", "w")
    # 向文件中写入 5个one  不跨行
    fp.write("one" * 5)
    # 向文件中写入 5个two  跨行\n
    fp.write("two\n" * 5)
    # 关闭文件
    fp.close()
    
    # 读取
    # 打开文件
    fp = open("test.txt", "r")
    # 一字节一字节的读
    content = fp.read()
    # oneoneoneoneonetwo
    # two
    # two
    # two
    # two
    print(content)
    # 一行一行的读,只能读取一行
    content = fp.readline()
    # 读取失败了
    print(content)
    #
    content = fp.readable()
    # True
    print(content)
    # 一行一行的读,多行读取
    content = fp.readlines()
    # []
    print(content)
    # 关闭文件
    fp.close()
    

    写入文件方式2

    with open('douban_page1.txt','w',encoding='utf-8') as fp:
        fp.write(content)
    
  • 文件的序列化和反序列化 [json]

    • 序列化
    # 引入json
    import json
    
    # 打开文件
    file = open("test.txt", "w")
    # 定义写入内容
    names = ["xiaozhang", "xiaoming", "xiaowang"]
    ## dumps
    # json 序列化,得到一个字符串
    result = json.dumps(names)
    # 写入文件
    file.write(result)
    
    ## dump
    names = ["xiaozhang1", "xiaoming1", "xiaowang1"]
    json.dump(names, file)
    
    # 关闭文件
    file.close()
    
    • 反序列化
    # 引入json
    import json
    
    # 打开文件
    file = open("test.txt", "r")
    # 读取文件
    content = file.read()
    # 字符串类型 ["xiaozhang", "xiaoming", "xiaowang"]
    print(content)
    ## loads
    # json 反序列化,得到一个对象
    result = json.loads(content)
    # 对象类型 ["xiaozhang", "xiaoming", "xiaowang"]
    print(result)
    
    ## load
    result = json.load(file)
    # 对象类型 ["xiaozhang", "xiaoming", "xiaowang"]
    print(result)
    
    # 关闭文件
    file.close()
    

十七、异常

  • except 的取值位置
    在这里插入图片描述
'''
try:
    <可能出现异常的代码>
except <异常的类型>
    <友好提示>
'''
try:
    file = open("test.txt", "r")
    file.close()
    content = file.read()
except ValueError:
    print('I/O operation on closed file.')

十八、页面结构介绍【HTML】

  • 选择项目右键现在如图
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值