Python学习

1.pycharm一些常用设置

设置通用代码模板

2.注释

单行注释:#

多行注释: ‘’’ ‘’‘’

3.变量类型

Number(数字) : int(有符号整形)、long(长整型,也可以代表八进制和十六进制)、float(浮点型)、complex(复数)
布尔类型:True、Flase
String(字符串)
List(列表)
Tuple(元祖)
Dictionary(字典)

使用

# 变量类型的基本使用
#  int
money = 5000
#  float
money2 = 1.2# boolean  布尔
sex = True
gender = False#  String 字符串 使用的单引号或者双引号
s = "111"# 单引号和双引号的嵌套
s4 = '"嵌套"'
print(s4)
s5 = "'嘿嘿嘿'"
print(s5)# list 列表name_list = ['周杰伦','复活科比']
print(name_list)# tuple 元组
age_tuple =(18,19,20)
print(age_tuple)# dict 字典
# 应用场景 :scrapy框架使用
person = {"key":"value","age":18}
print(person["key"])

4.查看变量数据类型

使用type方法判断变量的数据类型

a = 1
print(a)
print(type(a))# float
b = 2.5
print(b)
print(type(b))# boolean
c = True
print(c)
print(type(c))# String
d = "中国"
print(d)
print(type(d))# List
e = ["str",111]
print(e)
print(type(e))# Dist
f = {"a":"aaa","b":222}
print(f)
print(type(f))# Tuple
g = (1,2,3,4,5)
print(g)
print(type(g))

5.类型转换

# 字符串中特殊字符类型不能被转换
# 转换成整形
# str ---> int
str = '123'
print(type(str))
num = int(str)
print(type(num))# float --> int
a = 1.23
print(type(int(a)))# boolean --> int False = 0 True = 1
b = True
print(type(int(b)))

6.赋值运算符

d,e,f = 1,2,3
print(d)

7.逻辑运算符

# 逻辑运算符 and:与 or:或 not:非
# and:都成立为True
# or:一个成立为True,两个都不成立为False
# not:逻辑非,成立的为False,不成立的True

8.输入输出

输出

# 普通输出
print("1111")# 格式化输出
# scrapy框架的时候 excel文件 mysql redis
age = 22
name = '张三'
print("我的年龄是:"+str(age))
# %s 代表着字符串   %d 代表着数值
print("我的名字是:%s,我的年龄是:%d" % (name,age))

输入

# 输入
code = input('请输入验证码:')
print("我的验证码是:%s" %code)

9.if语句

age = 22
if age>18:print("你成年啦!")score = int(input('请输入成绩:'))
if score>=90:print("优秀")
elif score>=80:print("良好")
elif score>=70:print("及格")
else:print("不及格")

10.for循环语句

# 循环字符串
# range(5)
# range(1,6)
# range(1,10,3)
# 循环一个列表s = 'china'
# i是字符串中的字符变量(c、h、i、n、a)
# s是代表的是要遍历的数据
# range(5) 0~4 左闭右开区间(0,5)
# for i in range(5):
#     print(i)# range(1,6)
# for i in range(1,6):
#     print(i)# range(1,10,3)
# i=i+3 只要小于<10  步长
# for i in range(2,10,3):
#     print(i)# 循环一个列表
a_list = ['zs','ls','ww']
for i in range(0,len(a_list)):print(i)# len() 判断列表中元素的个数
print(len(a_list))

11.字符串高级

