欢迎光临散文网 会员登陆 & 注册

【Python+爬虫】爆肝两个月!拜托三连了!这绝对是全B站最用心(没有之一)的

2023-07-01 17:12 作者:無糖曲奇  | 我要投稿

txt记的,复制过来的(不全)

===【print操作】===


print("Hello"+"_World!!")【+连接字符串,Hello_World!!】


print("Let\'s go")【\转义字符,使\'或\"为一个整体】


print("Hello!\nHi!")【\n表示换行】


print("\n")【直接搞出一个空行】


print("""Hello!

Hi!""")【叁引号自动换行('和"皆可)】


===【变量】===


变量名=114514【赋值操作,变量必须 先赋值后使用】

【写代码时在部分位置用空格隔开可以使代码更美观】

【变量名不可以包含空格、不可以用数字开头、不可以用""或''包裹、不可以包含除_以外的符号、不可以占用python关键字(如print)】

【非常不建议用拼音,用英文加数字较好,即使可以用汉字也尽量不要使用】

【注意大小写区分user_age≠user_Age】

【关键字】False、None、Ture、and、as、assert、async、await、break、class、continue、def、del、elif、else、except、finally、for、from、global、if、import、in、is、lambda、nonlocal、not、or、pass、raise、return、try、while、with、yiled。


my_love="114514"

my_ex=my_love

my_love="1919810"【最终结果my_love="1919810"、my_ex="114514"】


===【数学运算】===


【加号】+【减号】-【乘号】*【除号】/【乘方】**

import math【导入(数学)库】

math.函数名(...)【来使用(数学)库的功能】


===【注释】===


#【注释,也可用来跳过本行代码执行】

选中一段代码【快捷键[ctrl]+[/?]】使整段代码每行前加#,再按一次取消。

单独使用叁引号('''或""")也可以起到多行注释的效果


===【数据类型】===


字符串【str】"Hello" "你好!"

len('Hello')【得到该字符串长度:5】【一个空格或完整的转义符占一个长度,\n占一个长度】

"Hello"[3]【从0(索引值)开始计数,得到第四个字符】


整数【int】6 -32


浮点数【float】6.0 10.07


布尔类型【bool】Ture False


空值类型【NoneType】None

【用来代替一个尚不知道的变量的值】


使用【type函数】【type(数据类型)】可以得到【<class'数据类型'>】


===【Python模式】===


【命令行模式】逐行翻译执行


【交互模式】【>>>】完成后回车立刻执行,不需要创建Python文件就可运行,不需要print就可看到值,但命令不会被保存。

【quit()】或【[ctrl]+[D]】退出【交互模式】


===【input获取用户输入】===


user_age = input("请输入您的年龄:")

print( "知道了,你今年" + user_age +"岁了!")

【input只返回字符串类型的数据】

print(int("user_age"))【把数据类型转换为整数(它必须确实可以被转换)并打印】


===【条件语句】===


if 【条件】【Ture或False】:

  【Ture执行语句】【#建议缩进4个空格】

else:

  【False执行语句】


【比较运算符】


等于【==】不等于【!=】

大于【>】大于等于【>=】

小于【<】小于等于【<=】


===【嵌套条件语句】===


【多个条件判断】


if 【条件一】:

  【语句A】

elif 【条件二】:

  【语句B】

elif 【条件三】:

  【语句C】

else:

  【语句D】


!!!注意!!!【条件是按顺序判断的,一旦判断成功就直接执行,接下来的条件无论真假都不会判断】


===【逻辑运算】===


与【and】【全Ture返回Ture,否则返回False】

或【or】【全False返回False,否则返回Ture】

非【not】【只对一个对象返回值,原对象为Ture返回False,为False则返回Ture】


【逻辑优先级】( )>not>and>or


===【数据结构】===


s="Hello"

print(s.upper())【使字符串内字母全大写,输出HELLO】


【 [ 列表 ] 】【可改变】


【.append 添加元素】

shopping_list =["键盘"]

shopping_list.append("显示器")【列表里的内容已经被改变】

print ( shopping_list)


【.remove 删除元素】

shopping_list =["键盘","显示器"]

shopping_list.remove("显示器")


【len函数返回列表元素个数】

shopping_list =["键盘","显示器","硬盘"]

len(shopping list)【返回 3】


【列表 [ 索引 ] 】

shopping list =["键盘","显示器","硬盘"]

print( shopping_list[0])

【 [ 索引赋值 ] 更改】

shopping_list = ["键盘",“显示器","硬盘"]

shopping_list[1] ="音响"【索引为1的元素被更改】

print(shopping list)


num_list = [1,13,-7,2,96]

print(max( num_list))【打印列表里的最大值】

print(min(num_list))【打印列表里的最小值】

print(sorted (num_list))【打印排序(从小到大)好的列表】


===【字典】===

键【key】【用来查找值】【不可变(列表不能作为键)】

值【value】


slang_dict={"键A":"值a"

          "键B":"值b"}【{"键":"值"}创建字典】


contacts = {"小明":"13700000000"

         "小花":"13700000001"}


【元组tuple】【整个作为键】

example_tuple =("键盘","键帽")


contacts["美女A"]= "18600000000"【增加或覆盖】


print("小明" in contacts) 

print("小明明” in contacts)【检查字典中是否包含该键,有Ture,没False】


del contacts["小明"]【删除对应的键值对】


len(contacts)【len函数可以返回字典中键值对数量】


===【for循环进行迭代(按顺序执行什么)】===


for 【变量名】 in 【可迭代对象】:【#对每个变量做一些事情#】

  【执行语句】


range(5,10,1)【5是起始值,10是结束值(该值不包含在内),1是步长(1通常省略)】


for i in range(5,10):

  print( i )【i会依次被赋值为从5到9的数字】


===【while循环】===


while 【条件A】:

  【行动B】


list1 =["你",“好","吗","兄","弟"]


【for循环】

for char in list1:

  print (char)


【for加range】

for i in range(len(list1)):

  print(list1[i])


【while循环】

i = 0

while i < len( list1):

  print ( list1[i])

  i=i+1


total = total+num

total += num【这两句是一样的】


===【format方法】===

message content ="""

律回春渐,新元肇启。

新岁甫至,福气东来。

金{0}贺岁,欢乐祥瑞。

金{0}敲门,五福临门。

给{1}及家人拜年啦!

新春快乐,{0}年大吉!

""".format( year, name )【0对应year,1对应name】


message content ="""

律回春渐,新元肇启。

新岁甫至,福气东来。

金{year}贺岁,欢乐祥瑞。

金{year}敲门,五福临门。

给{name}及家人拜年啦!

新春快乐,{year}年大吉!

""".format( name=name,year=year )【name关键字=name参数值】


【f-字符串】【直接求值加入字符串】

message content =f"""

律回春渐,新元肇启。

新岁甫至,福气东来。

金{year}贺岁,欢乐祥瑞。

金{year}敲门,五福临门。

给{name}及家人拜年啦!

新春快乐,{year}年大吉!

"""


【指定浮点数在格式化时保留几位小数 :.2f 保留2位小数】

gpa_dict = {"小明":3.251,"小花":3.869,"小李":2.683,

         "小张":3.685}

for name, gpa in gpa_dict.items():

print( "{0}你好,你的当前绩点为:{1: .2f } ".format(name,gpa))


===【定义函数def】===

def calculate_sector_1 ( )∶

#接下来是一些定义函数的代码

central_angle_1 = 160

radius_1 = 30

sector_area_1 = central_angle_1 / 360 *3.14*radius_1**2

print(f"此扇形面积为:{sector_area_1}")


【更通用的改进】

def calculate_sector( central_angle,radius ) :

  sector_area = central_angle / 360* 3.14 *radius **2

  print(f"此扇形面积为:{sector_area}")【def完了】


calculate_sector (160,30)【调用函数】


def func():

  a=3

  print(a)

  return a【返回变量a的值,即整数3】

【return可以使结果用到变量赋值上】


===【引入模块】===


【import 语句】

import statistics

print(statistics.median( [19,-5,36]))

print(statistics.mean( [19,-5,36]))


【from...import...语句】

from statistics import median, mean

print(median( [19,-5,36]))

print(mean( [19,-5,36]))


【from...import *】【可能造成冲突,不建议使用】

from statistics import *

print(median( [19,-5,36]))

print(mean( [19,-5,36]))


===【面向对象编程】===


【# 定义ATM类】

class ATM:

  def __init__( self,编号,银行,支行)∶

    self.编号=编号

    self.银行=银行

    self.支行=支行

【#创建两个ATM对象】

atm1 = ATM("001","招商银行","南园支行")

atm2 = ATM("002","中国银行 ","北园支行")


【实例】

#1.属性包括学生姓名、学号,以及语数英三科的成绩

#2.能够设置学生某科目的成绩

#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_grades(self):

    print(f"学生{self.name}(学号:{self.student_id})的成绩为:")

    for course in self.grades:

      print(f"{course}: {self.grades[course]}分")


===【继承】===

super().__init__()【调用父类的构造函数】


【open函数】

open( "/ usr/demo/data.txt", "r")

【r】读取模式(只读)【不写默认r】

【w】写入模式(只写)

【a】结尾补写

open( " ./ data.txt", "r", encoding="utf-8")

【encoding="XXX"】编码方式


===【read方法】===

f = open( "./data.txt","r", encoding="utf-8")

print(f.read())


f = open( "./data.txt","r", encoding="utf-8")

print( f.read())【# 会读全部的文件内容,并打印】

print(f.read())【#会读空字符串,并打印】


f = open( "./data.txt","r" , encoding="utf-8")

print(f.read(10))【#会读第1-10个字节的文件内容】

print(f.read(10))【#会读第11-20个字节的文件内容】


===【readline方法】===

f = open( "./data.txt","r", encoding="utf-8")

print(f.readline())【 #会读一行文件内容,并打印】

print(f.readline())【# 会读一行文件内容,并打印】


f = open( "./data.txt", "r",encoding="utf-8")

line = f.readline()【#读第一行】

while line != "":【#判断当前行是否为空】

  print(line)【#不为空则打印当前行】

  line = f.readline()【#读取下一行】


f = open( " ./ data.txt", "r", encoding="utf-8")

【# readlines会读全部文件内容,并把每行作为列表元素返回】

print(f.readlines())


f = open( " ./ data.txt","r", encoding="utf-8")

lines = f.readlines()【#把每行内容储存到列表里】

for line in lines:【#遍历每行内容】

  print(line)【#打印当前行】


【实例1】

f = open(" ./data.txt","r",encoding="utf-8")

content = f.read()

print(content)

f.close()【#关闭文件释放资源】

【实例2】

with open(" ./data.txt","r",encoding="utf-8"') as f:

  content = f.read()

  print(content)


with open( "./data.txt","r+", encoding="utf-8" ) as f:

【#使用r+就可又读又写】

  print(f.read())

  f.write("hello! ")


===【捕捉异常】===


try:

  user_weight = float(input("请输入您的体重(单位:kg): ))

  user_height = float( input("请输入您的身高(单位:m): ))

  user_BMI = user_weight / user_height ** 2

except ValueError:

  print("输入不为合理数字,请重新运行程序,并输入正确的数字。")

except ZeroDivisionError:

  print("身高不能为零,请重新运行程序,并输入正确的数字。")

except:

  print("发生了未知错误,请重新运行程序。")

else:

  print("您的BMI值为:" + str(user__BMI))

finally:

  print("程序结束运行。")【#finally一定会执行】


===【bug】===


【assert】断言


【unittest就是一个很常用的Python单元测试库】

【test_作为测试文件名的开头】


【assertEqual(A, B)】类似于【assert A==B】

【assertTrue(A)】类似于【assert A is True】

【assertln(A, B)】类似于【assert A in B】

【assertNotEqual(A, B)】类似于【assert A !=B】

【assertFalse(A)】类似于【assert A is False】

【assertNotln(A, B)】类似于【assert A not in B】


【assertTrue(2 not in [1,3-1])】和【assertNotln(2,[1,3 -1])】都是在验证2是否不存在于[1,2]这个列表里。






























【Python+爬虫】爆肝两个月!拜托三连了!这绝对是全B站最用心(没有之一)的的评论 (共 条)

分享到微博请遵守国家法律