python常用基础知识

目录

(1)print函数

(2)注释

(3)input函数

(4)同时赋值和连续赋值

(5)type函数和id函数

(6)python赋值是地址赋值

(7)基本运算符和增强型赋值运算符

(8)科学记数法

(9)类型转换

(10)eval函数

(11)删除变量

(12)一条语句多行显示和多条语句一行显示

(13)dir函数

(14)help函数

(15)os.system函数

(16)输入输出重定向

(17)round函数

(18)ASCII 编码、ord函数和chr函数

(19)统一码

(20)转义序列

(21)用%或 format 在字符串里面插入变量值

%用法

format用法

(22)用 format 函数格式化数字和字符串

1.格式化浮点数

2.格式化为科学计数法形式

3.格式化为百分数形式

4.格式化整数

5.格式化字符串

(23)整数不同进制之间的转化

(24)汉字和英文字符比较

长度比较

占用字符个数比较

(25)python2和python3区别

字符串编码区别

除法符号/区别

(26)python设置代码编码方式

(27)字符串编码处理

bytes 函数

decode 和 encode 函数

codecs 模块

(28)排列和组合


(1)print函数

打印一个段落:用三个双引号

print("""锄禾日当午, 
汗滴禾下锄。 
谁知盘中餐, 
粒粒皆辛苦。
""")

end参数:参数 end 的默认值是换行符"\n",即打印内容后自动换行,也可以指定为其它内容

print("AAA", end="x") 
print("BBB", end=' ')
print("CCC", end='***')
# AAAxBBB CCC***
sep参数:print传入多个变量打印时,变量之间用什么符号进行间隔,默认是空格
print(1, 2, 3)              # 1 2 3
print(1, 2, 3, sep="###")   # 1###2###3

(2)注释

# 注释行
# 这里是注释内容

# 注释段,三个单引号
''' 注释内容
注释内容
注释内容
'''

注释多行也可以用三个双引号

"""
注释内容
注释内容
"""

快速给多行代码添加和取消注释:ctrl + /。它会给多行代码每行添加#。

(3)input函数

作用:从控制台读取输入。参数为提示内容,返回值为字符串。

string = input("请输入内容:")
radius = eval(input("请输入半径:"))
print(string)
print(radius)

(4)同时赋值和连续赋值

# 1.同时赋值
# 重要应用:交换变量值
x, y, z = 1, 2, 5
print(x, y, z)x, y = y, x
print(x)
print(y)a, b, c = eval(input("请用英文逗号隔开输入三个数字:"))  # 2, 4, 7
print(a, b, c)# 2.连续赋值
x = y = 1
print(x, y)

(5)type函数和id函数

type函数:查看变量的类型

id函数:查看变量的内存地址

a = 1
print(type(a))  # <class 'int'>
print(id(a))   # 1387529267504
if type(a) == int:  # 类型判断print("a is int")b = 1.0
print(type(b))  # <class 'float'>
if type(b) == float:  # 类型判断print("b is float")c = complex(1, 2)  # python自带复数类型
print(type(c))   # <class 'complex'>
if type(c) == complex:  # 类型判断print("c is complex")d = None
print(type(d))  # <class 'NoneType'>
if d is None:  # 类型判断print("d is None")e = [1, 2, 3]
print(type(e))  # <class 'list'>
if type(e) == list:print("e is list")f = {"ZhangSan": 18, "Tom": 19}
print(type(f))  # <class 'dict'>
if type(f) == dict:print("f is dict")

(6)python赋值是地址赋值

以x=y为例,地址赋值的意思就是将y的值赋值x,x的地址值为y的地址

x = 3
y = 3
print(id(x), id(y))   
# 2471996909936 2471996909936 # 地址相同value = 100
m = value
n = value
print(id(value), id(m), id(n))   
# 2471997101520 2471997101520 2471997101520 # 地址相同lst = [1, 2, 3]
lst1 = lst
lst2 = lst
print(id(lst), id(lst1), id(lst2))  
# 2472002138432 2472002138432 2472002138432 # 地址相同

(7)基本运算符和增强型赋值运算符

基本运算符

符号含义举例