获取长度:len len函数可以获取字符串的长度
查找内容:find 查找指定内容在字符串中是否存在,如果存在就返回该内容在字符串中第一次出现的开始位置索引值,如果不存在,则返回-1.
判断:startswith,endswith 判断字符串是不是以谁谁谁开头/结尾计算
出现次数:count 返回 str在start和end之间 在 mystr里面出现的次数
替换内容:replace 替换字符串中指定的内容,如果指定次数count,则替换不会超过count次。
切割字符串:split 通过参数的内容切割字符串
修改大小写:upper,lower 将字符串中的大小写互换
空格处理:strip 去空格
字符串拼接:join 字符串拼接
# len 判断长度
s = 'china'
print(len(s))# 查找指定内容在字符串中是否存在,如果存在就返回该内容在字符串中第一次出现的开始位置索引值,如果不存在,则返回-1.
s1 = 'china'
print(s1.find('c'))# 判断字符串是不是以谁谁谁开头/结尾计算
s2 = 'china'
print(s2.startswith('c'))
print(s2.endswith('c'))# 返回 str在start和end之间 在 mystr里面出现的次数
s3 = 'aaabbb'
print(s3.count('a'))# 替换字符串中指定的内容,如果指定次数count,则替换不会超过count次。
s4 = 'cccddd'
print(s4.replace('c','f'))# 通过参数的内容切割字符串
s5 = '1#2#3#4#5'
print(s5.split('#'))# 将字符串中的大小写互换
s6 = 'aBcD'
print(s6.upper())
print(s6.lower())# 去空格
s7 = ' ddad '
print(len(s7.strip()))# 字符串拼接
s8 = 'a'
print(s8.join('hello'))

12.列表高级

1.添加

# append 默认在列表的最后添加数据
food_list = ['老八秘制小汉堡','小鸡炖蘑菇']
print(food_list)
food_list.append('五花肉')
print(food_list)# insert  index的值就是你想插入数据的那个下标
char_list = ['a','c','d']
print(char_list)
char_list.insert(1,'b')
print(char_list)# extend 可以迭代数据
num_list = [1,2,3]
num1_list = [4,5,6]
num_list.extend(num1_list)
print(num_list)

2.修改

# 修改
city_list = ['北京','武汉','重庆']
print(city_list)
# 将列表中的元素的值修改
city_list[2] = '大连'
print(city_list)

3.查找

# 查找 in判断某一个元素是否在某一个列表中
food2_list = ['老八秘制小汉堡','小鸡炖蘑菇','东北乱炖']
# 判断一下在控制台输入的数据是否在列表中
fond = input('请输入您想吃的食物')
if fond in food2_list:print("在")
else:print("不在")# not in 判断某一个元素不在某一个列表中
ball_list = ['篮球','台球']
ball = input("请输入您喜欢的球类:")
if ball not in ball_list:print("不在")
else:print('在')

4.删除

  • del:根据下标进行删除
  • pop:删除最后一个元素
  • remove:根据元素的值进行删除
# 删除
# del
a_list = [1,2,3,4,5]
print(a_list)
# 根据下标删除列表中的元素
del a_list[2]
print(a_list)# pop:删除最后一个元素
b_list = [1,2,3,4,5]
print(b_list)
b_list.pop()
print(b_list)# remove:根据元素的值进行删除
c_list = [1,2,3,4,5]
print(c_list)
c_list.remove(1);
print(c_list)

13.元组高级

a_tuple = (1,2,3,4)
print(a_tuple[0])# 元祖是不可以修改里面的内容
# a_tuple[0] = 2 是错误的# 1.元组和列表的区别是列表可以修改,元组不能修改
a_list = [1,2,3,4]
print(a_list[0])
a_list[0] = 5
print(a_list[0])# 2.当元组中只有一个元素的时候,那么他是整型数据
b_tuple = (5)
print(type(b_tuple))
# 定义只有一个元素的元组,需要在唯一元素后面写一个逗号
c_tuple = (5,)
print(type(c_tuple))

14.切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作

切片的语法:[起始:结束:步长],也可以简化使用[起始:结束]

s = 'hello world'
# 在切片中直接写一个下标
print(s[0]) #h# 起始:结束,不包含结束,左闭右开
print(s[0:4]) #hell# 起始:,代表起始开始到末尾
print(s[1:]) #ello world# :结尾,从头到结尾
print(s[:4]) #hell# 起始:结束:步长 到下标为6的位置结束,每次增长2个
print(s[0:6:2]) # hlo

15.字典高级

查询

