Python——第2章 数据类型、运算符与内置函数

目录

1 赋值语句

2 数据类型

2.1 常用内置数据类型

2.1.1  整数、实数、复数

2.1.2  列表、元组、字典、集合

 2.1.3  字符串

2.2  运算符与表达式

2.2.1  算术运算符 

2.2.2  关系运算符

2.2.3  成员测试运算符

2.2.4  集合运算符

2.2.5  逻辑运算符

2.3  常用内置函数

2.3.1  类型转换

2.3.2  最大值、最小值

2.3.3  元素数量、求和

2.3.4  排序、逆序 

2.3.5  基本输入输出

2.3.6  range()

2.3.7  zip() 

2.3.8  map()、reduce()、filter()


1 赋值语句

格式:变量名=数据

x=2 
x=y=2   #多个变量同时具有相同的值,id(x)查看变量的内存地址 
x,y=1,2  #多个变量同时具有不相同的值 x,y=y,x  #变量交换

2 数据类型

整数类型、字符串类型、列表类型

2.1 常用内置数据类型

2.1.1  整数、实数、复数

import math
print(math.factorial(32))               # 计算32的阶乘
print(0.4-0.3 == 0.1)                   # 实数之间尽量避免直接比较大小
print(math.isclose(0.4-0.3, 0.1))       # 测试两个实数是否足够接近
num = 7
squreRoot = num ** 0.5                  # 计算平方根
print(squreRoot**2 == num)
print(math.isclose(squreRoot**2, num))
---------------------------------------
263130836933693530167218012160000000
False
True
False
True
c = 3+4j                                # Python内置支持复数及其运算
print(c+c)                              # 复数相加
print(c**2)                             # 幂运算
print(c.real)                           # 查看复数的实部
print(c.imag)                           # 查看复数的虚部
print(3+4j.imag)                        # 相当于3+(4j).imag
print(c.conjugate())                    # 查看共轭复数
print(abs(c))                           # 计算复数的模
------------------------------------
(6+8j)
(-7+24j)
3.0
4.0
7.0
(3-4j)
5.0

2.1.2  列表、元组、字典、集合

列表、元组、字典、集合是Python内置的容器对象。 

# 创建列表对象
x_list = [1, 2, 3]
# 创建元组对象
x_tuple = (1, 2, 3)
# 创建字典对象,元素形式为“键:值”
x_dict = {'a':97, 'b':98, 'c':99}
# 创建集合对象
x_set = {1, 2, 3}

# 使用下标访问列表中指定位置的元素,元素下标从0开始
print(x_list[1])
# 元组也支持使用序号作为下标,1表示第二个元素的下标
print(x_tuple[1])
# 访问字典中特定“键”对应的“值”,字典对象的下标是“键”
print(x_dict['a'])
# 查看列表长度,也就是其中元素的个数
print(len(x_list))
# 查看元素2在元组中首次出现的位置
print(x_tuple.index(2))
# 查看字典中哪些“键”对应的“值”为98
for key, value in x_dict.items():
    if value == 98:
        print(key)
# 查看集合中元素的最大值
print(max(x_set))
----------------------------------
2
2
97
3
1
b
3

 2.1.3  字符串

在字符串前面加上英文字母r或R表示原始字符串,其中每个字符都表示字母含义,不再进行转义。如果字符串中含有反斜线“\”,建议在字符串前面直接加上字母r使用原始字符串。

text = '''Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.'''

print(len(text))                 # 字符串长度,即所有字符的数量
print(text.count('is'))          # 字符串中单词is出现的次数
print('beautiful' in text)       # 测试字符串中是否包含单词beautiful
print('='*20)                    # 字符串重复
print('Good '+'Morning')         # 字符串连接
---------------------------------------
208
6
False
====================
Good Morning

2.2  运算符与表达式

2.2.1  算术运算符 

(1)+运算符

+运算符除了用于算术加法以外,还可以用于列表、元组、字符串的连接。

print(3 + 5)
print(3.4 + 4.5)
print((3+4j) + (5+6j))
print('abc' + 'def')
print([1,2] + [3,4])
print((1,2) + (3,))
------------------------------
8
7.9
(8+10j)
abcdef
[1, 2, 3, 4]
(1, 2, 3)

(2)-运算符

