Python-Python基本用法(全:含基本语法、用户交互、流程控制、数据类型、函数、面向对象、读写文件、异常、断言等)

news/2024/5/4 4:08:00/文章来源:https://blog.csdn.net/m0_46507516/article/details/130037121

1 环境准备

编辑器:Welcome to Python.org

解释器:pycharm:Thank you for downloading PyCharm! (jetbrains.com)

2 Quick start

  1. 创建项目
  • new project

在这里插入图片描述

  • create

在这里插入图片描述

  • demo
print('Dad!!')

在这里插入图片描述

3 基本语法

3.1 print

  1. 直接打印
print('Dad!!')
  1. 拼接打印
print('Hello'+' world'+'!')

在这里插入图片描述

  1. 转义
print('He said "good"')
# 使用转义字符\,向右边
print('He said \"Let\'s go\"')
He said "good"
He said "Let's go"
  1. 换行
  • 不能直接换行,因此采用\n表示换行
print("Hello!\nHi!")
Hello!
Hi!
  • ‘’'全部内容换行
print("""风萧萧兮易水寒,
壮士一去兮""")
风萧萧兮易水寒,
壮士一去兮

3.2 变量

  1. 注意

先赋值变量,后使用

greet ="您好,吃了么"print(greet+"张三")
print(greet+"李四")
您好,吃了么张三
您好,吃了么李四
  1. 替代原来变量
greet ="您好,吃了么,"
greet_chinese = greet
greet_english = "Yo what's up,"
greet = greet_english
print(greet+"张三")
print(greet+"李四")print(greet_chinese+"张三")
print(greet_chinese+"李四")
Yo what's up,张三
Yo what's up,李四
您好,吃了么,张三
您好,吃了么,李四
  1. 变量名规则
  • 只能由文字、数字、下划线组成

  • 除下划线以外的符号不行

  • 不能包含有空格

  • 不能数字开头

  • 变量名大小写敏感

  • 关键字不能当作变量

3.3 数学运算

  1. 符号

加减乘除:±*/

乘方:**

  1. math工具包
  • log
import math
result = math.log2(8)
print(result)
  • sqrt
import math
a=-1
b=-2
c=3
print((-b+math.sqrt(b ** 2 - 4 * a * c))/(2 * a))
print((-b-math.sqrt(b ** 2 - 4 * a * c))/(2 * a))
-3.0
1.0

3.4 注释

  1. 单行注释
# print("Hello!\nHi!") 

快捷键ctl+/

  1. 多行注释
'''
我是多行注释
我是多行注释
'''

3.5 数据类型

  1. 类型

str 字符串 ‘Hello’ “Hello”[3]获得第四个字符

int整数

float浮点数

bool布尔类型 True False

NoneType None表示完全没有值

type会返回对象的类型

  1. 案例
# 对字符串求长度
s = 'Hello world!'
print(len(s))# 通过索引获取字符串单个字符
print(s[1])
print(s[11])
print(s[len(s)-1])# 布尔类型
b1 = True
b2 = False# 空值类型
n = None# type函数
print(type(s))
print(type(b1))
print(type(n))
print(type(1.5))
12
e
!
!
<class 'str'>
<class 'bool'>
<class 'NoneType'>
<class 'float'>Process finished with exit code 0

3.6 运行模式

  1. 命令行模式

针对文件一行一行解析和执行

  1. 交互模式

直接一行出一个结果

cmd中输入python

  • 运行

在这里插入图片描述

  • 可以省略print

在这里插入图片描述

  • 推出

quit()

或者ctrl+d

4 用户交互

  1. input

input一律返回字符串

用int函数将返回的字符串转成整数int,同理,float也是把其他类型转换成浮点,str

  1. 例子
# BMI = 体重/(身高**2)
user_weight = float(input("请输入你的体重(单位:kg):"))
user_height = float(input("请输入你的身高(单位:cm):"))
user_BMI = user_weight/(user_height)**2
print("您的BMI值为:"+str(user_BMI))
请输入你的体重(单位:kg):61
请输入你的身高(单位:m):158
您的BMI值为:0.0024435186668803075

5 流程控制

5.1 条件判断

  1. 简单语法
if [条件]:[执行语句]  #前面有缩进,有四个空格[执行语句]
  • 条件
    • 布尔类型
    • 逻辑运算符成立的:5>21
  1. 真假判断
  • 语法