# 定义一个字典
person  = {'name':'张三','age':'22'}# 访问person的name
print(person['name'])# 获取一个不存在的key
# print(person['sex'])  # errorKey# 第二种获取方法 person.get('name')
print(person.get('name'))
# 使用.get获取一个不存在的key不会报错会给一个None
print(person.get('key')) # None

修改

person2 = {'name':'李四','age':'23'}# 修改之前的字典
print(person2.get('name'))# 修改name的值为法外狂徒
person['name'] = '法外狂徒'
print(person['name'])

添加

person3 = {"name":'老大'}
# 如果使用变量名字['键'] = 数据时,这个键如果在字典中不存在 那么就会变成新增元素
person3['age'] = '18'
print(person3['age'])

删除

# 删除
# del
# (1)删除字典中指定的某一个元素
person4 = {'name':"老马",'age':18}
# 删除前
print(person4)
del person4['age']
# 删除后
print(person4)
# (2)删除整个字典
# del person4
# print(person4)
# clear
# (3) 清空字典 但是保留字典对象
person4.clear()
print(person4) # {} 删除整个字典但是不删除结构

遍历

# 遍历
person5 = {"name":"杨松","age":23,"sex":"男"}# (1) 遍历字典的key
# 字典.keys()
for key in person5.keys():print(key)# (2) 遍历字典的value
for val in person5.values():print(val)
# (3) 遍历字典的key和value
for key,val in person5.items():print(key,val)for key in person5.items():print(key)# (4) 遍历字典的项/元素
for item in person5.items():print(item)

16.函数

函数的定义与调用

# 定义函数
def f():print("欢迎")# 调用函数
f()

函数参数的使用

# 使用函数计算1和2的和
def add(a,b):print(a+b)# 位置参数
add(3,4)
# 关键字传参
add(b = 100,a = 200)

函数返回值

def add(a,b):return a+bc = add(3,4)
print(c)

17.文件

文件的打开与关闭

# 文件的打开与关闭
# open(文件路径,访问模式)
# 模式:w 可写
#      r 可读
f = open('test.txt','w')f.write("hello world")# 文件夹是不可以创建的,需要手动创建
f = open("demo/text.txt","w")
f.write("hello python")# 文件的关闭
fp = open("demo/a.txt",'w')
fp.write("hello")
fp.close()

文件路径

绝对路径:绝对位置,完整地描述了目标的所在地,所有目录层级关系是一目了然的。

  • 例如:E:\python,从电脑的盘符开始,表示的就是一个绝对路径。

相对路径:是从当前文件所在的文件夹开始的路径。

  • test.txt,是在当前文件查找 test.txt文件
  • ./test.txt,也是当前文件夹中查找 test.txt文件,./表示的是当前文件夹
  • ../test.txt,从当前文件夹的上一级文件夹里查找 test.txt文件。../表示的是上一级文件夹
  • demo/test.txt,在当前文件夹里查找 demo这个文件夹,并在这个文件夹里查找 test.txt文件

文件的读写

# 写数据
# write方法
fp = open("demo/test.txt","a")
fp.write("hello world,I am here\n"*5)
fp.close()# 如果再运行这段代码,可以覆盖代码
# 想在执行之后追加数据,更改模式 a
# 如果模式变为了a 那么就会执行追加的操作# 读数据
fp = open("demo/test.txt", "r")
# 默认情况下,read是一字节一字节的读,效率比较低
content = fp.read()
print(content)# readline读取一行数据
content = fp.readline()
print(content)# readlines可以按照行来读取 但是会将所有的数据都读取到,并且以一个列表的形式返回
# 而列表的元素是一行一行的数据
content = fp.readlines()
print(content)

18.文件的序列化和反序列化

通过文件操作,我们可以将字符串写入到一个本地文件。但是,如果是一个对象(例如列表、字典、元组等),就无法直接写入到一个文件里,需要对这个对象进行序列化,然后才能写入到文件里。

设计一套协议,按照某种规则,把内存中的数据转换为字节序列,保存到文件,这就是序列化,反之,从文件的字节序列恢复到内存中,就是反序列化。

