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

news2025/1/4 19:10:58

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 <= 59
    print("不可以打游戏!")
对象今天的心情指数是:85
恭喜,今晚应该可以打游戏,去吧皮卡丘!
  1. 嵌套条件语句
  • 语法
if [条件一]:
    if [条件二]:
        [语句A]
    else:
        [语句B]
else:
    [语句C]
# 注意缩进
  • 案例
if mood_index < 60:
    if is_at_home
        print("放弃游戏,低调做人")
    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+1
    val = 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 ** 2
    print(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 ** 2
    print(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_BMI


print(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_name
        self.age = cat_age
        self.color = cat_color

cat1 = 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_name
        self.age = cat_age
        self.color = cat_color
        
	def 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 = name
        self.number = number
        self.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 = name
        self.id = id

    def 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_salary

    def calculate_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 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()


# 或者readline

with 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.coloradmin.cn/o/429772.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记录-Vue.js模板编译过程揭秘:从模板字符串到渲染函数

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 Vue.js是一个基于组件化和响应式数据流的前端框架。当我们在Vue中编写模板代码时&#xff0c;它会被Vue编译器处理并转换为可被浏览器解析的JavaScript代码。Vue中的模板实际上是HTML标记和Vue指令的组…

STM32HAL库 串口USART的使用

STM32HAL库 串口USART的使用 文章目录STM32HAL库 串口USART的使用前言一、配置USART1串口通信引脚二、使用步骤三、串口中断回调函数1. 配置2. 在icode中增加usart.c和usart.h文件3. 中断处理对比4. 编写串口控制程序总结前言 本文为串口输出打印的hal库&#xff0c;参考洋桃电…

【LeetCode】剑指 Offer 57. 和为 s 的数字 p280 -- Java Version

1. 题目介绍&#xff08;57. 和为 s 的数字&#xff09; 面试题57&#xff1a;和为 s 的数字&#xff0c; 一共分为两小题&#xff1a; 题目一&#xff1a;和为 s 的两个数字题目二&#xff1a;和为 s 的连续正数序列 2. 题目1&#xff1a;和为s的两个数字 题目链接&#xff1…

图结构基本知识

图1. 相关概念2. 图的表示方式3. 图的遍历3.1 深度优先遍历&#xff08;DFS&#xff09;3.2 广度优先遍历&#xff08;BFS&#xff09;1. 相关概念 图G(V,E) &#xff1a;一种数据结构&#xff0c;可表示“多对多”关系&#xff0c;由顶点集V和边集E组成&#xff1b;顶点(vert…

数据库管理-第六十七期 SQL Domain 2(20230414)

数据库管理 2023-04-14第六十七期 SQL Domain 21 Domain函数示例总结第六十七期 SQL Domain 2 昨晚割接&#xff0c;搭了一套19c的ADG&#xff0c;今天睡了个懒觉&#xff0c;早上把笔记本内存扩到了64GB&#xff0c;主要是为了后面做实验。然后下午拼了个乐高&#xff0c;根据…

Excel小技巧:对比两列数据的异同、vlookup使用方法

目录 问题一&#xff1a; 在联盟对接的时候&#xff0c;团购站会推送一个返利值&#xff0c;称为“推送返利”&#xff0c;联盟后台又会计算一个返利值&#xff0c;称为“计算返利”。当团购站的推送返利与计算返利相同的时候&#xff0c;我们才认为这个团购站在返利上对接完…

JMeter全局变量在使用时第一次取到null的问题解决

1. 在执行JMeter测试时&#xff0c;登录操作只需要执行一次。这样就需要用到全局变量&#xff0c;但在前一个提取器执行了请求后&#xff0c;如果返回结果是json格式的数据&#xff0c;会在下面添加一个JSON提取器&#xff0c;并在json提取器下会添加一个后置BeanShell PostPro…

10个镜像网站工具箱供你使用,不注册ChatGPT也能免费使用ChatGPT

ChatGPT已经成为了人工智能技术中备受瞩目的一员&#xff0c;它可以为我们带来更加智能化、个性化的交互体验。对于没有ChatGPT账号或者不想注册账号的人来说&#xff0c;他们可能会错过这种神奇的体验。 而本篇文章就帮大家解决这个问题&#xff0c;不用登录ChatGPT账号&…

Spark 写 MySQL经典50题

目录 建表 & 添加数据 表结构分析图 连接数据库 题目 1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数 2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数 3、查询平均成绩大于等于60分的同学的学生编号和学…

如何将GIS地图和可视化结合使用实现更好的数据呈现

GIS&#xff08;地理信息系统&#xff09;和可视化&#xff08;visualization&#xff09;是两个紧密相关的领域。GIS是一种用于管理、分析和展示地理空间数据的技术&#xff0c;而可视化则是一种用图形、图表、动画等形式展示数据的方式。GIS地图则是指基于地理信息系统技术&a…

【举一反三】只出现一次的数字

本文&#xff0c;讲位运算——异或运算。因为题干中说明要线性时间复杂度&#xff0c;所以采用位运算进行操作&#xff0c;而没有采用哈希表。 目录 1.只出现一次的数字 I 2.只出现一次的数字 II 3.只出现一次的数字 III 1.只出现一次的数字 I 136. 只出现一次的数字 - 力扣&…

浅析Dubbo核心设计

大家好&#xff0c;我是易安&#xff01; 当今互联网时代&#xff0c;随着企业业务的不断扩展和用户量的增加&#xff0c;分布式系统已成为大型企业必不可少的组成部分。而Dubbo框架作为阿里巴巴开源的高性能Java RPC框架&#xff0c;一直以来都备受关注和使用。其核心设计思想…

机器学习正以惊人的速度破解宇宙奥秘

宇航员、科学家和其他以探索并记录终极边界为己任的人们&#xff0c;才积极转向机器学习&#xff08;ML&#xff09;以协助应对自己面临的非凡挑战。从引导火箭穿越太空到研究遥远行星的表面&#xff0c;再到测量宇宙大小和计算天体的运动轨迹&#xff0c;AI在太空中拥有着众多…

300左右蓝牙耳机推荐,口碑好的平价蓝牙耳机选购指南

300元预算&#xff0c;想入手一款最值得蓝牙耳机&#xff0c;咋选&#xff1f;作为一个有4年玩机经验的爱好者&#xff0c;蓝牙耳机推荐性价比高的产品&#xff0c;今天就总结了几款目前很受欢迎&#xff0c;同时性能各方面都不错的机型&#xff0c;选对这几款&#xff0c;不用…

WIN10、WIN11 新电脑配置

WIN10、WIN11 新电脑配置WIN10、WIN11 新电脑配置开启管理员模式启用power shell脚本WIN10、WIN11 新电脑配置 开启管理员模式 WIN11 下没有安装本地安全策略组件&#xff0c;表现为CMD运行 secpol.msc 命令会提示异常 开启本地安全策略 echo off pushd "%~dp0"…

电脑上怎么把PDF转换成PPT?几步教你轻松转换

PDF文件是一种常见的办公文档格式&#xff0c;它具有固定格式和内容不易改变的特点&#xff0c;广泛应用于各种正式场合。虽然各种办公软件都能够将文件转换为PDF格式&#xff0c;但如果需要将PDF文件转换为其他格式&#xff0c;就需要使用专门的工具了。今天我们将介绍两款常用…

论文解读 | 解耦知识蒸馏

10 年来&#xff0c;DNN 的变革给计算机视觉领域带来了重大发展&#xff0c;促成了各种实时任务的繁荣&#xff0c;如图像分类、目标检测、语义分割等。然而强大的网络通常得益于大的网络容量&#xff0c;这通常以大量的计算和存储为代价&#xff0c;是工业应用所不喜欢的。在工…

一觉醒后ChatGPT 被淘汰了

OpenAI 的 Andrej Karpathy 都大力宣传&#xff0c;认为 AutoGPT 是 prompt 工程的下一个前沿。 近日&#xff0c;AI 界貌似出现了一种新的趋势&#xff1a;自主人工智能。 这不是空穴来风&#xff0c;最近一个名为 AutoGPT 的研究开始走进大众视野。特斯拉前 AI 总监、刚刚回归…

X进制转十进制黄金万能算法

单纯、混合进制通吃&#xff0c;真正的黄金万能的进制转换方法。 【学习的细节是欢悦的历程】Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅仅是基础那么简单…… 地址&#xff1a;https://…

LINUX_kali学习笔记

基础命令 命令说明示例pwd查看当前路径ls查看当前文件夹下文件 .开头为隐藏文件 &#xff08;文件夹下使用ctrlh查看&#xff09;ls -a&#xff08;查看文件及隐藏文件&#xff09;ls -alh&#xff08;查看文件及显示详情&#xff09;cd切换目录cd /&#xff08;切换到根目录&…