if [条件]:    [执行语句]  #前面有缩进,有四个空格    [执行语句]
else:[执行语句][执行语句]
  • 案例
mood_index = int(input("对象今天的心情指数是:"))
if mood_index > 59:print("恭喜,今晚应该可以打游戏,去吧皮卡丘!")
else:# mood_index <= 59print("不可以打游戏!")
对象今天的心情指数是:85
恭喜,今晚应该可以打游戏,去吧皮卡丘!
  1. 嵌套条件语句
  • 语法
if [条件一]:if [条件二]:[语句A]else:[语句B]
else:[语句C]
# 注意缩进
  • 案例
if mood_index < 60:if is_at_homeprint("放弃游戏,低调做人")else:print("自由!")
  1. 多条件判断
  • 语法
if [条件一]:[语句A]
elif [条件二]:[语句B]
elif [条件三]:[语句C]
else:[语句D]
# 如果多个条件满足,会根据自上而下的顺序执行第一个满足条件的语句
  • 案例
# BMI = 体重/(身高**2)
user_weight = float(input("请输入你的体重(单位:kg):"))
user_height = float(input("请输入你的身高(单位:m):"))
user_BMI = user_weight/(user_height)**2
print("您的BMI值为:"+str(user_BMI))if user_BMI <= 18.5:print("此BMI值属于偏瘦范围")
elif 18.5 < user_BMI <= 25:print("此BMI值属于正常范围。")
elif 25 < user_BMI <= 30:print("此BMI属于偏胖范围。")
else:print("此BMI值属于肥胖范围。")
请输入你的体重(单位:kg):61
请输入你的身高(单位:m):1.58
您的BMI值为:24.435186668803073
此BMI值属于正常范围。

5.2 逻辑运算

  1. 逻辑运算符
  • ==,!=,>,>=,<,<=
  1. 案例
if (house_work_count > 10 and red_envelope_count >1 and shopping_count > 4 and not has_been_angry):print("摩拳擦掌等待Switch!")
else:print("Switch随风散去...")

5.3 循环

5.3.1 for循环

  1. 基本for语法
  • 语法
for xx in xx:语句
  • 案例
temperature_dict = {"111":36.4,"112",36.6,"113",36.2}for staff_id,temperature in temperature_dict.items():if temperature >= 38:print(staff_id)for temperature_tuple in temperature_dict.items():staff_id = temperature_tuple[0]temperature = temperature_tuple[1]if temperature >= 38:print(staff_id)
  1. for+range
  • range

range(5):起始值默认为0

range(5,10):会给到5-9,不会给到10

range(5,10,2):起始值,结束值,步长

  • 语法
for i in xxx:[语句]
  • 案例
for i in range(1,101):total = total + i
print(total)

5.3.2 while循环

  1. 语法
while 条件A:行动B
  1. 循环语句比较

在这里插入图片描述

  1. 实现一个小需求

用户持续输入一个数字并进行相加,等到输入q的时候,退出

  • 自己写的垃圾代码
total = 0
while True:val = input("请输入数字:")if str(val) != 'q':total = total + int(val)print("目前总数:"+str(total))else:break
  • 正儿八经代码
total = 0
count = 0
val = input("请输入数字:")
while val != "q":total = total+int(val)count = count+1val = input("请输入数字:")
if count == 0:average = 0
else:average = total/count
print("目前总数:" + str(total))
print("平均值"+str(average))

6 数据结构

6.1 列表

  1. 案例
shopping_list = ["键盘""键帽"] 
# 类比java数组,但是可以放不同数据类型的元素
list = ["Hello",66.6,True,None]
  1. 方法
  • append方法
shopping_list.append("显示器")
  • remove方法
shopping_list.remove("显示器")
  • len函数
len(shopping_list)
  • 索引
print(shopping_list[0])  # 最后一个索引是列表长度减去一#利用索引修改值
shopping_list[1] = "音响"
  • 列表最大值、最小值,排序
print(max(num_list))
print(min(num_list))
print(sorted(num_list))
  1. 特点

其他数据类型可变,列表不可变,即对列表进行了变化之后,会改变原来的原列表,不用对列表再进行赋值了

  1. 实操
  • 案例1