Python中提供Json这个模块用来实现数据的序列化和反序列化。

  • 对象----->字节序列 === 序列化
  • 字节序列----->对象 ===反序列化

JSON模块

JSON是一种轻量级的数据交换标准。JSON的本质是字符串。

使用JSON实现序列化

JSON提供了dump和dumps方法,将一个对象进行序列化。

dumps方法的作用是把对象转换成字符串,它本身不具备将数据写入到文件的功能。

# fp = open("demo/test.txt",'w')
# # 默认情况我们只能将字符串写入文件中
# fp.write("hello world")
# fp.close()# fp = open('test.txt','w')
# name_list = ['zhangsan','lisi']
# # 列表不能写入文件中 如果想写入到文件,那么必须使用序列化操作
# fp.write(name_list)# 序列化的2种方式
# dumps()
# (1) 创建一个文件
fp = open('demo/test.txt','w')
# (2) 定义一个列表
name_list = ['zhangsan','lisi']
# (3) 导入json模块到该文件
import json# 序列化
# 将python对象变成json字符串
# 我们在使用scrapy框架的时候,该框架会返回一个对象 我们要将对象写入到文件中,就要使用json.dumps
names = json.dumps(name_list)# 将names写入到文件中
fp.write(names)fp.close()# dump
# 在将对象转换为字符串的同时,指定一个文件的对象,然后把转换后的字符串写入到这个文件里
import jsonfp = open("demo/test.txt", 'w')
name_list = ['zss', 'ls']
import json
json.dump(name_list,fp)
fp.close()# 反序列化
# 将json字符串变成一个python对象
fp = open("demo/test.txt",'r')
content = fp.read()
print(content)
# <class 'str'>
print(type(content))
# loads 加载字符串
# 反序列化json对象为python对象
result = json.loads(content)
# 转换之后
print(result)
# <class 'list'>
print(type(result))
fp.close()# load 加载文件
fp = open("demo/test.txt",'r')
content = json.load(fp)
print(content)
print(type(content))

19.异常

try:
可能出现异常的代码
except 异常的类型
友好的提示

try:fp=open("demo/s.txt",'r')fp.read()
except FileNotFoundError:print('系统正在升级,请稍后')

20.Urllib

一、反爬手段
User‐Agent:
User Agent中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
代理IP
西次代理
快代理
什么是高匿名、匿名和透明代理?它们有什么区别?
1.使用透明代理,对方服务器可以知道你使用了代理,并且也知道你的真实IP。
2.使用匿名代理,对方服务器可以知道你使用了代理,但不知道你的真实IP。
3.使用高匿名代理,对方服务器不知道你使用了代理,更不知道你的真实IP。
验证码访问- 打码平台
- 云打码平台
- 超级												

