Python快速入门-Python基础

Python快速入门

一,python基础

1 ,python窗口命令

pip install 包名 -i 源地址


清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/ 
豆瓣:http://pypi.douban.com/simple/

2,python语法

2.1 注释
#单行注释

'''
这是一个多行注释
'''
2.2 变量
2.2.1 变量的定义
#变量名 = 变量值
weather = '雨'
2.2.2 变量的类型
  • 数字:int,float(long,complex)
    money = 5000
    weight = 53.5
    
  • 布尔(boolen):true/false
    #流程控制语句或性别的变量
    sex = true
    gender = false
    
  • 字符串(string):
    inf = '这是一个字符串'
    inf1 = "这也是一个字符串"
    #单引号中可以嵌套双引号,双引号中可以嵌套单引号,但是单引号中不能嵌套单引号,双引号中不能嵌套双引号。嵌套中的引号会被当成字符串的内容
    
  • 列表(list):
    name_list = ['周杰伦','科比']
    
  • 元组(tuple):
    age_tuple = (18,16,15,25)
    
  • 字典(dict):
    #scrapy框架使用
    #变量名 = {key:value,...}
    person = {'name':'张三','age':18}
    
2.2.3 查看数据类型
type(变量名)
2.2.4 变量的命名规范
  1. 只能由字母,数字,下划线组成
  2. 不能由数字开头,严格区分大小写
  3. 不能使用关键子

建议使用驼峰命名法

2.3 类型转换

爬虫爬取出来的大部分都是字符串类型,需要借助类型转换将数据转换为想要的数据类型

2.3.1 类型转换函数
函数说明
int(x)将x转化为整型
float(x)将x转化为浮点型
str(x)将x转化为字符串
bool(x)将x转化为布尔型
2.3.2 转换为浮点型
2.3.3 转换为字符串

大部分应用场景:将整形转换为字符串,方便拼接

2.3.4 转换为布尔值
  • 非0的整数和浮点数(包括正数和负数)转化为布尔类型的结果均为True
  • 只要字符串,列表,元组,字典中有内容,那就返回True(空格也算内容)
2.4 运算符
2.4.1 算数运算符
  • 基础:+,-,*,/
  • 整除://
  • 取余:%
  • 指数:**
  • 括号:()
  • 注意:字符串的加法用于拼接
2.4.2 赋值运算符
  • 变量赋值
a = 1
  • 同时为多的变量赋值
b = c = 2 
d,e,f = 3
2.4.3 复合赋值运算符

(性能更好)

2.4.4 比较运算符

2.4.5 逻辑运算符

在这里插入图片描述

  • 逻辑运算符性能优化

    当and前面结果为False,其后面的代码将不在执行

    当or前面为True时,其后面的代码将不再执行

2.5 输入输出
2.5.1 输出
  • 普通输出

    print()
    
  • 格式化输出

    %s : 代表字符串

    %d : 代表数值

    print("...%s..%d..."%(str,num))
    
2.5.2 输入
变量 = input('提示')
  • 示例:
name = input('请输入姓名:')
age = input('请输入年龄:')
print('我叫%s,我今年%d岁'%(name,int(age)))
2.6 流程控制
2.6.1 if关键字
  • 基本语法
if 判断条件:
    执行语句
#注意缩进,Tab或者四个空格
    
2.6.2 if-else关键字
  • 基本语法
if 判断条件:
    执行语句
else:
    执行语句
2.6.3 elseif关键字
  • 基本语法
if 判断条件:
    执行语句
elif 判断条件:
    执行语句
else:
    执行语句

2.6.4 for关键字

  • 基本语法
#爬虫中只用到for循环,在此只学习for循环
for 变量 in 要遍历的数据:
    方法体
  • range()函数

    1. range(num)遍历[0,num)

    2. range(num_1,num_2) 遍历 [num_1,num_2)

    3. range(num_1,num_2,num_3) 遍历 [num_1,num_2) 步长为num3

  • 示例

    ############for循环的使用############
    inf = "i'm learning python"
    for i in inf:
        print(i)
       
    ############range(num)的使用############
    inf = "i'm learning python"
    for i in range(len(inf)):
        print(inf[i])
    #len()返回字符串长度
    