加法34+1
减法34-1
*乘法300*10
/除法1/2,返回0.5
//整除1//2,返回0
**4**0.5,返回2
%取余20%3,返回2

增强型赋值运算符,由算术运算符和=组成

以*=为例,i*=8就是i=i*8的简写

x = 1
x += 3
print(x)  # 4y = 2
y *= 3
print(y)  # 6

(8)科学记数法

浮点数可以用 a × 10**b 形式的科学计数法来编写
比如 123.456 的科学计数法为 1.23456 × 10** 2 0.0123 的科学计数法为 1.23 × 10**( −2)
python 1.23456 × 10** 2 被写作 1.23456E+2 或者 1.23456E2 ,而 1.23 ×10**( −2) 被写作 1.23E-2
x = 1.23456E+2
print(x)  # 123.456y = 1.23456E2
print(y)  # 123.456z = 1.23E-2
print(z)  # 0.0123

(9)类型转换

要转化为什么类型就用什么类型的函数

int函数:取浮点数的整数部分

float 函数:整数变浮点数
print(int(5.6)) # 5
print(float(5)) # 5.0
int 函数也可以将整数字符串转换为整数,比如 int("34")返回 34
注意的是 int 函数只能是整数字符串的转换,比如 int("3.4") 会报错
int 函数将整数字符串转换为整数时还可以有第二个参数,第二个参数表示这个整数的进制,返回对应 10 进制的整数
print(int("10", 8)) # 8
print(int("12", 8)) # 10

str函数:转化为字符串

x = 123
ret = str(x)
print(type(ret))  # <class 'str'>
print(ret)  # 123

list函数:转化为list

x = (1, 2, 3)
ret = list(x)
print(ret)  # [1, 2, 3]y = "abc"
ret = list(y)
print(ret)  # ['a', 'b', 'c']

(10)eval函数

eval函数十分强大,参数传入python类型数据的字符串,能主动识别字符串以应该返回什么数据

a = "123"
ret = eval(a)
print(type(ret))  # <class 'int'>
print(ret)  # 123b = "3 + 4"
ret = eval(b)
print(type(ret))  # <class 'int'>
print(ret)  # 7c = "[5,  6,    7]"
ret = eval(c)
print(type(ret))  # <class 'list'>
print(ret)  # [5, 6, 7]d = "{'a':  1,   'b':   'xxxxx'}"
ret = eval(d)
print(type(ret))  # <class 'dict'>
print(ret)  # {'a': 1, 'b': 'xxxxx'}

(11)删除变量

语法:del varName

作用:内存回收

num = 1
print(num)  # 1del num
print(num) # NameError: name 'num' is not defined

(12)一条语句多行显示和多条语句一行显示

# 一行变多行
# 法一,加反斜号
x = 2
if x % 2 == 1 and \x > 50:print(x)# 法二,加括号
x = 2
if ( x % 2 == 1 andx > 50):print(x)# 多行变一行,用分号
num1 = 1 ; num2 = 4 ; num3 = 5 ; print(num1, num2, num3)

(13)dir函数

作用:查看一个模块或者一个类的所有属性和方法

import math
print(dir(math))
"""
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
"""

(14)help函数

作用:查看一个函数或者方法的详细用法