Python基础学习--基于尚硅谷python教学视频相关推荐

  1. Java基础学习:尚硅谷项目三 开发团队调度软件

    Java基础学习:尚硅谷项目三 开发团队调度软件 一.软件功能与结构设计 1. 软件功能 该软件实现以下功能: 软件启动时,根据给定的数据创建公司部分成员列表(数组) 根据菜单提示,基于现有的公司成员 ...

  2. 最新尚硅谷2018SpringBoot教学视频(内含Docker)

    尚硅谷SpringBoot视频教程(内含Docker)附代码+笔记+课件 下载地址:百度网盘

  3. python基础学习笔记12:Python面向对象编程

    面向对象编程思想 1.什么是面向过程 传统的面向过程的编程思想总结起来就八个字--自顶向下,逐步细化! 将要实现的功能描述为一个从开始到结束按部就班的连续的"步骤" 依次逐步完成这 ...

  4. 【Python基础学习笔记day08】python变量的基本使用+变量定义ipython+pycharm+超市买苹果+变量的类型+关于函数+变量的格式化输出+个人名片案例

    变量的基本使用 文章目录 变量的基本使用 目标 01. 变量定义 1) 变量演练1 -- iPython 2) 变量演练 2 -- PyCharm 3) 变量演练 3 -- 超市买苹果 思考题 02. ...

  5. Python基础学习-1-廖雪峰课程-Python的数据类型和面向对象

    1.Python程序的组成 程序由模块组成 模块由语句.函数.类等组成 语句包含表达式 表达式建立并处理对象 2.常用的程序文件的后缀 .py Python语言 .pyc Python字节码文件 c: ...

  6. 尚硅谷python培训怎么样

    为了给需要了解机构情况的同学提供最真实的信息,训哥儿解锁新栏目--机构测评. 每周测评一期,每期一家机构,每次采访4-6名该机构的学员,调查机构内部信息,给大家提供最可靠的参考. 第八期机构测评已经在 ...

  7. 尚硅谷Python自学笔记

    文章目录 尚硅谷Python自学笔记 计算基础知识 进制 文本文件和字符集 Python介绍 Python入门 Pytho基本语法 数值 字符串 对象(Object) 对象的结构 算数运算符 条件判断 ...

  8. python视频教程,尚硅谷python视频教程,百度盘下载

    python视频教程,尚硅谷python视频教程,百度盘下载 尚硅谷python视频百度盘下载,关注微信公众号:美丽游戏动漫,回复python获取解压密码,骗人是XXX. 公众号里还有码农想要的福利, ...

  9. 深度学习必备书籍——《Python深度学习 基于Pytorch》

    作为一名机器学习|深度学习的博主,想和大家分享几本深度学习的书籍,让大家更快的入手深度学习,成为AI达人!今天给大家介绍的是:<Python深度学习 基于Pytorch> 文章目录 一.背 ...

  10. python自学用什么书好-适合python基础学习的好书籍

    分享几本python基础学习的书籍给大家 <Python编程:从入门到实践> 内容简介:本书是一本针对所有层次的Python 读者而作的Python 入门书.全书分两部分:第一部分介绍用P ...

最新文章

  1. qlabel 边加载边更新_盘点十四款国产进口边三轮,挎斗子摩托车,售价从1万至60多万...
  2. opencv利用直方图判断人脸光照质量
  3. Docker知识4:如何在win10下安装 / 使用ubuntu ?应用WSL2
  4. [备忘] Automatically reset Windows Update components
  5. python 变量引用_Python 知识要点:变量及引用
  6. 通过Zuul上传文件,禁用Zuul的Filters
  7. 洛谷P3006 [USACO11JAN]瓶颈Bottleneck(堆模拟)
  8. 安全和连接是IoT联网设备2大挑战
  9. Jmeter(二)关联
  10. 音视频开发(33)----麦克风阵列入门(一)
  11. BZOJ4627 前缀和 + 权值线段树
  12. 大数据电商数仓分析项目
  13. DreamWeaver CS3中的SPRY的自定义验证
  14. 批量更新 elasticsearch 内指定字段状态, 先查询后更新
  15. 如何使用 jdk帮助文档
  16. 吾爱破解专用虚拟机系统不能安装VMwaretools问题!
  17. QGIS数据分析入门——Qgis下载及界面介绍(一)
  18. [转] 串、并行加法器
  19. 2020年最好用的几个PHP开发工具推荐
  20. Single Round Match 506 Round 1 - Division I, Level Two SlimeXGrandSlimeAuto

热门文章

  1. vc2010以及VS2019安装使用教程
  2. 【整理】Ubuntu10.04下安装Altera9.1套件
  3. 云南昭通暴雨强度公式_玉溪市中心城区暴雨强度公式
  4. 自定义小型ajax框架-ajax讲义二
  5. CSND的Markdown使用练习
  6. 防治计算机病毒教案,小学信息技术教案:《防治计算机病毒-计算机病毒》
  7. Spring Boot设置匹配指定后缀*.action *.do的路径
  8. MAVEN实战 整理 笔记
  9. 论文降重的主要内容有什么?
  10. Java菜鸟教程 面向对象初步(一)