shopping_list = []
shopping_list.append("键盘")
shopping_list.append("键帽")
shopping_list.remove("键帽")# 更新第一个元素
shopping_list[0] = "硬盘"
print(shopping_list)
print(len(shopping_list))
# 获取第一个元素
print(shopping_list[0])
['键盘']
1
硬盘
  • 案例2
price = [799,1024,200,800]
max_price = max(price)
min_price = min(price)
sorted_price = sorted(price)
print(max_price)
print(min_price)
print(sorted_price)
1024
200
[200, 799, 800, 1024]

6.2 字典

  1. 介绍

存储键值对,类比java的map

  1. 语法
contacts = {"小明":"13000000000","小花":"137000000001"}#查找
contacts["小明"]# 更新元素到字典
contacts["小明"] = "18600000001"# 添加元素到字典
contacts["美女A"] = "18600000000"# 查看键是否已经存在,存在返回true,否则返回false
print("小明" in contacts)# 删除一个键值对
del contacts["小明"]
  • 键的数据类型是不可变的,列表可变的,因此就不能作为键的数据类型
  • tuple是类似于列表的数据类型,不可变的,因此添加或者删除元素都不能操作的
contacts = {("张伟",23):"15000000000",("张伟",34):"15000000001"("张伟",34):"15000000001"}zhangwei23_phone = contacts[("张伟"23)]
  1. 方法
temperature_dict = {"111":36.4,"112",36.6,"113",36.2}#打印所有键
temperature_dict.keys()
#打印所有值
temperature_dict.values()
#打印所有键值对
temperature_dict.item()
  1. 案例
slang_dict = {"觉醒年代":"觉醒吧少年","YYDS":"永远的神"}slang_dict["双减"]="减少学生作业负担和校外培训负担"# 设置查询功能
query = input("请输入您想要查询的流行语:")
if query in slang_dict:print("您查询的"+"query"+"含义如下")print(slang_dict[query])
else:print("您查询的流行语暂未收录。")print("当前本词典收录词条数为:"+str(len(slang_dict))+"条。")
请输入您想要查询的流行语:YYDS
您查询的query含义如下
永远的神

7 字符串简化

  1. 案例1
  • 原来

在这里插入图片描述

  • format方法

在这里插入图片描述

在这里插入图片描述

简洁的方法

f"“”

xxx

“”"
在这里插入图片描述

  1. 案例2
    在这里插入图片描述

使用format方法的时候,{1}不用手动转为字符串了

在这里插入图片描述

{1:.2f}表示保留两位小

8 函数

8.1 函数基本知识

  1. 引出
  • 需求:扇形面积:*S扇=(n/360)πR²,

  • 实现

在这里插入图片描述

  1. 语法
def calculate_sector_1():# 定义函数的语句# 调用函数
calculate_sector_1()
  1. 案例
# 定义
def calculate_sector(central_angle,radius):sector_area = central_angle/360 * 3.14 * radius ** 2print(f"此扇形面积为:{sector_area}")# 调用
calculate_sector(30,16)
  1. 局部变量
  • 场景

函数中的变量是局部变量,函数外访问不到

在这里插入图片描述

因此通过调用函数运行某段代码

在这里插入图片描述

因此return可以解决这个问题

在这里插入图片描述

如果方法没有return语句,那么返回的就是none

也例如一些自带得append和print函数,函数自己内部没有返回值,因此返回的是none

len()和sum()这些就是有返回值的,会给他赋值回一个变量

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 类比java

局部变量获取不到

在这里插入图片描述

return就获取得到了

在这里插入图片描述

  • 优化案例
# 定义
def calculate_sector(central_angle,radius):sector_area = central_angle/360 * 3.14 * radius ** 2print(f"此扇形面积为:{sector_area}")return sector_area# 调用
sector_area1 = calculate_sector(30,16)
  1. 实操案例
def calculate_BMI(user_weight,user_height):user_BMI = user_weight/(user_height)**2# print("您的BMI值为:" + str(user_BMI))if user_BMI <= 18.5:print("此BMI值属于偏瘦范围")elif 18.5 < user_BMI <= 25:print("此BMI值属于正常范围。")elif 25 < user_BMI <= 30:print("此BMI属于偏胖范围。")else:print("此BMI值属于肥胖范围。")return user_BMIprint(calculate_BMI(61, 1.58))
此BMI值属于正常范围。
24.435186668803073

8.2 内置函数

  1. python自带内置函数