-运算符除了用于整数、实数、复数之间的算术减法和相反数之外,还可以计算集合的差集。需要注意的是,在进行实数之间的运算时,有可能会出现误差。 

print(7.9 - 4.5)                    # 注意,结果有误差
print(5 - 3)
num = 3
print(-num)
print(--num)                        # 注意,这里的--是两个负号,负负得正
print(-(-num))                      # 与上一行代码含义相同
print({1,2,3} - {3,4,5})            # 计算差集
print({3,4,5} - {1,2,3})
--------------------------------------
3.4000000000000004
2
-3
3
3
{1, 2}
{4, 5}

 (3)*运算符

*运算符除了表示整数、实数、复数之间的算术乘法,还可用于列表、元组、字符串这几个类型的对象与整数的乘法,表示序列元素的重复,生成新的列表、元组或字符串。 

print(33333 * 55555)
print((3+4j) * (5+6j))
print('重要的事情说三遍!' * 3)
print([0] * 5)
print((0,) * 3)
--------------------------------------
1851814815
(-9+38j)
重要的事情说三遍!重要的事情说三遍!重要的事情说三遍!
[0, 0, 0, 0, 0]
(0, 0, 0)

(4)运算符/和//

在Python中分别表示真除法和求整商。在使用时,要特别注意整除运算符//“向下取整”的特点。例如,-17 / 4的结果是-4.25,在数轴上小于-4.25的最大整数是-5,所以-17 // 4的结果是-5。