2.7 数据类型高级
2.7.1 字符串高级
  • 获取长度:len

    len(str)
    
  • 查找内容:find

    #返回第一次出现的位置,使用方法类似与面向对象的编程
    inf = '12345'
    print(inf.find('1'))
    #结果:0
    
  • 判断:startswith,endswith

    #判断字符串是否以某字符串开始和结尾
    inf = '12345'
    print(inf.startswith('12'))
    #结果:True
    print(inf.endswith('12')) 
    #结果:False
    
  • 计算出现次数:count

    inf = '1212345'
    print(inf.count('12'))
    #结果:2
    
  • 替换内容:replace

    inf = '1212345'
    print(inf.replace('1','0'))
    #前面的替换为后面的
    #结果:0202345
    
    
  • 切割字符串:split

    #从特定字符切割字符串
    inf = '1#2#3'
    print(inf.split('#'))
    #结果:['1', '2', '3']
    #结果返回列表
    
  • 修改大小写:upper,lower

    inf = 'China'
    print(inf.upper())
    print(inf.lower())
    #注意其为无参数的方法,不要忘记写括号
    #结果:CHINA  china
    
  • 空格处理:strip

    #去除空格
    inf = '  China  '
    print(inf)
    print(inf.strip())
    
  • 字符串拼接:join

    str_1.join(str_2)
    #将str_1插入到每一个str2中
    
    #例:
    str_1 = ' '
    print(str_1.join('hello'))
    #结果:h e l l o
    
2.7.2 列表高级
  • 添加

    • append

      向列表的末尾添加数据

      age_list = [16,15,16,14,13]
      print(age_list)
      age_list.append(11)
      print(age_list)
      
      #结果:
      #[16, 15, 16, 14, 13]
      #[16, 15, 16, 14, 13, 11]
      
    • insert

      #insert(index(插入的下标 ),object)
      age_list = [1,3,4,5]
      print(age_list)
      age_list.insert(1,2)
      print(age_list)
      
      #结果:
      #[1, 3, 4, 5]
      #[1, 2, 3, 4, 5]
      
    • extend

      将两个列表合并

      list_1 = [1,2,3,4,5]
      list_2 = [6,7,8,9,10]
      list_1.extend(list_2)
      print(list_1)
      
      #结果:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
      

      注意:该方法不会返回值,即不能直接输出或使用该函数得到结果,而是需要和上面例子中一样,先使用方法后再使用。

  • 修改

    list_name[index(下标)] = 修改的值
    #注意下标从0开始
    
  • 查询

    • in

      in 列表
      #返回 bool 值
      
    • not in

      in 列表
      #返回 bool 值
      
  • 删除

    • del:根据指定下标删除

      del list_name[index]
      
    • pop:删除最后一个值

      list_name.pop()
      
    • remove:根据元素的值进行删除

      list_name.remove(object)
      #object:表示想要删除元素的值
      
2.7.3 元组高级
  1. Pyhon的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。

  2. 元组的访问方式也是通过’[]'加下标来访问

  3. 定义只有一个元素的元组,结尾要加上’,’ 否则会出现数据类型错误

    tuple_1 = (1,)
    print(tuple_1)
    
2.7.4 切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长]也也可以简化使用[起始:结束]
注意:选取的区间从“起始"位开始,到”结束"位的前一位结束(不包含结束位本身),步长表示选职间隔。

#访问指定下标的值
inf[1]
#访问指定区间的值
inf[1,4]  	#左闭右开
#从指定到结束
inf[2:]
#从头到指定结束(左闭右开)
inf[:3]
#指定区间和步长
inf[1:10:2]	#最后一位为步长,左闭右开,最后不超过(10-1)
2.7.5 字典高级

字典的定义:

dic_naem = {key:value,...}
  • 查询

    字典的访问:

    dic_name[key]			#key不存在会报错
    #或
    dic_name.get(key)		#key不存在会返回None
    

    例子:

    dic_1 = {'name':'章北海','age':43}
    print(dic_1['name'])
    print(dic_1['age'])
    
  • 修改

    dic_name[key] = new_value
    
  • 添加

    dic_name[new_key] = new_value
    #如果键不存在就为添加,如果存在就为添加
    
  • 删除

    • del

      • 删除指定的某个元素

        del dic_naem[key]
        
      • 删除整个字典

        del dic_naem
        
    • clear:清空字典

      dic_name.clear()
      
  • 遍历

    • 遍历字典的key

      dic_name.keys()
      
      dic_1 = {'name':'章北海','age':43}
      for key in dic_1.keys():
          print(key)
      
    • 遍历字典的value

      dic_name.values()
      
      dic_1 = {'name':'章北海','age':43}
      for value in dic_1.values():
          print(value)
      
      
    • 遍历字典的key和value

      dic_name.items()
      
      dic_1 = {'name':'章北海','age':43}
      #注意要分开
      for key,value in dic_1.items():
          print(key,value)
      
    • 遍历字典的项/元素

      dic_1 = {'name':'章北海','age':43}
      #注意要分开
      for item in dic_1.items():
          print(item)
      