在这里插入图片描述

  1. 引入模块
  • import引入statistics
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]))
  1. 安装模块
  • 在pypi.org这个网站可以搜索第三方库

  • 去重点使用pip install +库名安装

在这里插入图片描述

  • 使用的时候import进来就可以了

9 面向对象

9.1 概述

  1. 面向对象
  • 类是创建对象的模板
  • 对象是类的实例

在这里插入图片描述

  1. 属性
  • 获取对象属性

在这里插入图片描述

  • 通过对象省略方法中的信息参数

在这里插入图片描述

在这里插入图片描述

  1. 方法

  2. 封装

只暴露方法/外部接口,内部实现细节隐藏起来,细节参照java的封装

  1. 继承

类和类之间属性和方法相似,代码冗余,因此创建出一个父类,细节参照java

  1. 多态

因为具体类的不同,各自的类有不同的表现,细节参照java

9.2 深入理解面向对象

  1. 创建类
  • 语法
class NameOfClass:# 定义类的代码
  1. 定义属性
  • 构造函数
class CuteCat:def_init_(self):# 方法名两下划线,构造方法第一个参数表示对象自身,固定的,类比java的this# 构造函数的代码
  • 案例
class CuteCat:def _init_(self):self.name = "Lambton"# 创建对象,会自己调用_init_方法,参数就不用再传self了
cat1 = CuteCat()# 获取cat1的值
print(cat1.name)  # 会打印出来Lambton

更好的是可以从参数那边获取对象的属性值

class CuteCat:def _init_(self,cat_name):self.name = cat_name# 创建对象,会自己调用_init_方法,参数就不用再传self了
cat1 = CuteCat("Jojo")# 获取cat1的值
print(cat1.name)  # 会打印出来Jojo

多点属性

class CuteCat:def _init_(self,cat_name,cat_age,cat_color):self.name = cat_nameself.age = cat_ageself.color = cat_colorcat1 = CuteCat("Jojo",2,"橙色")# 打印对象属性值
print(f"小猫{cat1.name}的年龄是{cat1.age}岁,花色是{cat1.color}")
  1. 定义方法
  • 定义方法
class CuteCat:def __init__(self,cat_name,cat_age,cat_color):self.name = cat_nameself.age = cat_ageself.color = cat_colordef speak(self):# 第一个参数也是表示对象本身,固定的,这边的目的是可以继续获取或者修改对象绑定的属性# 方法的具体实现代码print("喵"* self.age)def think(self,content):print(f"小猫{self.name}在思考{content}...")cat1 = CuteCat("Jojo",1,"橙色")
cat1.think("现在去抓沙发还是去撕纸箱")
  • 小例子
# 定义一个学生类
# 要求:
# 1.属性包含学生姓名,学号以及语数英三科的成绩
# 2.能够设置学生某学科的成绩
# 3.能够打印出该学生的所有科目成绩class Student:def __init__(self,name,number,score):self.name = nameself.number = numberself.score = score# 设置成字段形式self.grades = {"语文":0,"数学":0,"英语":0}# 设置成绩def set_grade(self,course,grade):if course in self.grades:self.grades[course] = grade# 打印所有成绩def print_score(self):print(f"学生{self.name}(学号:{self.number}的成绩为:)")for course in self.grades:print(f"{course}:{self.grades[course]}分")xiaoming = Student("小明","1","99")
print(xiaoming.name)
xiaoming.print_score()
xiaoming.set_grade("数学",95)
print(xiaoming.grades)# 改下yueyue的语文成绩
yueyue = Student("月月","2","60")
yueyue.set_grade("语文",99)
yueyue.set_grade("数学",92)
yueyue.print_score()
小明
学生小明(学号:1的成绩为:)
语文:0分
数学:0分
英语:0{'语文': 0, '数学': 95, '英语': 0}
学生月月(学号:2的成绩为:)
语文:99分
数学:92分
英语:0分Process finished with exit code 0

9.3 继承

  1. 设置继承
  • 在类后面加上括号,括号中写上父类的名字

在这里插入图片描述

  • 当创建子类实例时,优先调用子类的构造函数,导致只有has_tail的属性,没有父类构造器的属性,会在子类构造函数中调用父类的super()加上__init__

在这里插入图片描述

  1. 案例