import os
help(os.path.join)
"""
Help on function join in module ntpath:join(path, *paths)# 

(15)os.system函数

作用:运行系统的命令

以windows为例

import os
os.system("calc") # 打开计算器
os.system("notepad") # 打开记事本
os.system("echo mystrxxx") # 打印文本
os.system("task kill /f /im notepad.exe") # 关闭记事本
os.system("task kill /f /im QQ.exe") # 关闭 QQ
# 用代码打开软件
os.system("\"C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe\"") 

(16)输入输出重定向

输出:以print函数为例,默认输出到输出设备比如屏幕上

输入:以input函数为例,默认手动从键盘获取输入

输入输出重定向的意思就是改变输出或者输入源

现在我们进行“输入输出重定向”

输入重定向

从 txt 文本文件中输入
 python 文件名.py < 输入文件名.txt 

每次读取一行(只读取一次的话,就是读取第一行的文本/数据)

输出重定向

将输出显示在 txt 文本文件中
python 文件名.py > 输出文件名.txt 
# 写入文本覆盖 # 若文件不存在则创建一个新文件

python 文件名.py >> 输出文件名.txt  
# 追加模式
方便的句式
python 文件名.py < 输入文件名.txt >> 输出文件名.txt

(17)round函数

round(x):将x这个浮点数四舍五入为整数

round(x, n):浮点数小数位四舍五入保留n位

(18)ASCII 编码、ord函数和chr函数

ASCII 编码

  • 字符编码的方式有很多
  • 流行的编码标准是 ASCII 编码(美国信息交换标准代码),使用 0 127 来表示字符ASCII 一共 128
  • 对应键盘上的128个符号,每个符号对应一个ASCII值,从0 127
  • 十进制中,数字 0 ASCII 码是 48,字母 A ASCII 码是 65,字母 a ASCII 码是 97
  • 任何小写字母的 ASCII 码减去其大写字母的 ASCII 码都是 32

ord函数

ord(ch)来返回字符 ch 的 ASCII 码

chr函数

chr(ASCII值)来返回该 ASCII 码所代表的字符
x = ord('a')
print(x)  # 97s = chr(x)
print(s)  # ay = ord('A')
print(x - y)  # 32

(19)统一码

python 也支持统一码,unicode
统一码是一种编码表, ASCII 码是统一码的子集
统一码由统一码协会建立, 支持世界上各种语言所写的文本进行交换、处理和展示
统一码以 “\u” 开始,从 "\u0000" "\uFFFF"
print("\u6B22")  # 欢
print("\u8FCE")  # 迎
print("\u3434")  # 㐴

汉字 Unicode 编码范围:中文字符集 Unicode 编码范围

(20)转义序列

\和紧跟着单双引号斜线或者字母的组合被称为转义序列

常用的转移序列有:

  • \t 是制表符,就是一个 tab 键,相当于缩进四个空格
  • \b 是退格符,在打印时向后退一个空格,作用是将后面那个字符给消除掉了
  • \n 是换行符,换行符后的内容将在下一行打印出来
  • \"\'\\,表示将双引号、单引号或斜线不具有其它的含义,单纯只是符号,而不像字符串双引号具有作用
  • 其它转义序列
print("He said, \"John's program is easy to read\"")# 同时使用单引号和双引号,也可起到转义序列的作用
sayHello = '他说:"你好啊"。'
print(sayHello)print("ab\bcd")  # "acd"print("\tabcd")  # "   abcd"print("ab\ncd")  # cd 在 ab 的下一行print(r"C:\Users\xxxx\Desktop\tools")  # 用 r 解决时,不用输入转义字符# \t 是制表符,默认占 4 个空格大小的位置
s = "11\t2\t3"
print(len(s))
print(s)
print("11xx2xxx3")
'''
6
11	2	3
11xx2xxx3
'''

(21)%format 在字符串里面插入变量值

%用法

% 语法

%c 字符,%d 整数,%s 字符串,%f 浮点数,%e 科学计数形式
a = 100
b = 297.364
c = 15487.275
mystr1 = "我卖了%d 个商品,每个卖%.2f 元,利润是%.2f 元" % (a, b, c)
print(mystr1)print("hello %% %f" %(10.5))  #
# %%代表输出一个%,为了区别mystr3 = "我卖了%d 个商品,每个卖%-10.2f 元,利润是%10.2f 元"%(a, b, c)
# 默认右对齐,-表示左对齐
print(mystr3)
# 我卖了 100 个商品,每个卖 297.36 元,利润是 15487.27 元mystr4 = "我卖了%d 个商品,每个卖%010.2f 元,利润是%010.2f 元"%(a, b, c)
# 宽度为 10,默认填充空格,设置填充 0
print(mystr3)
# 我卖了 100 个商品,每个卖 0000297.36 元,利润是 0015487.27 元

format用法

format 语法(巧记:冒号 4.2)
a = 100
b = 297.364
c = 15487.275
mystr2 = "我卖了{}个商品,每个卖{:.2f}元,利润是{:.2f}元".format(a, b, c)
print(mystr2)
将整数 5 格式化 05 的方法: {:02d}
mystr1 = "中间{:02d}是个数".format(5)
mystr2= "中间{:03d}是个数".format(5)
mystr3= "中间{:0003d}是个数".format(5)
print(mystr1) # 05
print(mystr2) # 005
print(mystr3) # 005

第二种方法:

ret = format(5, "02d")
print(type(ret))  # <class 'str'>
print(ret)  # 05

format简化用法:

num = 5
ret = f"这里有{num}个公司"
print(type(ret))  # <class 'str'>
print(ret)  # 这里有5个公司

(22)format 函数格式化数字和字符串

调用这个函数的语法是: format(item, format-specifier) 
此函数返回的是一个字符串
对浮点数保留两位小数
interest = 16.404674
interest = round(interest,2)
print(interest) # 16.4
然而我们想要的是 16.40 这种效果
interest = format(interest, ".2f")
print(interest) # 16.40

1.格式化浮点数

示例
interest = 16.404674  # interest 是要格式化的浮点数
interest = format(interest, "^10.3f")
print(interest) # " 16.405 "
用法讲解:
  • <表示左对齐,>表示右对齐,^表示居中对齐,不设置时默认为右对齐
  • 10 表示整个字符串占的宽度,不设置时默认为浮点数本身的宽度。如果字符串超过设置的宽度则默认为字符串的宽度,如果不够则自动填充空格。
  • 3 表示保留的小数位数
  • f表示是格式化浮点数

2.格式化为科学计数法形式

f 换成了 e
s1 = format(14.6273, "10.2e")
s2 = format(0.0146273, "<10.3e")
print(s1)  # " 1.46e+01"
print(s2)  # "1.463e-02 "

3.格式化为百分数形式

f 换成了%
s1 = format(14.6, "<10.2%")
s2 = format(0.0142, "10.3%")
print(s1) # “1460.00% ”
print(s2) # “ 1.420%”

4.格式化整数

b 表示转换为二进制,o 是八进制,d 是十进制,x 是十六进制
s1 = format(111, "<10b")
s2 = format(111, ">10o")
s3 = format(111, "^10d")
s4 = format(111, ">10x")
print(s1) # “1101111 ”
print(s2) # “ 157”
print(s3) # “ 111 ”
print(s4) # “ 6f”

将整数 5 格式化 05 的方法

ret = format(5, "02d")
print(type(ret))  # <class 'str'>
print(ret)  # 05

5.格式化字符串

有时用来统一宽度进而对齐打印很好用

只有字符串默认对齐方式左对齐
格式最后面的参数是 s
string = "Python is fun" 
s1 = format(string, "<20s")
s2 = format(string, ">20s")
s3 = format(string, "^20s")
s4 = format(string, "20s")
print(s1) # “Python is fun ”
print(s2) # “ Python is fun”
print(s3) # “ Python is fun ”
print(s4) # “Python is fun ”

(23)整数不同进制之间的转化

# 在赋值的时候确定进制,在数字前面加 0x,0o,0b
a = 0x10 # 16 进制的 10,就是 10 进制的 10
b = 10 # 10 进制的 10
c = 0o10 # 8 进制的 10
d = 0b10 # 2 进制的 10
print(a, b, c, d, sep = " || ") # 16 || 10 || 8 || 2
print(0b101 + 6) # 11
print(0b101 + 0x12) # 23# 10 进制转为其他进制
print(hex(100)) # 10 进制转换为 16 进制 # 0x64
print(oct(10)) # 10 进制转换为 8 进制 # 0o12
print(bin(10)) # 10 进制转换为 2 进制 # 0b1010

(24)汉字和英文字符比较

长度比较

一个汉字是一个字符
一个英文字母是一个字符
s1 = "你好"
print(len(s1)) # 2
s2 = "ab"
print(len(s2)) # 2

占用字符个数比较

以存储到txt文为例

一个汉字占用 3 个字节的内存(utf-8编码时),或者占用2个字节的内存(gbk编码时)
一个英文字母占用 1 个字节的内存
print(bytes("我", "utf-8"))  # b'\xe6\x88\x91'
print(bytes("我", "gbk"))    # b'\xce\xd2'
print(bytes("x", "gbk"))    # b'x'
print(bytes("x", "gbk"))    # b'x'

(25)python2和python3区别

字符串编码区别

在 python2 中,普通字符串是以 8 位 ASCII 编码进行存储的

在 python3 中,所有字符串都是 Unicode 编码

Unicode 字符串则存储 16 位 unicode 字符串,这样就能够表示更多的字符集,使用的语法是在字符串前面加前缀 u
unicode 有若干种格式:utf-8,unicode-8,unicode16,gbk
python3 默认字符串是 unicode 中的 utf-8 格式

除法符号/区别

python2中类似c语言是取整,返回除法结果的整数位

python2中就是数学上的除法,返回浮点数

(26)python设置代码编码方式

在代码最方面的第一行加上以下语句

# -*- coding: utf-8 -*-

或者

#coding=utf-8

(27)字符串编码处理

bytes 函数

byte 转化为二进制编码,1 个字节
b = bytes(1) # byte 转化为二进制编码,1 个字节
print("bytes(1) = ", b) # b'\x00'
# \x16 进制 2^4=16 一位数的 16 进制相当于 4 位
# 所以 2 位数 16 进制相当于 8 位 (1 个字节)
utf-8 和 gbk :不同的编码大小不一样内容不一样
print("-"*10)
a = bytes("你 abc", "utf-8")
print(a) 
a = bytes("你 abc", "gbk")
print(a)  # utf-8 一个汉字占 3 个字符,前面两个字符表示汉字,最后那个字符表示结束
print("-"*10)
print(bytes("我", "utf-8"))
print(bytes("我的", "utf-8"))
print(bytes("我的喔", "utf-8"))# GBK 一个汉字用两个字符表示,没有结束
print("-"*10)
print(bytes("我", "gbk"))
print(bytes("我的", "gbk"))
print(bytes("我的喔", "gbk"))

运行结果

----------
b'\xe4\xbd\xa0 abc'
b'\xc4\xe3 abc'
----------
b'\xe6\x88\x91'
b'\xe6\x88\x91\xe7\x9a\x84'
b'\xe6\x88\x91\xe7\x9a\x84\xe5\x96\x94'
----------
b'\xce\xd2'
b'\xce\xd2\xb5\xc4'
b'\xce\xd2\xb5\xc4\xe0\xb8'

decode encode 函数

decode:解码
encode:编码
print(b'\xce\xd2\xb5\xc4\xe0\xb8')
print(b'\xce\xd2\xb5\xc4\xe0\xb8'.decode("gbk"))# decode 方法,将二进制转化为文本字符串,制定编码格式
print("你好中国".encode("utf-8"))
print(b'\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xb8\xad\xe5\x9b\xbd'.decode("utf-8"))# decode, encode:编码一致,编码不一致时会乱码或者编码出错
# print(b'\xce\xd2\xb5\xc4\xe0\xb8'.decode("utf-8")) # 这里会报错# encode 方法,文本字符串编码为二进制编码
print(type("hello".encode("utf-8")))
print(type(b'\xce\xd2\xb5\xc4\xe0\xb8'.decode("gbk")))# 英文字母,两种编码都可以
# 汉字注意编码的格式# "ignore",解码失败,强行解码
# b 开头是 bytes
print(b'\xe4\xbd\xa0\xe5\xa5\xbd\xe4\xb8\xad\xe5\x9b\xbd'.decode("gbk", "ignore"))# 第一个参数:设置编码
# encoding = "utf-8"
# 第二个参数:默认是'strict',其他有'replace','ignore'
# errors = "ignore"

codecs 模块

打开文件时对编码的处理更为精细
import codecsfilename = r"./data/record.txt" 
file = codecs.open(filename, "rb", "gbk", "ignore")
name = input("输入要查询的负心人:")n = 0
i = 0for line in file:n += 1if line.find(name) != -1:i += 1print(line)print(f"一共{i}/{n}条")

(28)排列和组合

from itertools import combinations, permutations# 组合 combinations
# 排列 permutationss = "ABCD"
lst = list(s)# 排列
list1 = list(permutations(lst, len(lst)))  # 第二个参数为要选取的个数
print(list1)# 组合
list2 = list(combinations(lst, 2))
print(list2)

end

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

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

相关文章

Qt编译和使用freetype矢量字库方法

在之前讲过QT中利用freetype提取字库生成图片的方法&#xff1a; #QT利用freetype提取字库图片_qt freetype-CSDN博客文章浏览阅读1.2k次。这是某个项目中要用到的片段&#xff0c;结合上一篇文章#QT从字体名获取字库文件路径使用// 保存位图int SaveBitmapToFile(HBITMAP hBi…

【会议征稿,ACM出版】第四届人工智能,大数据与算法国际学术会议 (CAIBDA 2024, 7/5-7)

由河南省科学院、河南大学主办&#xff0c;河南省科学院智慧创制研究所、河南大学学术发展部、河南大学人工智能学院承办的第四届人工智能&#xff0c;大数据与算法国际学术会议 (CAIBDA 2024)将于2024年7月5-7日于中国郑州隆重举行。CAIBDA 2024致力于为人工智能&#xff0c;大…

碳纳米管须状触嗅觉多模态融合传感器在皮革奢侈品真伪鉴定下的设计探索

一、设计方案 1.传感器选择 触觉传感器&#xff1a;选择基于碳纳米管&#xff08;CNT&#xff09;聚合物的柔性MEMS触觉微传感器&#xff0c;由于碳纳米管具有高度的灵敏度和选择性、柔韧性&#xff0c;可以作为触觉传感器&#xff0c;检测材料的微观结构和机械特性。嗅觉传感…

网页打开:为什么国内用新标签页,国外用当前页?

想写这个话题很久了&#xff0c;因为用百度和Google搜索时&#xff0c;打开搜索结果链接时的交互差异&#xff0c;几乎每天都要提醍我一下。 网页打开——这个交互&#xff0c;在设计里&#xff0c;算是极微小&#xff0c;但影响极广泛的操作设计。甚至&#xff0c;因此形成了…

【Python】图形用户界面设计

1、设计并编写一个窗口程序,该窗口只有一个按钮,当用户单击时可在后台输出hello world. import tkinter as tk def on_button_click():print("hello world") # 创建主窗口 root tk.Tk() root.title("Hello World Button") # 设置窗口大小 root.geometry…

代码随想录-算法训练营day41【动态规划04:01背包问题-滚动数组、分割等和子集】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part04● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集 正式开始背包问题,背包问题还是挺难的,虽然大家可能看了很多背包问题模板代码,感觉挺简单,…

SAP_SNOTE_补丁修复_全流程实战

SAP ABAP 顾问&#xff08;开发工程师&#xff09;能力模型-CSDN博客文章浏览阅读1.2k次。目标&#xff1a;基于对SAP abap 顾问能力模型的梳理&#xff0c;给一年左右经验的abaper 快速成长为三年经验提供超级燃料&#xff01;https://blog.csdn.net/java_zhong1990/article/d…

文字游侠AI丨简直是写作神器,头条爆文一键生成稳定赚米!附渠道和详细教程(只需四步)!

在数字时代的浪潮中&#xff0c;人们不断寻求网络空间中的商机&#xff0c;期望在互联网的浩瀚海洋里捕捉到稳定的财富。随着人工智能技术的突飞猛进&#xff0c;越来越多的AI工具被融入到各行各业&#xff0c;开辟了新天地&#xff0c;带来了创新的盈利模式。 其中&#xff0c…

回收站删除的照片怎么恢复?7个实用方法为你找回照片!

“我刚刚在对电脑上的照片进行清理&#xff0c;不小心错删了一张还需要的照片&#xff0c;但是在使用回收站时&#xff0c;将它删除了&#xff0c;有什么恢复回收站照片的简单方法吗&#xff1f;” 照片是我们生活点滴的见证&#xff0c;无论是外出旅游还是日常琐碎&#xff0c…

对话YashanDB CTO陈志标:如何推动国产数据库长远发展

深圳计算科学研究院&#xff08;以下简称“深算院”&#xff09;是深圳市人民政府2018年11月批准建设的“十大基础研究机构”之一&#xff0c;由深圳市科技创新委员会主管、深圳大学举办、深圳市龙华区人民政府共建的二类事业法人单位。 崖山数据库系统YashanDB是深算院完全自主…

Originx的创新解法之:应用程序故障篇

Originx并不期望做一个完整覆盖全栈的监控体系&#xff0c;而是利用北极星指标体系标准化找出故障方向&#xff0c;然后联动各种成熟的监控数据形成证据链条&#xff0c;并将各种数据融合在一个故障报告之中。更多信息请参考 Log | Metrics | Trace的联动方式探讨http://mp.wei…

iPhone携手ChatGPT?苹果OpenAI或将强强联手

近年来&#xff0c;人工智能技术的蓬勃发展掀起了一场席卷全球的科技浪潮&#xff0c;而智能手机作为人们日常生活中不可或缺的一部分&#xff0c;自然成为了这场AI竞赛的重要战场。各大科技巨头纷纷加码布局&#xff0c;力图在AI领域占据领先地位。 近日&#xff0c;据知情人士…

智慧城市新篇章:城市街道治理视频系统建设的探索与实践

一、背景分析 随着城市化进程的加快和社会治安形势的日趋复杂&#xff0c;街道治安管理面临着前所未有的挑战。对于街道治安的管理&#xff0c;面临着街道上机动车、非机动车违停、游商摊贩、垃圾堆积、人员监管等问题&#xff0c;既影响市容市貌&#xff0c;又有安全隐患。传…

Springboot+Shiro实现登录

Shiro的简单介绍 Shiro是Java的一个安全框架&#xff0c;旨在简化身份验证和授权。Shiro在JavaSE和JavaEE项目中都可以使用。它主要用来处理身份认证&#xff0c;授权&#xff0c;企业会话管理和加密等。 shiro由三部分组成&#xff1a; 1、Subject&#xff1a;当前操作的用…

自定义类似vite的命令行

一、第一步 随便新建一个文件夹&#xff0c;终端执行npm init&#xff0c;生成如图的结构 其中name就是命令行的名字 二、第二步 新建一个js文件&#xff0c;在其顶部加入这串代码#!/usr/bin/env node,#!就是告诉系统这个是可执行脚本,/usr/bin/env就是系统环境变量&#x…

Spring-Cloud 微服务

1. 微服务架构 1.1 单体应用架构---内部项目【OA WMS等】 将项目所有模块(功能)打成jar或者war&#xff0c;然后部署一个进程 优点: 1:部署简单:由于是完整的结构体&#xff0c;可以直接部署在一个服务器上即可。 2:技术单一:项目不需要复杂的技术栈&#xff0c;往往一套熟悉的…

争议PCDN:限速、局停为哪般?

最近&#xff0c;在国内通信人聚集的有个话题特别火&#xff0c;那就是部分运营商给家庭宽带接入用户进行上行限速&#xff0c;甚至还会出现局停的极端现象&#xff0c;引起了不小争议。 “每个月按时交宽带费&#xff0c;运营商凭啥给我限速&#xff1f;”这是很多网友的疑问…

记PLSQL链接Oracle数据库

一、环境 Windows环境安装plsql工具 Oracle部署在服务器上面。 由于我之前在本地Windows安装了一个Oracle数据库&#xff0c;结果导致之前已经在连接的PLSQL链接不上。 二、操作 PLSQL工具正常安装&#xff0c;主要就是一些Oracle的一些配置&#xff0c;和oracle客户端。 o…

HashTable, HashMap, ConcurrentHashMap 三者区别

目录 1. HashMap 2. HashTable 3. ConcurrentHashMap 1. HashMap HashMap 是 Java 中非常常用的一个数据结构&#xff0c;它主要用于存储 键值对&#xff08;K&#xff0c;V&#xff09;。 在JDK 1.7中&#xff0c;HashMap的实现是基于 Table数组 和 Entry链表 的组合。 从…

在 pyGTK 中使用 visibility_notify 事件

问题背景 在 Windows 系统中开发 pygtk 应用程序时&#xff0c;需要知道何时一个窗口被另一个窗口遮挡或显示&#xff0c;以便停止繁重的绘图进程。为此&#xff0c;可以使用 visibility_notify_event 信号来获取窗口可见性状态的改变。 解决方案 可以使用 visibility_notif…