2.8 函数
2.8.1 定义函数
def 函数名(参数,....):
    函数体
2.8.2 调用函数
函数名(参数,....)
#或
函数名(关键字_1 = value_1,....)    #这种方法可以打乱参数的顺序
2.8.3 函数的返回值
def 函数名(参数,....):
    函数体
    return 返回值
2.8.4 局部变量和全局变量
  • 内部变量:定义在函数的内部定义的变量

    特点:其作用域范园是涵数內部,而函数的外部是不可以使用

  • 全局变量:定义在函数外部的变量我们称之为全局变量
    特点:可以在函数的外部使用,也可以在函数的内部使用

例:

#####定义#####
def max(a,b):
    if a > b:
        return a
    else:
        return b
#####调用#####
print(max(3,2))
2.9 文件
2.9.1 文件的打开和关闭
#####打开文件
f = open('file_name(要加后缀)',访问模式(要加引号))
#存在就打开,不存在就创建(不能创建文件夹)

#####关闭文件
f.close()
  • 文件路径

    • 绝对路径

    • 相对路径

      • filename:当前文件夹下的文件
      • ./filename:当前文件夹下的文件
      • …/filename:当前文件夹上一级目录寻找filename文件
      • demo/filename:当前文件夹下的demo目录寻找filename文件
  • 文件的访问模式

在这里插入图片描述

2.9.2 文件的读写
  • 写数据(write)

    f = open('test_file.txt','w')
    f.write('hello,python!\n' * 999)
    #如果文件存在,就会先清空,后写,将模式改为a为追加
    f.close()
    
  • 读数据(read / readline)

    f = open('test_file.txt','r')
    
    inf = f.read()
    #默认情况下,r一字节一字节读,速度比较慢,readline较快
    inf = f.readline()
    #readline只能读一行,使用readelines能够读取多行(返回列表)
    inf = f.readlines()
    print(inf)
    f.close()
    
2.9.2 文件的序列化和反序列化

通过文件操作,我们可以将字符串写入到一个本地文件。但是,如果是一个对象(例如列表、字典、元组等),就无
法直接写入到一个文件里,需要对这个对象进行序列化,然后才能写入到文件里。
设计一套协议,按照某种规则,把内存中的数据转换为字节序列,保存到文件,这就是序列化,反之,从文件的字
节序列恢复到内存中,就是反序列化。
Python中提供了JSON这个模块用来实现数据的序列化和反序列化。(必须先导入json:import json)

序列化:对象 -> 字节序列

反序列化:字节序列 -> 对象

  • 序列化

    • dumps

      json.dumps(object)
      
      #####例子#####
      import json
      a = [1,2,3,4,5]
      f = open('txt.txt','w')
      f.write(json.dumps(a))
      
    • dump

      对象转换为字符半的同时,指定一个文件的对象然后把转换后的字符串符存到这个文件里

      json.dump(object,file_name)
      
      #####例子#####
      import json
      a = [0,1,2,3,4,5]
      f = open('txt.txt','w')
      json.dump(a,f)
      
      
  • 反序列化

    • loads

      object = json.loads(str)
      
      #####例子#####
      import json
      
      f = open('txt.txt','r')
      inf = f.read()
      #print(inf)
      #print(type(inf))
      inf = json.loads(inf)
      print(inf)
      print(type(inf))
      
    • load

      object = json.load(file_name)
      
      #####例子#####
      import json
      
      f = open('txt.txt','r')
      inf = json.load(f)
      print(inf)
      print(type(inf))
      
      f.close()
      
      
    • dump

      对象转换为字符半的同时,指定一个文件的对象然后把转换后的字符串符存到这个文件里

      json.dump(object,file_name)
      
      #####例子#####
      import json
      a = [0,1,2,3,4,5]
      f = open('txt.txt','w')
      json.dump(a,f)
      
      
  • 反序列化

    • loads

      object = json.loads(str)
      
      #####例子#####
      import json
      
      f = open('txt.txt','r')
      inf = f.read()
      #print(inf)
      #print(type(inf))
      inf = json.loads(inf)
      print(inf)
      print(type(inf))
      
    • load

      object = json.load(file_name)
      
      #####例子#####
      import json
      
      f = open('txt.txt','r')
      inf = json.load(f)
      print(inf)
      print(type(inf))
      
      f.close()
      
      
2.10 异常

异常格式

try:
    可能出现的异常代码
except 异常类型:
    提示语句
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值