# 类继承练习:人力系统
# 员工分为两类:全职员工 FullTimeEmployee、兼职员工 PartTimeEmployee
# 全职员工和兼职员工都有“姓名 name”、“工号 id” 属性
# 都具备“打印信息print_info(打印姓名、工号)方法”
# 全职有“月薪 monthly_salary”属性
# 兼职有“日薪 daily_salary”属性、“每月工作天数 work_days”的属性
# 全职和兼职都有"计算月薪 calculate_monthly_pay" 的方法,但具体计算过程不一样class Employee:def __init__(self,name,id):self.name = nameself.id = iddef print_info(self):# print("打印姓名"+self.name+"打印工号"+self.id)print(f"员工名字:{self.name},工号:{self.id}")class FullTimeEmployee(Employee):def __init__(self,name,id,monthly_salary):super().__init__(name,id)self.monthly_salary = monthly_salarydef calculate_monthly_pay(self):return self.monthly_salaryclass PartTimeEmployee(Employee):def __init__(self,name,id,daily_salary,work_days):super().__init__(name,id)self.daily_salary = daily_salaryself.work_days = work_daysdef calculate_monthly_pay(self):return self.daily_salary*self.work_days# 实例化
zhangsan = FullTimeEmployee("张三","1001",6000)
lisi = PartTimeEmployee("李四",1002,230,15)
zhangsan.print_info()
print(zhangsan.calculate_monthly_pay())
lisi.print_info()
print(lisi.calculate_monthly_pay())
员工名字:张三,工号:1001
6000
员工名字:李四,工号:1002
3450

10 读写文件

10.1 读文件

  1. 读文件(定位文件)
open("绝对/相对路径",模式,编码方式)
f = open("./data.txt","r",encoding="utf-8")
常见模式:r 只读w 只写
异常:读不到会报错:FileNotFoundError
  1. 读取文件方法
  • read()方法
# 读取全部文件
print(f.read())
第二次.read()发现文件为空# 读取规定字节文件
print(f.read(10))
  • readline读取
# 读取一行内容
print(f.readline()) # 背后根据换行符判断行结束并读取
f = open("./data.txt","r",encoding="utf-8")
line = f.readline()while line !="": # 判断当前行是否为空print(line)line = f.readline()
  • readlines()方法
f = open("./data.txt","r",encoding="utf-8")
lines = f.readlines()	# 把每行内容储存到列表里
for line in lines:	# 遍历每行内容print(line)	# 	打印当前行
  1. 关闭文件
  • close()关闭
f = open("./data.txt")
print(f.read()) # 对文件的操作f.close()
  • with关闭
with open("./data.txt") as f:print(f.read())
  1. 案例
# read和close
f = open("./data.txt","r",encoding="utf-8")
content = f.read()
print(content)
f.close()# 或者readlinewith open("./data.txt","r",encoding="utf-8") as f:line = f.readline()while line != "":print(line)line = f.readline()# readlines
with open("./data.txt","r",encoding="utf-8") as f:lines = f.readlines()for line in lines:print(line)

10.2 写文件

  1. 写文件(定位文件)
with open("./data.txt","w") as f:如果写的文件不存在,程序就会自动创建文件,不会报错写入模式:
"w":覆盖清空原文件后写入
"a":表示附加内容,不会清空原来的但是如果使用的w或者a,就不能用read()模式"r+":就可以同时支持读写文件,并且时追加形式
  1. write写文件
f.write("Hello!")
f.write("Yoooo")
Hello!Yoooo # 不会帮你换行的,需要手动增加换行符
  1. 案例
# 任务1:在一个新的名字为"poem.txt"的文件里,写入以下内容
# 我欲乘风归去,
# 又恐琼楼玉宇,
# 高处不胜寒。with open("./poem.txt","w",encoding="utf-8") as f:f.write("我欲乘风归去,\n")f.write("又恐琼楼玉宇,\n")f.write("高处不胜寒。\n")# 任务2:在上面的"poem.txt"文件结尾处,添加以下两句:
# 起舞弄清影,
# 何似在人间。with open("./poem.txt","a",encoding="utf-8") as f:f.write("起舞弄清影,\n")f.write("何似在人间。\n")
我欲乘风归去,
又恐琼楼玉宇,
高处不胜寒。
起舞弄清影,
何似在人间。

11 捕捉异常

  1. 异常案例

在这里插入图片描述

12 断言

  1. 概念

assert 断言:后面跟上布尔表达式,会在后面跟上认为为true的表达式。如果不对,就会出现AssertError,程序终止

  1. 单元测试库

