零基础速成爬虫-Python基础

文章目录

  • 零基础速成爬虫-Python基础
    • 背景
    • 什么是爬虫,为什么是Python爬虫
    • 程序主干
      • 顺序——函数
        • 函数定义
        • 带参数的函数
        • 带返回值的函数
        • 带多个返回值的函数
        • 函数习题
          • 习题答案
      • 选择——条件
        • 简单if
        • 复杂if
        • 条件习题
          • 习题答案
      • 重复——循环
        • for循环
          • range函数
          • 字符串、列表
        • while循环
          • while格式
          • while-esle格式
          • continue和break
            • continue
            • break
    • 数据结构
      • 字符串
        • 字符串的表示
        • 字符串的截取
        • 字符串的拼接
      • 列表(重要)
        • 列表——增
        • 列表——删
        • 列表——改
        • 列表——查
      • 元组
        • 元组定义
        • 元组——增
        • 元组——删
        • 元组——改
        • 元组——查
      • 字典
        • 字典定义
        • 字典——增
        • 字典——删
        • 字典——改
        • 字典——查
      • 文件
        • 文件基本流程
        • 文件读取
    • 异常处理
      • try-except
      • as关键字
      • finally关键字

零基础速成爬虫-Python基础

背景

​ 如果需要10天完成一个爬虫项目的最小化实现,要求有爬虫程序和可视化界面,我们需要最小化掌握的知识有什么呢?Python基础,爬虫软件包,Echarts组件。我会逐一更新博文,做为这次速成的成果。本篇讲的爬虫程序需要最小化掌握的python基础知识,主要包括为什么要使用python爬虫,python的程序主干,数据结构,异常处理。

什么是爬虫,为什么是Python爬虫

​ 在互联网上自动抓取数据这个需求的历史差不多和互联网一样长。一个自动化的程序,在互联网的Web端采集数据,就叫作网络爬虫(Web crawler)。网络爬虫可以让你一次查看几千甚至几百万个网页。

​ Python语言容易上手,大量的函数库,简洁的语言,让初学者也能站在巨人的肩膀上做事。跳过复杂的细节,观其大略,是很重要的入门手段。

程序主干

​ 所有的程序语言,其主干只有三种基本控制结构,顺序,选择,重复。顺序对应的知识是函数,告诉你先干什么,后干什么。选择对应的是条件判断,告诉你向左走还是向右走。重复则是反复做同一件事,达到某个条件后完成。

顺序——函数

​ Python程序中会有一个主函数。整个函数的执行顺序就是主函数的执行顺序,一个流程清晰的程序应该是由对函数的逐次调用来实现的。下面是Python程序中的主函数。

if __name__ == '__main__':
#调用函数
    main()
函数定义
带参数的函数

​ 函数可以根据不同的参数,输出不同的结果。下面使用两个数字相加来定义一个带参数的函数。计算结果会直接被输出到屏幕上。

#带参数的函数

def add2Num(a,b):
    c = a + b
    print(c)
带返回值的函数

​ 函数可以带返回值,结果可以对其它对象进行赋值,可以不进行输出。下面仍然使用两个数字相加来定义带返回值的函数。

#带返回值的函数

def add2num(a,b):
    return a + b        #通过return来返回运算结果

add2num(11,22)

result = add2num(11,22)
print(add2num(11,22))
print(result)
带多个返回值的函数

​ 函数可以返回多个值,赋值的对象就成了多个。下面采用两个数字相除来定义带多个返回值的函数

#返回多个值的函数

def divid(a,b):
    shang = a//b
    yushu = a%b
    return shang,yushu
sh,yu = divid(5,2)

print("商:%d,余数:%d" % (sh,yu))
print(5/2,5//2,end ='')
函数习题

使用这些习题来检验一下对函数的掌握程度。

  1. 写一个打印一条横线的函数。(提示:横线是若干个“-”组成)

  2. 写一个函数,可以通过输入的参数,打印出自定义行数的横线。(提示:调用上面的函数)

  3. 写一个函数求三个数的和

  4. 写一个函数求三个数的平均值(提示:调用上面的函数)

习题答案
#1
def ptline():
    print('-'*30)

#2
def linenum(n):
    for i in range(n):
        ptline()

#3
def add3num(a,b,c):
    return a+b+c

#4
def avg3num(a,b,c):
    return add3num(a,b,c)/3

#执行检验结果 
linenum(3)								#调用函数2,输出三行分隔线
print(avg3num(1,10,100))	#调用函数4,输出平均值
linenum(3)								#再次函数函数2,输出三行分隔线

选择——条件

​ 程序的执行过程中,我们需要根据条件,做不同的处理。常见的有两种场景,一是属于流程中的特殊处理,使用简单if。如长头发的女同志进入车间必须戴上帽子,其他人不做处理。二是对不同的情况,依次做不同的处理,使用复杂的if。如男同志后缀加上先生,女同志后缀加上女士。

简单if
#简单if示例,仅在得分为100分时,输出额外信息。
score = 77

print(score)

if score == 100 :
    print("Oh, you are perfect !")

复杂if
#复杂if示例,应该对可能存在的所有情况进行判断。
score = 88
if score >=90 and score<=100:
    print('本次考试,成绩为A')
elif score>=80:
    print('本次考试成绩为B')
elif score>=70:
    print("本次考试成绩为C")
elif score>=60:
    print("本次考试成绩为D")
else:
    print('本次考试成绩为E')
条件习题

结合if语句相关知识,实现石头,剪子布游戏0(剪刀) 1(石头) 2(布)

用户输入0,1,2。程序返回0,1,2,根据输赢输出不同的结果。

习题答案
#石头剪刀布游戏

#导入生成随机数的函数库
import random

#获取用户输入
player=int(input("请输入你的选择,0(剪刀) 1(石头) 2(布):"))

#判断用户输入有效性
if player>2 or player<0:
    print("错误,请输入0(剪刀) 1(石头) 2(布)")
#用户输入有效后,系统出拳,随机生成0,1,2,并输出出拳结果
else:
    computer = random.randint(0,2)    
    if computer == 0 :
        print("Computer:剪刀")
    elif computer == 1 :
        print("Computer:石头")
    else :
        print("Computer:布")
#判断输赢,从平手,赢,其它情况分情况。
#总共分为3*3共9种情况,3种情况平,3胜,3负。赢的情况为(2,1),(1,0),(0,2)
#输的情况是(1,2),(0,1),(2,0),本例使用比大小,增加(0,2),减少(2,0)的方式表达赢。
    if player == computer:
        print("平手")
      #
    elif (player > computer and not (player==2 and computer == 0)) \
        or (player==0 and computer == 2):
        print("恭喜!你赢了!")
    else:
        print("哈哈,你输了:)")

重复——循环

​ 至始至终,计算机相对于人来说最大的优势在于可以重复,稳定的执行同一件事,循环就是配置重复任务的方式。Python支持for循环和while循环。

for循环

主流程序语言都有for循环,其逻辑是先定义一个序列,后遍历序列中的每一个参数后,循环结束。Python支持多种方式定义序列,支持range函数,字符串,列表等。

range函数

左闭右开,只输入一个值则表示左区间为0,左区间必须小于右区间。

#单个参数,相当于range(0,5) 省略了0,

for i in range(5):
    print(i)

#输出
0
1
2
3
4

#支持配置步长,使用第三个参数
for i in range(0,10,3):
    print(i)
    
#输出
0
3
6
9
字符串、列表
# 支持使用字符串作为序列
name 

你可能感兴趣的:(爬虫速成,python,数据结构)