leetcode
if判断
==if:如果 --》 现实世界中的判断==
1.单分支结构
dog_name = 'dachangtui' # 一个=是赋值
if dog_name == 'dachangtui': # 两个=是两端比较是否相等
print('干它')
if dog_name == 'fenggou':
print('干掉它')
# if判断的语法
# 自上而下运行if 条件:
print('条件成立干嘛干嘛') # 条件成立才会执行该段代码,不成立不执行该段代码 ....
print(1)
2.双分支结构
'''
if 条件:
print('条件成立干嘛干嘛') # 条件成立才会执行该段代码,不成立不执行该段代码
else:
print('条件不成立干嘛干嘛)# 条件不成立才会执行该段代码,成立不执行该段代码'''
dog_name = ''
if dog_name =='fenggou':
print('干掉它')
else:#
print('干它')
1.多分支结构
两个以上
1.身高>1.5全票
2.身高1.2~1.5半票
3.否则免票
#案例1:儿童门票
height=1.2
price=100
if height>1.5
print('门票价格:',price)
elif height>1.2
print('门票价格:',price*0.5)
else
print('门票价格:',price*0)
# 沿伸多个分支总结
if 条件:
print('条件成立干嘛干嘛') # 条件成立才会执行该段代码,不成立不执行该段代码
elif 条件:
print('if条件不成立走这条')
elif 条件:
...
else:
print('条件不成立干嘛干嘛)# 条件不成立才会执行该段代码,成立不执行该段代码
#案例2:打印成绩
#判断分支思路
#如果 成绩>=90,打印"优秀"
#如果 成绩>=80 并且 成绩<90,打印"良好"
#如果 成绩>=70 并且 成绩<80,打印"普通"
#其他情况:打印"差"
grade = 100
if grade >= 90:
print('优秀')
elif grade >= 80:
print('良好')
elif grade >= 70:
print('普通')
else:
print('差')
#猜年龄游戏
age = 18
age_inp = int(input('请输入你猜的年龄:')) # 20
if age > age_inp:
print('猜小了')
elif age < age_inp:
print('猜大了')
else:
print('猜对了')
IPO
Input 输入 --》 定义变量
Process 处理 --》 逻辑判断 --》 更改定义的变量 --》 变量不断在变化
Output 输出 --》 结果
python以前叫做脚本(胶水)语言,现在叫做解释型语言
预科写的叫做脚本文件:一个单独的文件,用来做特定的某一种事情,一个公司, 10-200
16年alphago
现在叫做解释型语言
正式开课之后讲的叫做项目:一个单独的文件夹,用来做多种事情,集团, 500上
for循环
==循环:重复做一件事情==
# for循环
# range方法
# print(list(range(10))) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 默认从0开始,10结束,默认步长为1,顾头不顾尾
# print(list(range(1,10))) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 1表示开始,10表示结束,默认步长为1,顾头不顾尾
# print(list(range(1,10,2))) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 1表示开始,10表示结束,2表示步长,顾头不顾尾
# for i in [1, 2, 3, 4, 5, 6, 7, 8, 9]: # 把列表内部的值循环打印
# for i in range(1, 32): # 把列表内部的值循环打印 # abc = 1 # abc = 2#
# print(i ** 2)
# print(f'8月{i}日刷牙')
# 格式化输出-->字符串的拼接
name = 'nick'
print(name + ' handsome')
print('{name} handsome ') # {name} handsome
print(f'{name} handsome ') # 字符串前面加上f,{}就有了特殊意义,name不是普通的字符,他会去引用变量
for循环嵌套
# 深入了解
# for循环嵌套: 内层循环全部走完,才会走一次外层循环,每次走入外层循环,内层循环都会
重置
# j --> 1,2,3,...12
for j in range(1,13): # j =1 # j = 2
for i in range(1, 32): # 控制的是日
print(f'{j}月{i}日刷牙')
for + break
# for + break: 循环提前被中断
for j in range(1,13): # j =1 # j = 2 # j = 3
if j == 3:
break # 中断循环
for i in range(1, 32): # 控制的是日
print(f'{j}月{i}日刷牙')
for+continue
# for+continue
for j in range(1,13): # j =1 # j = 2 # j = 3
if j == 3:
break # 中断循环
for i in range(1, 32): # 控制的是日
if j==2 and i > 28: # A and B , A和B同时满足才会触发
continue # 跳过本次循环,不执行下面的代码,直接开始下一次循环
print(f'{j}月{i}日刷牙')
break
# break
for i in range(101): # 打印0-100
if i == 51: # 打印1-50
break # 中断循环,跳出本层(一层有多次)循环
print(i)
continue
# continue
for i in range(101): # 打印0-100
if i == 51:
continue # 跳出本次循环,不执行下面的代码,然后直接进入下一次循环
print(i)
#案例3:正常一年时间版本刷牙
######################
## 正常版本的打印时间 ##
######################
for j in range(1, 13):
for i in range(1, 32):
if j == 2 and i > 28:
continue
elif j in [4, 6, 9, 11] and i > 30:
continue
print(f'{j}月{i}日刷牙')
for j in range (1,13):
if (j % 2 == 1 and j <9) or (j % 2 == 0 and j >7):
for i in range(1,32):
print(f'{j}月{i}日刷牙')
elif j % 2 == 0 and j == 2:
for i in range(1,30):
print(f'{j}月{i}日刷牙')
else:
for i in range(1, 31):
print(f'{j}月{i}日刷牙')
爬虫三部曲
- 发送请求
- 解析数据
- 保存数据
爬虫精髓
- 分析往网站的通信流程
- 分析查找数据从何而来
- 分析目标网站的反扒策略
- 根据目标网站的反扒策略写攻击手段,获取数据
爬取豆瓣TOP250电影信息
分析目标网站的异步请求返回的数据(接口)
#流程
Requests模块使用:
response = requests.get()
response.text
response.content
response.encoding = 'utf-8'# 解决字符编码问题
1.爬虫三部曲
- 发送请求
- 解析数据
- 保存数据
2.爬取豆瓣电影接口
- 分析目标网站的请求流程
- 下拉发送异步请求
- 接口地址 ----> Json
3.Json
json.loads()
json.dumps()
4.爬取中国黄页手机号码
User-Agent: 证明你是浏览器