unittest

import test

在这里插入图片描述

TestMyAdder类并作为unittest.TestCase的子类

在里面的方法都是测试用例,方法名字都是用test_开头,不然unittest只认这个test_开头

使用assertEqual方法,调用父类的方法,是TestCase的方法

然后在编辑器终端输入运行,并展示测试结果

python -m unittest

通过是…

没通过是F.

  1. 常用测试方法

在这里插入图片描述

  1. setup简化实例化测试写法

在这里插入图片描述

  1. 案例
  • 代码

    在这里插入图片描述

  • 测试方法

    在这里插入图片描述

  • 运行

通过
在这里插入图片描述

在这里插入图片描述

不通过

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_283912.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AD20添加元件3D库

Altium Designer是画PCB常用的工具之一,为了PCB的美观性,我们可以采用3D的方式查看已经画好的PCB板。但在这之前需要准备好每个元器件的3D模型。 1、下载3D格式模型 http://www.3dcontentcentral.cn 当然要先注册账户。 在搜索栏输入你想要找的器件。 模型格式STEP AP214…

vue-cli 初始化工程

个人记录下vue-cli创建项目的步骤 卸载老版本的vue-cli (这不是必要的) npm uninstall vue-cli -g 如果本地使用 yarn的话,还需执行 yarn global remove vue-cli 安装全新的vue-cli npm install -g vue/cli 安装指定版本的vue-cli npm install -g vue/…

linux 安装git并拉取代码教程

#一步一步执行以下命令sudo apt install git #安装gitgit --version #查看安装版本号git config user.name jtr #设置用户名git config user.email jiangtrcloudskysec.com #设置邮箱ssh-keygen -t rsa -C "jiangtrcloudskysec.com" #生成秘钥&#xff0c;一直往下按…

自动化测试框架:DrissionPage(1)——安装与设置

发现了一款基于Python的网页自动化工具&#xff1a;DrissionPage。这款工具既能控制浏览器&#xff0c;也能收发数据包&#xff0c;甚至能把两者合而为一&#xff0c;简单来说&#xff1a;集合了WEB浏览器自动化的便利性和 requests 的高效率优点。 一、DrissionPage框架产生背…

【C++进阶】01:概述

概述 OVERVIEW概述C11新特性&#xff1a;C14新特性&#xff1a;C17新特性&#xff1a;C20新特性&#xff1a;C程序编译过程C内存模型CSTL1.Queue&Stack2.String3.MapC语言C语言面向过程编程✅✅面向对象编程&#xff08;类和对象&#xff09;❌✅泛型编程、元编程&#xff…

数据结构之七大排序

数据结构之七大排序&#x1f506;排序的概念及其运用排序的概念常见的排序算法&#x1f506;插入排序直接插入排序希尔排序&#x1f506;选择排序直接选择排序堆排序&#x1f506;交换排序冒泡排序快排&#x1f506;归并排序&#x1f506;非比较排序&#x1f506;结语&#x1f…

十二、Pytorch复现Residual Block

一、Residual Network 论文出处&#xff1a;Deep Residual Learning for Image Recognition 其核心模块&#xff1a; 二、复现Residual Block 这里以两层卷积层为例进行设计复现 resnet可以很好的解决梯度消失问题 Residual Block大致要点&#xff1a; 样本x传入模型&…

下一个“AI王炸”,别只盯着OpenAI,DeepMind也在憋大招

过去几个月&#xff0c;OpenAI风头无两&#xff0c;各大科技公司争先恐后地跟进大语言模型&#xff08;LLM&#xff09;这一技术路线。对比之下&#xff0c;OpenAI的老对手DeepMind&#xff0c;显得有些低调和沉默。微软靠OpenAI打了一场胜仗&#xff0c;而谷歌推出的Bard翻了车…

5.5G,运营商能接受吗?

2月份&#xff0c;我在巴塞罗那参加MWC 2023时有个发现。欧洲通信设备商大多在宣传和讨论6G相关技术&#xff0c;中国通信设备商却在重点展示5.5G&#xff0c;或者叫做5G-Advanced。而全球各国的运营商则都普遍处在比较观望的状态里&#xff0c;两头考察&#xff0c;多样化尝试…

中间表示- 到达定义分析

