python基础语法 and Http请求获取网络Html资源
import math
print("Hello World!!")
print("你好世界")
print('nihao' + "你好世界")
print("nihao\'nihao\'")
print("He said \"let\'s go!\"")
print("hello \n world")
print('''窗前明月光
疑是地上霜
举头望明月
低头思故乡''')
print(1 / 2)
my_love = "15137628639"
print(my_love)
print(math.sin(1))
print(1 + 2 - 3 / 4 * 5)
'''
多行注释
这是多行注释
'''
print(len("hello"))
print(len("hello!\n"))
print(len("he said\"你好\""))
string = "hello"
print(string[1] + string[0])
'''
空值类型 NoneType
None
可以赋值还没确定的值
'''
n = None
b1 = True
b2 = False
print(type(b1))
print(type(string))
print(type(n))
user_name = input("请输入您的用户名")
print("您的用户名为" + user_name)
user_weight = float(input("请输入您的体重,单位kg"))
user_height = float(input("请输入您的身高,单位m"))
print("您的BMI为" + str(user_weight / user_height ** 2))
mode_index = int(input("请输入心情指数"))
if mode_index >= 60:
print("YES")
print("NB")
else:
print("NO")
bmi = int(input("请输入您的BMI"))
if 15 < bmi < 20:
print("shou")
elif 20 <= bmi <= 24:
print("zheng")
else:
print("pang")
shopping_list = ["hello world", 1, True, None]
print(shopping_list)
shopping_list.remove(None)
print(shopping_list)
print(len(shopping_list))
print(shopping_list[0])
Price_list = [12, 335, 231, 6763, 323, 4546, 2325, 135, 21]
Price_max = max(Price_list)
Price_min = min(Price_list)
PriceSortList = sorted(Price_list)
print(Price_min)
print(Price_max)
print(PriceSortList)
map = {"yyds": "永远的神", 666: "NB"}
query = input("请输入你要查询的关键词")
if query in map:
print(map[query])
else:
print("暂未收录")
print("已收录" + str(len(map)) + "条。")
for i in range(1,11):
print(i)
for i in range(1,11,2):
print(i)
for i in range(5):
print(i)
i = 1
while i < 10:
print(i)
i = i + 1
lmlname = "lml"
lmlyear = 21
message = '''
金{year}贺岁,欢乐祥瑞。
给{name}拜年了!!
'''.format(year=lmlyear, name=lmlname)
print(message)
def calculate_BMI (weight, height):
BMI = weight / height ** 2
if BMI <= 18.5:
category = "偏瘦"
elif BMI <= 25:
category = "正常"
elif BMI <= 30:
category = "偏胖"
else:
category = "肥胖"
print("您的类型为:"+category)
return BMI
print(7//3)
class Student:
def __init__(self, name, student_id):
self.name = name
self.student_id = student_id
self.grades = {"语文":0,"数学":0,"英语":0}
def set_grade(self,course,grade):
if course in self.grades:
self.grades[course] = grade
def print(self):
print(f"学生{self.name} 学号:{self.student_id}的成绩为:")
for course in self.grades:
print(f"{course}: {self.grades[course]}分")
chen = Student("小陈",1)
li = Student("小李",2)
print(li.grades)
print(chen.student_id)
chen.set_grade("语文",90)
li.set_grade("数学",90)
chen.print()
li.print()
class Employee:
def __init__(self, name, id):
self.name = name
self.id = id
def print_info(self):
print(f"名字:{self.name} 工号:{self.id}")
class FullTimeEmployee(Employee):
def __init__(self, name, id, monthly_salary):
super().__init__(name, id)
self.monthly_salary=monthly_salary
def calculte_monthly_pay(self):
return self.monthly_salary
class PartTimeEmployee(Employee):
def __init__(self,name,id,daily_salary,work_days):
super().__init__(name,id)
self.daily_salary=daily_salary
self.work_days=work_days
def calcute_monthly_pay(self):
return self.daily_salary*self.work_days
zhangsan =FullTimeEmployee("张三","1001",6000)
李四 = PartTimeEmployee("lisi","1111",30,20)
print(李四.calcute_monthly_pay())
print(zhangsan.calculte_monthly_pay())
f=open("./data.txt",“r”,encoding="utf-8")
content =f.readlines()
print(content)
f.close()
with open() as f 不用f.close()
with open("./poem.txt","w",encoding="utf-8") as f :
f.write("窗前明月光\n疑是地上霜\n举头望明月\n低头思故乡")
with open("./poem.txt","a",encoding="utf-8") as f :
f.write("\n转诸葛 \n第七虎 \n照无眠")
with open("./poem.txt","r",encoding="utf-8") as f:
print(f.read())
try :
user_weight = float(input("输入体重"))
user_height = float(input("输入身高"))
BMI = user_weight/user_height ** 2
except ValueError:
print("输入不合理数字")
except ZeroDivisionError:
print("身高不能为0")
except :
print("发生了未知错误")
else :
print("BMI为"+str(BMI))
finally:
print("程序结束")
测试 assert
爬虫程序分四步 1.获取网页内容 通过http请求 服务器返回未渲染的网页内容 2.解析网页内容(把想要的数据提取出来)
3.存储或分析数据
Http请求 包括请求行 请求头 请求体
请求行 POST/movie?start=75&filter=unwatched/1.1 请求行包括请求方法(get/post),资源路径,资源版本(http的版本)
请求头
Host:www.baidu.com 主机域名 与请求行里的资源路径结合成为完整路径
User-Agent:curl/7.77.0 用来告知服务器客户端相关信息
Accept:*/* 表示客户端想要接受的数据类型 json html text application 等
请求体
get方法请求体一般为空 post请求方法 传递客户端传给服务器任意数据
{“username”:“lml”,"email":"3129570758@qq.com"}
http 响应
响应由三个部分组成 状态行 响应头 响应体
状态行 包括 协议版本 状态码 状态消息 HTTP/1.1/ 200 OK ////404
响应头 包括 Date 生成响应时的日期和时间 Content-Type 返回内容的类型和编码格式 text/html;charset=utf-8
响应体 为 服务器想给客户端的数据内容
import requests
response = requests.get("https://www.bilibili.com/")
print(response)
print(response.status_code)
print(response.text)
import requests
header ={
"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.1.4031 SLBChan/30"
}
response = requests.get("https://www.douban.com/",headers=header)
print(response.status_code)
print(response.text)