print(17 / 4)
print(17 // 4)
print((-17) / 4)
print((-17) // 4)
--------------------------
4.25
4
-4.25
-5

(5)%运算符

%运算符可以用于求余数运算,还可以用于字符串格式化。在计算余数时,结果与%右侧的运算数符号一致。

print(365 % 7)
print(365 % 2)
print('%c,%c, %c' % (65, 97, 48))   # 把65、97、48格式化为字符
---------------------------------------
1
1
A,a, 0

(6)**运算符

**运算符表示幂运算。使用时应注意,该运算符具有右结合性,也就是说,如果有两个连续的**运算符,那么先计算右边的再计算左边的,除非使用圆括号明确修改表达式的计算顺序。

print(2 ** 4)
print(3 ** 3 ** 3)
print(3 ** (3**3))           # 与上一行代码含义相同
print((3**3) ** 3)           # 使用圆括号修改计算顺序
print(9 ** 0.5)              # 计算9的平方根
print((-1) ** 0.5)           # 对复数计算平方根得到复数
--------------------------------------
16
7625597484987
7625597484987
19683
3.0
(6.123233995736766e-17+1j)

2.2.2  关系运算符

print(3+2 < 7+8)                          # 关系运算符优先级低于算术运算符
print(3 < 5 > 2)                          # 等价于3<5 and 5>2
print(3 == 3 < 5)                         # 等价于3==3 and 3<5
print('12345' > '23456')                  # 第一个字符'1'<'2',直接得出结论
print('abcd' > 'Abcd')                    # 第一个字符'a'>'A',直接得出结论
print([85, 92, 73, 84] < [91, 82, 73])    # 第一个数字85<91,直接得出结论
print([180, 90, 101] > [180, 90, 99])     # 前两个数字相等,第三个数字101>99
print({1, 2, 3, 4} > {3, 4, 5})           # 第一个集合不是第二个集合的超集
print({1, 2, 3, 4} <= {3, 4, 5})          # 第一个集合不是第二个集合的子集
print([1, 2, 3, 4] > [1, 2, 3])           # 前三个元素相等
                                          # 并且第一个列表有多余的元素
----------------------------------
True
True
True
False
True
True
True
False
False
True

2.2.3  成员测试运算符

print(60 in [70, 60, 50, 80])
print('abc' in 'a1b2c3dfg')
print([3] in [[3], [4], [5]])
print('3' in map(str, range(5)))
print(5 in range(5))
-----------------------------------
True
False
True
True
False

2.2.4  集合运算符

A = {35, 45, 55, 65, 75}
B = {65, 75, 85, 95}
print(A | B)
print(A & B)
print(A - B)
print(B - A)
print(A ^ B)
------------------------------
{65, 35, 75, 45, 85, 55, 95}
{65, 75}
{35, 45, 55}
{85, 95}
{35, 45, 85, 55, 95}

2.2.5  逻辑运算符

计算结果只要不是0、0.0、0j、None、False、空列表、空元组、空字符串、空字典、空集合、空range对象或其他空的容器对象,都被认为等价于True。

print(3 in range(5) and 'abc' in 'abcdefg')
print(3-3 or 5-2)
print(not 5)
print(not [])
-------------------------------------------
True
3
False
True

2.3  常用内置函数

在Python程序中,可以直接使用内置函数,不需要导入任何模块。

使用语句print(dir(__builtins__))可以查看所有内置函数和内置对象,注意builtins两侧各有两个下划线,一共4个。

2.3.1  类型转换

(1)int()、float()、complex()

print(int(3.5))                 # 获取实数的整数部分
print(int('119'))               # 把整数字符串转换为整数
print(int('1111', 2))           # 把1111看作二进制数,转换为十进制数
print(int('1111', 8))           # 把1111看作八进制数,转换为十进制数
print(int('1111', 16))          # 把1111看作十六进制数,转换为十进制数
print(int('  9\n'))             # 自动忽略字符串两个的空白字符
print(float('3.1415926'))       # 把字符串转换为实数
print(float('-inf'))            # 负无穷大
print(complex(3, 4))            # 复数
print(complex(6j))
print(complex('3'))
----------------------------------------------
3
119
15
585
4369
9
3.1415926
-inf
(3+4j)
6j
(3+0j)

(2)bin()、oct()、hex()

print(bin(8888))              # 把整数转换为二进制
print(oct(8888))              # 把整数转换为八进制
print(hex(8888))              # 把整数转换为十六进制
-------------------------------------------
0b10001010111000
0o21270
0x22b8
1

(3)ord()、chr()、str() 

print(ord('a'))               # 返回字符的ASCII码
print(ord('董'))              # 返回汉字字符的Unicode编码
print(chr(65))                # 返回指定ASCII码对应的字符
print(chr(33891))             # 返回指定Unicode编码对应的汉字
print(str([1, 2, 3, 4]))      # 把列表转换为字符串
print(str({1, 2, 3, 4}))      # 把集合转换为字符串
----------------------------------------------------
97
33891
A
董
[1, 2, 3, 4]
{1, 2, 3, 4}

(4)list()、tuple()、dict()、set()

print(list(), tuple(), dict(), set())  
s = {3, 2, 1, 4}
print(list(s), tuple(s))
lst = [1, 1, 2, 2, 3, 4]
# 在转换为集合时会自动去除重复的元素
print(tuple(lst), set(lst))
# list()会把字符串中每个字符都转换为列表中的元素
# tuple()、set()函数也具有类似的特点
print(list(str(lst)))
print(dict(name='Dong', sex='Male', age=41))
---------------------------------------------
[] () {} set()
[1, 2, 3, 4] (1, 2, 3, 4)
(1, 1, 2, 2, 3, 4) {1, 2, 3, 4}
['[', '1', ',', ' ', '1', ',', ' ', '2', ',', ' ', '2', ',', ' ', '3', ',', ' ', '4', ']']
{'name': 'Dong', 'sex': 'Male', 'age': 41}

(5)eval()

  • 计算字符串或字节串的值
  • 实现类型转换的功能
  • 还原字符串中数据的实际类型
print(eval('3+4j'))              # 对字符串求值得到复数
print(eval('8**2'))              # 计算表达式8**2的值
print(eval('[1, 2, 3, 4, 5]'))   # 对字符串形式求值得到列表
print(eval('{1, 2, 3, 4}'))      # 对字符串求值得到集合
---------------------------------------------------
(3+4j)
64
[1, 2, 3, 4, 5]
{1, 2, 3, 4}

2.3.2  最大值、最小值

data = [3, 22, 111]
print(data)
# 对列表中的元素直接比较大小,输出最大元素
print(max(data))
print(min(data))
# 返回转换成字符串之后最大的元素
print(max(data, key=str))
data = ['3', '22', '111']
print(max(data))
-------------------------------------------
[3, 22, 111]
111
3
3
3
# 返回长度最大的字符串
print(max(data, key=len))
data = ['abc', 'Abcd', 'ab']
# 最大的字符串
print(max(data))
# 长度最大的字符串
print(max(data, key=len))
# 全部转换为小写之后最大的字符串
print(max(data, key=str.lower))
data = [1, 1, 1, 2, 2, 1, 3, 1]
------------------------------------
111
abc
Abcd
Abcd
# 出现次数最多的元素
# 也可以查阅资料使用标准库collections中的Counter类实现
print(max(set(data), key=data.count))
# 最大元素的位置,列表方法__getitem__()用于获取指定位置的值
print(max(range(len(data)), key=data.__getitem__))
----------------------------------------------------------
1
6

2.3.3  元素数量、求和

data = [1, 2, 3, 4]
# 列表中元素的个数
print(len(data))
# 所有元素之和
print(sum(data))
data = (1, 2, 3)
print(len(data))
print(sum(data))
---------------------
4
10
3
6
data = {1, 2, 3}
print(len(data))
print(sum(data))
data = 'Readability counts.'
print(len(data))
data = {97: 'a', 65: 'A', 48: '0'}
print(len(data))
print(sum(data))
------------------------------------
3
6
19
3
210

2.3.4  排序、逆序 

(1)sorted

sorted()可以对列表、元组、字典、集合或其他可迭代对象进行排序并返回新列表,支持使用key参数指定排序规则,key参数的值可以是函数、类、lambda表达式、方法等可调用对象。

另外,还可以使用reverse参数指定是升序(reverse=False)排序还是降序(reverse=True) 排序,如果不指定的话默认为升序排序。

from random import shuffle

data = list(range(20))
shuffle(data)                  # 随机打乱顺序
print(data)
print(sorted(data))            # 升序排序
print(sorted(data, key=str))   # 按转换成字符串后的大小升序排序
print(sorted(data, key=str,    # 按转换成字符串后的大小
             reverse=True))    # 降序排序
----------------------------------------------------------------------
[5, 3, 0, 10, 1, 11, 8, 2, 9, 13, 16, 6, 17, 19, 15, 7, 12, 4, 14, 18]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[0, 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 1, 0]

(2)reversed

reversed()可以对可迭代对象(生成器对象和具有惰性求值特性的zip、map、filter、enumerate、reversed等类似对象除外)进行翻转并返回可迭代的reversed对象。

在使用时应注意,reversed对象具有惰性求值特点,其中的元素只能使用一次,并且不支持使用内置函数len()计算元素个数,也不支持使用内置函数reversed()再次翻转。

from random import shuffle

data = list(range(20))        # 创建列表
shuffle(data)                 # 随机打乱顺序
print(data)
reversedData = reversed(data) # 生成reversed对象
print(reversedData)
print(list(reversedData))     # 根据reversed对象得到列表
print(tuple(reversedData))    # 空元组,reversed对象中元素只能使用一次
--------------------------------------------------------------------------
[3, 19, 6, 17, 11, 5, 18, 15, 8, 1, 12, 7, 16, 4, 14, 10, 0, 9, 13, 2]
<list_reverseiterator object at 0x000001B79034F700>
[2, 13, 9, 0, 10, 14, 4, 16, 7, 12, 1, 8, 15, 18, 5, 11, 17, 6, 19, 3]
()

2.3.5  基本输入输出

(1)内置函数input

内置函数input()用来接收用户的键盘输入,不论用户输入什么内容,input()一律作为字符串对待,必要的时候可以使用内置函数int()、float()或eval()对用户输入的内容进行类型转换。

num = int(input('请输入一个大于2的自然数:'))
# 对2的余数为1的整数为奇数,能被2整除的整数为偶数
if num%2 ==1:
    print('这是个奇数。')
else:
    print('这是个偶数。')

lst = eval(input('请输入一个包含包含若干大于2的自然数的列表:'))
print('列表中所有元素之和为:', sum(lst))
-----------------------------------------------------------------
请输入一个大于2的自然数:6
这是个偶数。
请输入一个包含包含若干大于2的自然数的列表:[4,7,8,9]
列表中所有元素之和为: 28

(2)内置函数print

内置函数print()用于以指定的格式输出信息,语法格式为:

print(value1, value2, ..., sep=' ', end='\n')

其中,sep参数之前为需要输出的内容(可以有多个);sep参数用于指定数据之间的分隔符,如果不指定则默认为空格;end参数表示输出完所有数据之后的结束符,如果不指定则默认为换行符。

print(1, 2, 3, 4, 5)            # 默认情况,使用空格作为分隔符
print(1, 2, 3, 4, 5, sep=',')   # 指定使用逗号作为分隔符
print(3, 5, 7, end=' ')         # 输出完所有数据之后,以空格结束,不换行
print(9, 11, 13)
--------------------------------------------------
1 2 3 4 5
1,2,3,4,5
3 5 7 9 11 13

2.3.6  range()

range([start,] stop [,step])

其中,参数start默认为0,step默认为1,左开右闭区间[start,stop)

  • range(stop)
  • range(start,stop)
  • range(start,stop,step)
range1 = range(4)           # 只指定stop为4,start默认为0,step默认为1
range2 = range(5, 8)        # 指定start=5和stop=8,step默认为1
range3 = range(3, 20, 4)    # 指定start=3、stop=20和step=4
range4 = range(20, 0, -3)   # step也可以是负数
print(range1, range2, range3, range4)
print(range4[2])
print(list(range1), list(range2), list(range3), list(range4))
for i in range(10):
    print(i, end=' ')
------------------------------------------------------------------
range(0, 4) range(5, 8) range(3, 20, 4) range(20, 0, -3)
14
[0, 1, 2, 3] [5, 6, 7] [3, 7, 11, 15, 19] [20, 17, 14, 11, 8, 5, 2]
0 1 2 3 4 5 6 7 8 9 

2.3.7  zip() 

zip()用来把多个可迭代对象中对应位置上的元素分别组合到一起,返回一个可迭代的zip对象,其中每个元素都是包含原来的多个可迭代对象对应位置上元素的元组,最终结果中包含的元素个数取决于所有参数序列或可迭代对象中最短的那个。

zip对象中的每个元素只能使用一次,访问过的元素不可再次访问,并且只能从前往后逐个访问zip对象中的元素,不能使用下标直接访问指定位置上的元素。

data = zip('1234', [1, 2, 3, 4, 5, 6])
print(data)
# 在转换为列表时,使用了zip对象中的全部元素,zip对象中不再包含任何内容
print(list(data))
# 如果需要再次访问其中的元素,必须重新创建zip对象
data = zip('1234', [1, 2, 3, 4, 5, 6])
print(tuple(data))
data = zip('1234', [1, 2, 3, 4, 5, 6])
# zip对象是可迭代的,可以使用for循环逐个遍历和访问其中的元素
for item in data:
    print(item)
---------------------------------------------------------
<zip object at 0x000001B790734940>
[('1', 1), ('2', 2), ('3', 3), ('4', 4)]
(('1', 1), ('2', 2), ('3', 3), ('4', 4))
('1', 1)
('2', 2)
('3', 3)
('4', 4)

2.3.8  map()、reduce()、filter()

(1)map()

map(func,*iterables)

map()函数把一个可调用对象func 依次映射到序列的每个元素上,并返回一个可选代的 map对象,其中每个元素是原序列中元素经过可调用对象func处理后的结果,该函数不对原序列做任何修改。 该函数返回的map对象可以转换为列表、元组或集合,也可以直接使用for 循环遍历其中的元素, 但是map对象中的每个元素只能使用一次。

from operator import add

print(map(str, range(5)))
print(list(map(str, range(5))))
print(list(map(len, ['abc', '1234', 'test'])))
# 使用operator标准库中的add运算add运算相当于运算符+
# 如果map()函数的第一个参数func能够接收两个参数,则可以映射到两个序列上
for num in map(add, range(5), range(5,10)):
    print(num)
--------------------------------------------------
<map object at 0x000001B79034F400>
['0', '1', '2', '3', '4']
[3, 4, 4]
5
7
9
11
13

(2)reduce()

reduce(func,seq[,initial])

reduce()可以将一个接收2个参数的函数以迭代的方式从左到右依次作用到一个序列或可迭代对象的所有元素上,并且每一次计算的中间结果直接参与下一次计算,最终得到一个值。

from functools import reduce
from operator import add, mul, or_

seq = range(1, 10)
print(reduce(add, seq))       # 累加seq中的数字
print(reduce(mul, seq))       # 累乘seq中的数字
seq = [{1}, {2}, {3}, {4}]
print(reduce(or_, seq))       # 对seq中的集合连续进行并集运算
-------------------------------------------------------
45
362880
{1, 2, 3, 4}

(3)filter()

filter(func or None, iterable)

过滤。将一个函数func作用到一个序列上,返回一个filter对象,其中包含原序列中使得函数func返回值等价于True的那些元素。每个元素只能使用一次。

seq = ['abcd', '1234', '.,?!', '']
print(list(filter(str.isdigit, seq)))   # 只保留数字字符串
print(list(filter(str.isalpha, seq)))   # 只保留英文字母字符串
print(list(filter(str.isalnum, seq)))   # 只保留数字字符串和英文字符串
print(list(filter(None, seq)))          # 只保留等价于True的元素
------------------------------------------------------
['1234']
['abcd']
['abcd', '1234']
['abcd', '1234', '.,?!']

 来自书籍:《Python数据分析、挖掘与可视化》

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

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

相关文章

本地搭建属于自己的ChatGPT:基于PyTorch+ChatGLM-6b+Streamlit+QDrant+DuckDuckGo

本地部署chatglm及缓解时效性问题的思路&#xff1a; 模型使用chatglm-6b 4bit&#xff0c;推理使用hugging face&#xff0c;前端应用使用streamlit或者gradio。 微调对显存要求较高&#xff0c;还没试验。可以结合LoRA进行微调。 缓解时效性问题&#xff1a;通过本地数据库…

Mybatis高级映射及延迟加载

准备数据库表&#xff1a;一个班级对应多个学生。班级表&#xff1a;t_clazz&#xff1b;学生表&#xff1a;t_student 创建pojo&#xff1a;Student、Clazz // Student public class Student {private Integer sid;private String sname;//...... }// Clazz public class Cla…

Flutter PC桌面端 控制应用尺寸是否允许放大缩小

一、需求 桌面端中&#xff0c;登录、注册、找回密码页面不允许用户手动放大缩小&#xff0c;主页面允许 二、插件 window_manager 使用教程请参照这篇博客&#xff1a;Flutter桌面端开发——window_manager插件的使用 题外话&#xff1a; 之前使用的是bitsdojo_window插件…

[golang gin框架] 25.Gin 商城项目-配置清除缓存以及前台列表页面数据渲染公共数据

配置清除缓存 当进入前台首页时,会缓存对应的商品相关数据,这时,如果后台修改了商品的相关数据,缓存中的对应数据并没有随之发生改变,这时就需要需改对应的缓存数据,这里有两种方法: 方法一 在管理后台操作直接清除缓存中的所有数据,当再次访问前台首页时,就会先从数据库中获取…

记frp内网穿透配置

这两天由于想给客户看一下我们的系统&#xff0c;于是想到用内网穿透&#xff0c;但是怎么办呢&#xff0c;没有用过呀&#xff0c;于是各处找资料&#xff0c;但是搞完以后已经不记得参考了那些文档了&#xff0c;对不起各位大神&#xff0c;就只能写出过程和要被自己蠢死的错…

初识C++(二)

在初识c&#xff08;一&#xff09;当中我们已经向大家介绍了四个c和C语言不同的使用方法。接下来我们再来向大家介绍另外的一些新的c语言的使用方法。 &#x1f335;引用 简单一点来说引用就是给已存在的变量起一个别名。这个别名通常的作用和C语言当中的指针类似。我们可以通…

牛客网刷题总结

1.利用%符号获取特定位数的数字。 2.强制类型转换 &#xff08;将float转换为int &#xff09; 3.计算有关浮点型数据时&#xff0c;要注意你计算过程中所有的数据都是浮点型 4.0/3.0 ! 4/3 4.通过位操作符实现输出2的倍数&#xff08;对于位操作符不熟悉的小伙伴可以看看我…

基于Java+SpringBoot+vue实现图书借阅和销售商城一体化系统

基于JavaSpringBootvue实现图书借阅和销售商城一体化系统 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方…

电脑系统错误怎么办?您可以看看这5个方法!

案例&#xff1a;电脑出现系统错误该如何解决&#xff1f; 【这几天长时间使用我的电脑&#xff0c;导致它的系统出现了错误。有没有小伙伴知道如何解决电脑系统出错的问题&#xff1f;求一个能快速解决的方法。】 电脑系统出现错误是使用电脑时难免会遇到的问题之一&#xf…

【C++初阶】C++入门(二):引用内联函数auto关键字范围for循环(C++11)指针空值nullptr

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C初阶 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C初阶】…

MySQL数据库学习笔记之存储引擎

存储引擎 MySQL体系结构 连接层 最上层是一些客户端和连接服务&#xff0c;主要完成一些类似于连接处理、授权认证、以及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限。 服务层 第二层架构主要完成大多数的核心服务功能&#xff0c;如SQL接口&am…

【Linux网络】部署YUM仓库及NFS服务

部署YUM仓库及NSF服务 一、YUM仓库1.1、YUM仓库概述1.2准备安装来源1.3在软件仓库加载非官方RPM包组1.4yum与apt 二、配置yam源与制作索引表2.1配置FTP源2.2配置国内在线yum源2.3在线源与本地源同时使用2.4建立软件包索引关系表的三种方法 三、nfs共享存储服务3.1安装软件&…

OpenAI-ChatGPT最新官方接口《微调ChatGPT模型》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(四)(附源码)

微调ChatGPT模型 前言Introduction 导言What models can be fine-tuned? 哪些模型可以微调&#xff1f;Installation 安装Prepare training data 准备训练数据CLI data preparation tool CLI数据准备工具Create a fine-tuned model 创建微调模型Use a fine-tuned model 使用微…

Windows下版本控制器(SVN) - 1、开发中的实际问题+2、版本控制简介

文章目录 基础知识-Windows下版本控制器(SVN)1、开发中的实际问题2、版本控制简介2.1 版本控制[Revision control]2.2 Subversion2.3 Subversion 的优良特性2.4 SVN 的工作原理&#xff1a;2.5 SVN 基本操作 本人其他相关文章链接 基础知识-Windows下版本控制器(SVN) 1、开发中…

docker容器:docker镜像的三种创建方法及dockerfile案例

目录 一、基于现有镜像创建 1、创建启动镜像 2、生成新镜像 二、基于本地模板创建 1、OPENVZ 下载模板 2、导入容器生成镜像 三、基于dockerfile创建 1、dockerfile结构及分层 2、联合文件系统 3、docker镜像加载原理 4、dockerfile操作常用的指令 (1)FROM指令 (…

倾斜摄影三维模型格式转换OSGB 到3Dtitles 实现的常用技术方法

倾斜摄影三维模型格式转换OSGB 到3Dtitles 实现的常用技术方法 倾斜摄影三维模型是一种用于建立真实世界三维场景的技术&#xff0c;常用于城市规划、土地管理、文化遗产保护等领域。在倾斜摄影模型中&#xff0c;OSGB格式和3Dtiles格式都是常见的数据格式。其中&#xff0c;OS…

ChatGPT 速通手册——连续提问和重新生成的作用

连续提问和重新生成的作用 和 ChatGPT 聊天&#xff0c;也是有套路的。我们把给 ChatGPT 输入的问题文本&#xff0c;叫 Prompt&#xff0c;提示词。实际上&#xff0c;传统搜索引擎也有比较相类似的功能。 在 Prompt Learning 提示学习之后&#xff0c;又总结出一种更好的聊…

如何高效提高倾斜摄影三维模型顶层合并的技术方法分析

如何高效提高倾斜摄影三维模型顶层合并的技术方法分析 1、倾斜摄影三维模型顶层合并 1.1倾斜摄影三维模型是一种基于倾斜摄影技术&#xff0c;通过多个角度拍摄同一区域的影像&#xff0c;利用计算机图像处理和三维重建技术生成的三维地理信息数据。由于一个大区域可能需要多块…

13-nginx

一 初始Nginx 1 Nginx概述 Nginx是一款轻量级的Web服务器、反向代理服务器&#xff0c;由于它的内存占用少&#xff0c;启动极快&#xff0c;高并发能力强&#xff0c;在互联网项目中广泛应用。Nginx 专为性能优化而开发&#xff0c;使用异步非阻塞事件驱动模型。 常见服务器 …

57 openEuler搭建Mariadb数据库服务器-管理数据库用户

文章目录 57 openEuler搭建Mariadb数据库服务器-管理数据库用户57.1 创建用户57.2 查看用户57.3 修改用户57.3.1 修改用户名57.3.2 修改用户示例57.3.3 修改用户密码57.3.4 修改用户密码示例 57.4 删除用户57.5 用户授权57.6 删除用户权限 57 openEuler搭建Mariadb数据库服务器…