基本概念 定义&#xff08;def&#xff09;&#xff1a;对变量的赋值 使用&#xff08;use&#xff09;&#xff1a;对变量值的读取 问题&#xff1a;能把上图中的y替换为3吗&#xff1f;如果能&#xff0c;这称之为“常量传播”优化。 该问题等价于&#xff0c;有哪些对变量y…

OPNET Modeler 例程——创建一个移动无线网络

文章目录一、例程概述二、创建天线模型三、创建指向处理器四、创建节点模型1.发射机节点模型2.干扰发射机节点模型3.收信机节点模型五、创建网络模型六、收集统计量并运行仿真七、查看仿真结果总结一、例程概述 OPNET 无线模块支持地面和卫星无线系统的构建。在此例程中将构建…

【C++】基础篇

C基础篇什么是C命名空间命名空间的三种使用方式C的输入和输出缺省参数缺省参数分类函数重载引用引用的使用场景常引用指针和引用的区别auto关键字auto使用细则auto不能推导的场景基于范围的for循环范围for的使用条件指针空值nullptr什么是C 1982年&#xff0c;Bjarne Stroustr…

微服务+springcloud+springcloud alibaba学习笔记【Eureka服务注册中心】(3/9)

Eureka服务注册中心 3/91、服务注册与发现1.1 什么是服务治理&#xff1a;1.2 什么是服务注册与发现&#xff1a;1.3 Eureka服务注册与发现2、单机版eureka2.1 创建module2.2改pom依赖2.3写yml配置文件:2.4主启动类2.5 修改服务提供者 cloud-provider-payment8001 模块&#xf…

GFS的卷类型与集群实验文档

GlusterFS 支持七种卷&#xff0c;即分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷、条带复制卷和分布式条带复制卷。我们常用的有前五种&#xff0c;今天我们就来看一看这五种卷都有什么优缺点。 一、分布式卷&#xff08;Distribute volume&#xff09; 文件通过 H…

【模型复现】resnet,使用net.add_module()的方法构建模型。小小的改进大大的影响,何大神思路很奇妙,基础很扎实

从经验来看&#xff0c;网络的深度对模型的性能至关重要&#xff0c;当增加网络层数后&#xff0c;网络可以进行更加复杂的特征模式的提取&#xff0c;所以当模型更深时理论上可以取得更好的结果。但是更深的网络其性能一定会更好吗&#xff1f;实验发现深度网络出现了退化问题…

python玄阶斗技--tkinter事件

在前一篇文章中&#xff0c;我们已经了解是tkinter的一些标签的使用&#xff0c;但一个GUI程序除了让别人看到&#xff0c;还要有一些交互操作&#xff0c;实现人机交互的方法我们称为事件&#xff0c;通过事件分为&#xff1a;鼠标事件&#xff0c;键盘事件和窗口事件。接下来…

Neo4j初学者使用记录(在更)

打开Neo4j cmdR 输入neo4j console 浏览器中输入框中网址&#xff1a;http://localhost:7474/即可打开 新建库 服务器版需要更改配置文件&#xff0c;若neo4j服务正在运行&#xff0c;则按Ctrlc&#xff0c;停止该服务。 配置完后&#xff0c;再重新开启服务&#xff0c;刷新…

如何利用ventoy制作Linux to go (把deepin放到U盘里)

准备工作 最新版本 – 深度科技社区 (deepin.org) deepin镜像官方下载即可 Releases ventoy/vtoyboot GitHub ventoy启动插件选择1.0.29版本 Downloads – Oracle VM VirtualBox VirtualBox虚拟机官网 ventoy下载 VentoyRelease (lanzoui.com) 选择下载1.0.29版本 vento…

第五十八章 线段树(一)

第五十八章 线段树&#xff08;一&#xff09;一、树状数组的缺陷二、线段树的作用三、线段树的基本构成1、节点定义2、线段树的结构四、线段树的重要函数1、构造线段树——bulid函数2、查询区间——query函数3、单点修改——modify函数五、例题一、树状数组的缺陷 在前面两个…

对于电商行业来讲,真正决定它的并不是规模,而是载体

纵然是在现在这样的情况之下&#xff0c;我们依然无法用「格局已定」来形容和阐述现在的电商市场格局。这一点&#xff0c;我们可以从以抖音、快手为代表的电商新势力的崛起当中&#xff0c;看出一丝端倪。对于电商行业来讲&#xff0c;真正决定它的并不是规模&#xff0c;而是…