Python基础 - 6.数据类型

random模块函数(Python) random模块的函数使用:random()、randrange()、randint()、choice()、shuffle() 阅读详情

数值

数值分为:整数(int)、浮点数(float)、复数(complex)、布尔值(bool)

数值类型之间的转换:

  • int(x):把其他类型转换成整数

  • float(x):把其他类型转换成浮点数

  • bool(x):把其他类型转换成布尔型

  • complex(x):把x转换成复数。实数为x,虚数为0

  • complex(x,y):把x,y转换成复数。实数为x,虚数为y

常用的数学函数:(需要导入数学类库。import math)

  • abs(x):绝对值

  • ceil(x):向上取整

  • floor(x):向下取整

  • round(x):四舍五入

  • exp(x):返回e的x次方

  • log(x):返回底数为e的对数

  • log10(x):返回底数为10的对数

  • max(x1,x2,….):最大值

  • min(x1,x2,…):最小值

  • pow(x,y):幂。相当于x**y

  • sqrt(x):开方

数值之间的比较

>>= <<= == !=(运算符)

随机数。需要导入import random

  • random.choice(seq):从序列中随机选择一个元素

  • random.random():随机生成一个0~1之间的实数

  • random.shuffle():随机打乱序列中的元素。俗称洗牌

  • random.uniform(x,y):随机生成x~y之间的实数

  • random.randint(x,y):随机生成x~y之间的int类型

  • random.sample(sequence,length):随机在序列中截取一段长度

import random
value1 = random.random() # 0~1
print(value1) 
list = [1,2,3,4,5,6,7,8,9]
random.shuffle(list) # 洗牌
print(list) # [5, 1, 9, 7, 4, 8, 2, 6, 3]

三角函数

  • sin(x):正弦

  • cos(x):余弦

  • tan(x):正切

  • atan(x):反正切

  • asin(x):反正弦

  • acos(x):反余弦

  • degrees(x):弧度转角度

  • radians(x):角度转弧度

注意sin、cos、tan的参数是弧度的单位。

思考:扔骰子,随机生成123456中的一个数。

import random
random.random() # 0.00000001~0.9999999
random.random() * 6# 0.00000001~5.9999999
result = math.ceil(random.random() * 6) # 1~6
print(result)
result = random.randint(1,6) # 1~6
print(result)

思考:随机生成0 20 40 60 80 100 …… 980之间的一个数

import random
random.random() # 0.00000001~0.9999999
random.random() * 50# 0.0000001~49.99999999
math.floor(random.random() * 50) # 0 1 2 3 4 …… 49
result = math.floor(random.random() * 50) * 20# 0 20 40 60 80 …… 980
print(result)

数学常量

  • pi:圆周率

  • e:自然对数

字符串

Python中,可以通过双引号或单引号表示字符串。

Python中优先考虑使用单引号

字符串常用的运算符

  • +:字符串连接

  • *:字符串重复

  • []:通过索引访问字符串中的字符

str = 'helloworld'
print(str) # helloworld
print(str[4]) # o
print(str[0]) # h
print(str[-1]) # d 倒数第一个
print(str[1:3]) # el 从第1个开始 到第3个结束 包含第1个 不包含第3个
print(str[1:]) # elloworld 从第1个开始到最后 包含第1个
print(str[:3]) # hel 从头开始到第3个结束 不包含第3个

  • in:判断字符串中是否有指定的字符

  • not in:判断字符串中是否没有指定的字符

  • %:格式化字符串

  • 转义字符\

字符串中使用特殊字符

  • \\:输出反斜杠

  • \’:输出单引号

  • \":刷出双引号

  • \n:换行

  • \r:回车

  • \t:制表符

  • \b:退格

格式化字符串。从C中继承过来的

  • %c:输出ASCII码

  • %f:输出浮点数

  • %d:输出整数

  • %s:输出字符串

  • %u:无符号整数

  • %o:八进制

  • %x:十六进制

辅助指令

  • m.nf%:输出长度为m,保留n位有效小数

  • +号:在正数前面加上+号

  • -号:左对齐

  • 0:在前面补0

  • %:%%输出一个%


pi = 3.1415926535847
print("--%f--" % pi) # --3.141593--
print("--%.2f--" % pi) # --3.14--  保留2位小数
print("--%6.2f--" % pi) # --  3.14-- 输出长度为6位
print("--%-6.2f--" % pi) # --3.14  --  左对齐
print("--%+6.2f--" % pi) # --3.14  --  前面显示+号
print("--%06.2f--" % pi) # --003.14-- 前面补0
print("--%2f%%--" % pi) # --3.141593%--
name1 = "zhangsan"
age1 = 23
height1 = 178.2
#print("name:", name1, ",age:", age1, ",height:", height1)
print("name: %10s, age: %2d, height: %6.1f" % (name1, age1, height1))
name2 = "lisi"
age2 = 9
height2 = 93
print("name: %10s, age: %2d, height: %6.1f" % (name2, age2, height2))

字符串的常用方法/函数

  • startswith(prefix):字符串是否以prefix开头

  • endswith(suffix):字符串是否以suffix结尾

  • find(str):在字符串中查找子串

  • len(str):求字符串的长度

  • lower(str):字符串转成全部小写

  • upper(str):字符串转成全部大写

列表

  • 列表使用中括号把多个数值包括起来

  • 列表的类型为list

list = ['baidu', 'alibaba', 'tencent']
print(type(list)) # <class 'list'>

列表中每个元素的类型可以不一样

list = [23, 3.14, False, *'hello'*, 3+2j, [*'zhangsan'*,*'lisi'*,*'wangwu'*]] 
print(list)

列表的长度可以通过len()函数获取

list = [*'baidu'*, *'alibaba'*, *'tencent'*] |
print(len(list))  # 4

访问列表中的元素,下标从0开始。注意:下标可以为负数,表示倒数第几个

list = [1,2,3,5,8,13,21,34]
print(list[3]) # 5
print(list[0]) # 1
print(list[-1]) # 34
print(list[-3]) # 13
print(list[1:3]) # [2,3] 从第1个开始 到第3个结束 包含第1个 不包含第3个
print(list[1:-1]) # [2, 3, 5, 8, 13, 21] 从第1个开始 到倒数第1个结束 包含第1个 不包含倒数第1个
print(list[1:]) # [2, 3, 5, 8, 13, 21, 34] 从第1个开始到最后 包含第1个
print(list[:3]) # [1, 2, 3] 从头开始到第3个结束 不包含第3个
print(list[:]) # [1, 2, 3, 5, 8, 13, 21, 34] 从头开始到最后
print(list[1:6:2]) # [2, 5, 13] 从第1个开始到第6个结束 包含第1个 不包含第6个 步长为2
print(list[::2]) # [1, 3, 8, 21] 从头开始到最后 步长为2
print(list[-1:-5:-1]) # [34, 21, 13, 8] 从倒数第1个开始到倒数第5个结束 包含倒数第1个 不包含倒数第5个 步长为-1
print(list[7:0:-1]) # [34, 21, 13, 8, 5, 3, 2]
# 步长为-1的情况下 怎样才能出现1
print(list[::-1]) # [34, 21, 13, 8, 5, 3, 2, 1] 从最后到最前

PS. 步长不能为0

1.append()
往列表中增加元素的方法

list = [1,2,3,5,8,13,21,34]
print(list) # [1, 2, 3, 5, 8, 13, 21, 34]
list.append(55)
print(list) # [1, 2, 3, 5, 8, 13, 21, 34, 55]

如果要一次性添加多个元素

list = [1,2,3,5,8,13,21,34]
print(list) # [1, 2, 3, 5, 8, 13, 21, 34]
list.append(55,89)

会报错
在这里插入图片描述

原因是append()方法只能传递一个参数。

尝试改成

list.append([55,89]) # 合成一个元素
print(list) # [1, 2, 3, 5, 8, 13, 21, 34, [55, 89]]
print(len(list)) # 9

会发现程序会把55和89合并到一个新列表中,作为一个元素添加到原来的列表中

不符合我们的要求。

2.extends()
extends()可以满足我们上面的要求,一次添加多个元素

list = [1,2,3,5,8,13,21,34]
print(list) # [1, 2, 3, 5, 8, 13, 21, 34]
list.extend([55,89])
print(list) # [1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
print(len(list)) # 10

3.insert()
Insert()可以在列表的前面或中间插入

insert()需要2个参数。

  • 参数1 索引。在哪里插入

  • 参数2 值。插入的元素

list = [1,2,3,5,8,13,21,34]
print(list) # [1, 2, 3, 5, 8, 13, 21, 34]
list.insert(0, 'new')
print(list) # ['new', 1, 2, 3, 5, 8, 13, 21, 34]
list = [1,2,3,5,8,13,21,34]
print(list) # [1, 2, 3, 5, 8, 13, 21, 34]
list.insert(2, 'new')
print(list) # [1, 2, 'new', 3, 5, 8, 13, 21, 34]
list = [1,2,3,5,8,13,21,34]
print(list) # [1, 2, 3, 5, 8, 13, 21, 34]
list.insert(8,'new')
print(list) # [1, 2, 3, 5, 8, 13, 21, 34, 'new']

从列表中删除元素的方法:
1 remove() 根据值来删除指定的元素

list = [1,2,3,5,8,13,21,34]
print(list) # [1, 2, 3, 5, 8, 13, 21, 34]
list.remove(5) 
print(list) # [1, 2, 3, 8, 13, 21, 34]

2 pop() 根据索引来删除元素(如果不指定参数,则删除列表的最后一个元素)
Pop()函数的返回值是被删除的元素

list = [1,2,3,5,8,13,21,34]
print(list) # [1, 2, 3, 5, 8, 13, 21, 34]
result = list.pop(5)
print(list) # [1, 2, 3, 5, 8, 21, 34]
print(result) # 13
result = list.pop()
print(list) # [1, 2, 3, 5, 8, 21]
print(result) # 34

3 del
根据索引来删除元素。del是关键字,没有返回值

list = [1,2,3,5,8,13,21,34]
print(list) # [1, 2, 3, 5, 8, 13, 21, 34]
del list[5]
print(list) # [1, 2, 3, 5, 8, 21, 34]

4 指定索引的值为空

list = [1,2,3,5,8,13,21,34]
print(list) # [1, 2, 3, 5, 8, 13, 21, 34]
list[5:6] = []
print(list) # [1, 2, 3, 5, 8, 21, 34]

思考:

创建一个列表,写入100个0

list = [0,0,0,0,0,0,0,0,0,0,0,……]

创建一个列表,写入数值1~100

list = [1,2,3,4,5,6,7,8,9,10,11,12,13,….]

# 创建一个列表,写入100个0
list = []
# 屌丝的代码
for i in range(100):
    list.append(0)
print(list)
print(len(list))
# 大神的代码(慎用)
list = [0for i in range(100)]
print(list)
print(len(list))
# 创建一个列表,写入数值1~100
list = []
# 屌丝的代码
for i in range(1,101):
    list.append(i)
print(list)
# 大神的代码(慎用)
list = [i for i in range(1,101)]
print(list)

可以把一个列表嵌套在另一个列表中

list = [13, 2.5, *'hi'*, [*'baidu'*, *'alibaba'*, *'tencent'*]] 
print(list[3][0]) #  baidu 

如果一个列表中的所有元素都是其他列表,称为二维列表

初始化二维列表

# 屌丝的代码
list = []
for j in range(3):
    inner_list = []
for i in range(5):
        inner_list.append(0)
    list.append(inner_list)

print(list) # [[0, 0, 0, 0, 0], 
#  [0, 0, 0, 0, 0], 
#  [0, 0, 0, 0, 0]]

# 大神的代码(慎用)
list = [[0for i in range(5)] for j in range(3)]
print(list) # [[0, 0, 0, 0, 0], 
#  [0, 0, 0, 0, 0], 
#  [0, 0, 0, 0, 0]]


排序
前提是列表中的数据类型是一样的。

如果列表中的数值顺序是乱的,可以通过sort()进行排序

list = [13, 3, 21, 8, 5, 1, 34, 2]
print(list) # [13, 3, 21, 8, 5, 1, 34, 2]
# 正向排序(从小到大)
list.sort()
print(list) # [1, 2, 3, 5, 8, 13, 21, 34]
# 反向排序(从大到小)
list.sort(reverse = True)
print(list) # [34, 21, 13, 8, 5, 3, 2, 1]

反向操作。
把列表的序列颠倒

使用reverse()方法

list = [13, 3, 21, 8, 5, 1, 34, 2]
list.reverse()
print(list) # [2, 34, 1, 5, 8, 21, 3, 13]

当然也可以使用这个方法

list = [13, 3, 21, 8, 5, 1, 34, 2]
list = list[::-1]
print(list) # [2, 34, 1, 5, 8, 21, 3, 13]

列表相关的操作符:

  • +:列表拼接

  • *:列表复制

  • in:判断元素是否在列表中

  • not in:判断元素是否不在列表中

clist1 = [1,2,3]
list2 = [5,6,7]
list3 = list1 + list2
print(list3) # [1, 2, 3, 5, 6, 7]
list1 = ['a','b','c','d']
list2 = list1 * 4
print(list2) # ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
list = [1,2,3,4,5,6,7]
print(3in list) # True
print(3notin list) # False
print('3'in list) # False
print('3'notin list) # True

清空列表
list.empty()

思考下面的问题:

list1 = [1,2,3]
list2 = list1
print(list1) # [1, 2, 3]
print(list2) # [1, 2, 3]
list1[2] = 4
print(list1) # [1, 2, 4]
print(list2) # [1, 2, 4]

Why?

Python 序列(字符串、列表、元组、字典、集合)
可以选择如下的方法:

import copy
list1 = [1,2,3]
# 方法一:list.copy()
list2 = list1.copy()
# 方法二:copy.copy()
#list2 = copy.copy(list1)
# 方法三:切片
#list2 = list1[:]
print(list1) # [1, 2, 3]
print(list2) # [1, 2, 3]
print(id(list1))
print(id(list2)) 
list1[2] = 4
print(list1) # [1, 2, 4]
print(list2) # [1, 2, 3]

原理如下,注意python中赋值语句左边的变量都认为是在栈上的
在这里插入图片描述

思考下面的问题:

list = []
list1 = [1,2,3]
list2 = [4,5,6]
list3 = [7,8,9]
list.extend([list1,list2,list3])
print(list)

list_tmp = copy.copy(list)
print(list_tmp)
print(id(list_tmp))

list1[2] = 4
print(list) # [[1, 2, 4], [4, 5, 6], [7, 8, 9]]
print(list_tmp) # [[1, 2, 4], [4, 5, 6], [7, 8, 9]]

copy只是把list复制了一份,如果复制的list中嵌套了其他list,其他list的地址是不会改变的,这个俗称浅拷贝。如果想要把其他list也改变,就需要copy.deepcopy(),这个俗称深拷贝。

list = []
list1 = [1,2,3]
list2 = [4,5,6]
list3 = [7,8,9]
list.extend([list1,list2,list3])
print(list)

list_tmp = copy.deepcopy(list)
print(list_tmp)
print(id(list_tmp))

list1[2] = 4
print(list) # [[1, 2, 4], [4, 5, 6], [7, 8, 9]]
print(list_tmp) # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

原理如下:
在这里插入图片描述

元组

Python中使用小括号表示元组,元组是tuple

tuple = (1,2,3,5,8,13,21)
print(type(tuple)) # <class 'tuple'>

可以通过len()函数求tuple的长度

print(len(tuple)) # 7

元组中各个元素的类型可以不同

tuple = (14, 3.14, *'str'*, True, [1,2,3], (*'ha'*, *'he'*, *'hi'*)) 
print(type(tuple)) # <class 'tuple'>

如果元组的长度为1,需要在后面加上逗号,以便与整数区分

tuple = (3,5,8)
print(type(tuple)) # <class 'tuple'>
tuple = (3,5)
print(type(tuple)) # <class 'tuple'>
tuple = (3,)
print(type(tuple)) # <class 'tuple'>
tuple = (3)
print(type(tuple)) 

元组的小括号可以省略(虽然不建议)

tuple = 1,2,3
print(type(tuple)) # <class 'tuple'>

PS. python中一个函数可以返回多个值,其实返回的就是个元组(没有小括号)

def fun():
    return 3,5

result1,result2 = fun()
print(type(result1)) # <class 'int'>
print(type(result2)) # <class 'int'>
result = fun()
print(type(result)) # <class 'tuple'>

元组访问元素的方式基本上和列表时一样的

tuple = (1,2,3,5,8,13,21)
print(tuple[-3]) # 8
print(tuple[3:-1]) # (5, 8, 13)
print(tuple[::2]) # (1, 3, 8, 21)

元组是不能改变的,因此无法进行增加、删除、修改的功能

tuple = (1,2,3,5,8,13,21)
tuple.append(34)

在这里插入图片描述

tuple = (1,2,3,5,8,13,21)
tuple.remove(5)

在这里插入图片描述

tuple = (1,2,3,5,8,13,21)
tuple[2] = 8

在这里插入图片描述

元组操作符:

  • +:元组拼接

  • *:元组复制

  • in:判断元素是否在元组中

  • not in:判断元素是否不在元组中

tuple1 = (1,2,3)
tuple2 = ('a','b','c')
tuple3 = tuple1 + tuple2
print(tuple3) # (1, 2, 3, 'a', 'b', 'c')

tuple1 = (1,2,3) * 3
print(tuple1) # (1, 2, 3, 1, 2, 3, 1, 2, 3)

tuple1 = (1,2,3)
print(2in tuple1) # True
print('2'in tuple1) # False
print(2notin tuple1) # False
print('2'notin tuple1) # True

元组与列表相互转换

# 元组转列表
tuple1 = (1,2,3)
list1 = list(tuple1)
print(list1) # [1, 2, 3]
# 列表转元组
list2 = [4,5,6]
tuple2 = tuple(list2)
print(tuple2) # (4, 5, 6)

集合

集合的特点:无序,不重复

set1 = {14, 3.14, True, 'str'}
print(type(set1)) # <class 'set'>

可以增删;不能改查

集合不能通过下标访问元素

set1 = {14, 3.14, True, 'str'}
print(set1[1])

在这里插入图片描述

操作符:

  • in:判断元素是否在集合中

  • not in:判断元素是否不在集合中

添加元素
使用add()方法添加元素

set1 = {1,2,3}
set1.add(4)
print(set1) # {1, 2, 3, 4}

使用update()方法添加多个元素

set1 = {1,2,3}
set1.update({4,5})
print(set1) # {1, 2, 3, 4, 5}

使用remove()方法移除元素

set1 = {1,2,3}
set1.remove(2) 
print(set1) # {1, 3}

如果使用remove()移除的元素不存在,则报错

set1 = {1,2,3}
set1.remove(4)

在这里插入图片描述

此时,可以考虑使用discard()函数去删除元素。即使要删除的元素不存在,也不会报错

set1 = {1,2,3}
set1.discard(2) # 能够删除元素 
set1.discard(4) # 不能删除元素 但不会报错
print(set1) # {1, 3}

其他序列转集合,通过set()调用即可

list1 = [1,2,3,4,5]
set1 = set(list1)
print(set1) # {1, 2, 3, 4, 5}

tuple1 = ('a','b','c','d')
set1 = set(tuple1)
print(set1) # {'c', 'b', 'd', 'a'}

pop()随机删除一个元素

clear()清空序列

集合之间的运算:

  • set1-set2:在set1中去掉set2中有的元素

  • set1&set2:交集

  • set1|set2:并集

  • set1^set2:异或集

字典

PS. 如果是空的大括号算是字典(不算集合)

dict1 = {}
print(type(dict1)) # <class 'dict'>

键值对。通过键查找对应的值。格式:

dict = {key1: value1, key2: value2, …. keyn: valuen} 

比如:

dict1 = {*"name"*:*"yangbing"*, *"age"*:80, *"height"*:152.3, *"married"*:True} 
print(dict1)

字典的key可以是字符串(常用)、整数、元组
通过下标访问字典的元素,下标的key为字典的key

dict1 = {*"name"*:*"yangbing"*, *"age"*:80, *"height"*:152.3, *"married"*:True} 
print(dict1[*'name'*]) \# *yangbing*

如果key不存在,报错

dict1 = {*"name"*:*"yangbing"*, *"age"*:80, *"height"*:152.3, *"married"*:True} 
print(dict1[*'weight'*]) \# 报错

在这里插入图片描述

get()根据键获取值

dict1 = {*"name"*:*"yangbing"*, *"age"*:80, *"height"*:152.3, *"married"*:True} 
age = dict1.get(*'age'*)
print(age)

通过下标(字典的key)修改字典中的元素

dict1 = {"name":"yangbing", "age":80, "height":152.3, "married":True}
dict1['height'] = 155.5
print(dict1) # {…… 'height': 155.5 ……}

如果修改的使用key不存在,就会增加对应的元素

dict1 = {"name":"yangbing", "age":80, "height":152.3, "married":True}
dict1['weight'] = 255.5
print(dict1) # {…………, 'weight': 255.5}

如果要删除字典中的元素,通过pop(),传递key作为参数

dict1 = {"name":"yangbing", "age":80, "height":152.3, "married":True}
dict1.pop('married')
print(dict1) # …… 没有married了

del也可以

dict1 = {"name":"yangbing", "age":80, "height":152.3, "married":True}
del dict1['married']
print(dict1) # …… 没有married了

通过in关键字,判断字典中是否有对应的key。

dict1 = {"name":"yangbing", "age":80, "height":152.3, "married":True}
print('name'in dict1) # True
print('name'notin dict1) # False
print('weight'in dict1) # False
print('weight'notin dict1) # True

遍历字典。

  • 方法一:通过字典的items(),返回两个值:key和value
dict1 = {"name":"yangbing", "age":80, "height":152.3, "married":True}
for key, value in dict1.items():
print(key, value)

  • 方法二:keys()返回所有的键, 先获取所有的键,再根据键获取对应的值
dict1 = {"name":"yangbing", "age":80, "height":152.3, "married":True}
keys = dict1.keys()
for key in keys:
    value = dict1.get(key)
print(key, value)

clear()清除字典中所有的元素。略
copy()拷贝一份。原理与list中的copy()类同
字典可以嵌套

dict1 = {
'湖南': {
'长沙':{
'岳麓','雨花','芙蓉','天心'
        }, 
'郴州':'xxx'
    },
'广东': {
'广州':{
'白云','越秀','天河'
        },
'珠海':{},
'深圳':{}
    }
}
print(dict1)

这个跟json字符串差不多

习题

1 给出三维坐标上的两个点p1、p2。其中p1和p2为列表类型,长度为3,比如:

p1 = [3,5,2] p2 = [-1,0, -3]
要求计算它们之间的曼哈顿距离(L1距离)、欧氏距离(L2距离)

2 从终端输入多个学生的个人信息,并保存到一个列表中,列表中每个元素是一个字典。

list1 = [{‘name’:’zhangsan’, ‘age’:23, ‘height’:178.2}, {‘name’:’lisi’,
‘age’:42, ….}, {….}]
比如:

输入姓名(字符串):zhangsan
输入年龄(整数):23
输入身高(浮点数):178.2
继续(1继续 0退出)?1
输入姓名(字符串):lisi
输入年龄(整数):42
输入身高(浮点数):162.7
继续(1继续 0退出)?1
输入姓名(字符串):wangwu
输入年龄(整数):55
输入身高(浮点数):155.5
继续(1继续 0退出)?0

然后,打印出整个列表

本章项目源码

URL:https://gitee.com/yuanbaonet/master_python/tree/baoai_python_v6/

对应版本:baoai_python_v6

对应文件:sample/python/p6.py

6.python基础之基础数据类型--列表list 1.列表 他是以 [ ] 括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型列表相比于字符串,不仅可以储存不同的数据类型而且列表是有序的,有索引值,可切片,方便取值。 定义列表: (里面可以存储任意类型) li=[1,2,3] li1=list([1,2,3,4]) 2.增加数据: 2.1 insert (索引值,增加的数据)按照索引值去增加 1i=[1, 2, "nihao", {"name",”张三”},(1,2,"a","b")] li. insert(0,"第一一个数据”) 输出: 阅读详情

相关推荐

双臂复合机器人眼在手外标定实战:从原理到D435标定流程详解

本文详细解析了双臂复合机器人中眼在手外标定的核心原理与实战流程。通过阐述坐标系转换与AX=XB方程,重点介绍了使用Intel RealSense D435相机进行标定的完整步骤,包括环境搭建、数据采集、计算与验证,并提供了关键的避坑指南,帮助工程师实现相机与机械臂基座间的精确坐标对齐。

weixin_29100927的博客 448

math库和random库

MATH库 ceil(x)  对浮点数向上取整  floor(x)  对浮点数向下取整  pow(x,y) 计算x的y次方  log(x) 以e为基的对数  log10(x) 以10为基的对数  sqrt(x) 平方根 exp(x) e的x次幂 degrees(x) 将弧度值转换成角度  radians(x) 将角度值转换成弧度  sin(x) 正弦函数  c

m0_38066258的博客 650

SAP 财务快速记账之--科目分配模型(Account assignment model )

SAP FICO 运维解决方案

lijinbao171022的博客 1767

沐枫凌-python 新手教学(3)--数学运算

上一节我讲了关于python中变量的使用,这一节我来讲一讲关于python数学运算的操作首先老套路,打开IDLE pythonpython的数学运算中包含四则运算和数学的常用计算以下是常用的计算符号+加号 -减号 *乘号 /除号 **乘方号 %求余数号 //求整数商号先在我们可以试一试在&gt;&gt;&gt;后面依次输入下面的代码10+12 #加法 12-10 #减法 12*12 #乘法 12/...

weixin_42582160的博客 430

用ADS复现一篇MTT顶刊的GAN功率放大器:从理论推导到版图仿真的完整避坑指南

本文详细解析了如何利用ADS软件复现MTT顶刊中的E/F3类GaN功率放大器设计,从理论推导到版图仿真的全流程。通过核心设计理念解析、ADS环境配置、输出匹配网络优化等关键步骤,提供了一套完整的工程实践指南,帮助工程师跨越学术理论与实际应用的鸿沟,实现高效率射频功率放大器的设计。

weixin_30654583的博客 315

Hive SQL零基础到精通:100道练习题+答案,SQL能力快速提升

我将以我15年架构与开发的经验,带领大家从零基础到精通,通过精心设计的100道练习题及其详解,系统地、深度地掌握Hive SQL的核心精髓。它可以将结构化的数据文件映射为一张数据库表,并提供了一套类SQL的查询语言——HiveQL(简称HQL),允许熟悉SQL的用户直接查询存储在HDFS上的海量数据。它将Job描绘为DAG(有向无环图),允许更灵活的任务编排,避免不必要的中间落盘,可以复用容器,从而大幅降低延迟。希望你以此文为起点,在广阔的大数据世界里继续遨游,成为一名真正的数据高手!

架构师的AI之路,分享AI应用开发架构的学习与实践。 798

python笔记运算函数

\求方 pow(x,y) round 求四舍五入 round (x) import 导入一个库 #库:封装一些功能 math 数学相关的库 math.ceil 向上取整 math.floor 向下取整 math.modf 返回整数和小数部分 math.sqrt 开方 import random 封装随机库 print(random.choice([1,2,3,4,5,6,7,8,9])) 取随机数 print(random.choice(range(6))) 等价于 print (rand

dirhack的博客 227

Vanna 2.0:基于LLM的智能文本到SQL框架,实现企业级数据查询与权限控制

文本到SQL技术是自然语言处理与数据库交互的重要桥梁,它允许用户使用日常语言直接查询数据库,无需编写复杂的SQL语句。其核心原理是利用大语言模型理解用户意图,并结合检索增强生成技术,将自然语言问题转换为准确的结构化查询语言。这项技术的价值在于大幅降低了数据访问门槛,提升了业务人员的数据自助分析能力,并能在金融分析、销售报表、运营监控等场景中实现实时数据洞察。Vanna 2.0作为一个开源框架,通过引入用户感知的智能体架构和行级安全策略,解决了企业级应用中的多租户数据隔离与权限控制等关键问题,使得自然语言数据

weixin_42629522的博客 544

Python:常用内置模块介绍 random 和 math

1. random模块 下面是random中的一些常用函数,记好笔记哦! 1.1 randint 函数 randint是用来在指定数字范围内随机选择一个整数,如代码: import random print(random.randint(10, 15)) 将会输出一个10到15之间的整数。 1.2 choice 函数 choice是用来在指定列表内随机选择一个列表项,如代码: import random number_list = [9, 10 , 101, 1223, 520] print(rando

有意栽花花不发,无心插柳柳成荫。 767

【C/C++ 性能优化】提高C++程序的缓存命中率以优化性能

在探讨计算机性能优化的旅程中,我们常常被引导去关注算法的复杂度、代码的优化,或是更高效的数据结构。然而,有一个经常被忽视的角色在幕后默默地影响着程序的运行效率——那就是缓存(Cache)。正如哲学家亨利·戴维·梭罗在《瓦尔登湖》中所说:“细节是造成美丽的源泉”,在软件开发的世界里,对缓存的理解和优化,就是那些决定程序性能优雅与否的细节。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 3735

观测器选择与工程实践建议

摘要:永磁同步电机(PMSM)无传感器控制中,观测器选型需综合考虑应用场景、性能需求与成本。消费级(家电、工具)推荐滑模观测器(SMO),成本低、鲁棒性强;工业级(伺服、泵阀)适用扩展卡尔曼滤波器(EKF),精度高但计算复杂;车规级(EPS、主驱动)需混合观测器(SMO+EKF),兼顾全速域性能与可靠性。低速时需高频注入法,IPMSM更适用。SMO易实现但存在抖振,EKF调试复杂。未来趋势是混合架构与AI增强,提升适应性与性能。选型需权衡速度范围、电机类型、处理器能力及成本。

汽车软件开发 145

python基础—python6种基本数据类型及数据类型之间转换

python6种基本数据类型(str,int,float,list,dict,set,tuple...)及数据类型相互之间转换

sodaloveer的博客 4639

小梅哥Xilinx ZYNQ学习笔记2——38译码器

译码器(Decoder)是一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象(如逻辑电平等),功能与编码器相反。译码器一般分为通用译码器和数字显示译码器两大类。本设计的是通用译码器。三八译码器,即是 3 种输入状态翻译成 8 种输出状态。1.case开始开始,endcase结束;2.数字声明时,合法的基数格式有 4 中,包括:十进制('d 或 'D),十六进制('h 或 'H),二进制('b 或 'B),八进制('o 或 'O)。数值可指明位宽,也可不指明位宽。

m0_51430584的博客 1636

python基础之 6大基础数据类型

python基础之 6大基础数据类型

weixin_42362399的博客 244

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python3:基础语法、及6种基本数据类型、找到字典的下标 index、获取list中指定元素的位置索引

python3:基础语法、及6种基本数据类型

учёба 2499

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

语言基础篇6——Python有哪些数据类型

基本引用类型: 空引用: None 不可变 数字: bool 不可变 int 不可变 flout 不可变 complex 不可变 序列: str字符串 有序 不可变 可重复 tupel元组 有序 不可变 可重复 list列表 有序 可变 可重复 散列: dict字典 无序 可变 不可重复(指key) {1:1, 2:2, 3: 3} set集合 无序 可变 不可重复

予早随笔 825

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

6、python基础语法——数据类型之字符串

字符串 整数和浮点数 列表 字典 布尔类型 集合,元组,空值 对网络工程师来说,常用的数据类型有字符串(String)、整数(Integer)、列表(List)、字典(Dictionary)、浮点数(Float)、布尔(Boolean)。 1、字符串 字符串即文本,可以用单引号’’、双引号""和三引号’’’ ‘’'表示。 1.1、单引号和双引号 单引号和双引号不可以混用。 >>> a='huawei' >>> b="cisco" >>> c='h3c"

openlab网工之路 339

(6)python基础数据类型

python的六大标准数据类型 (一)Number 数字类型(int float bool complex) (二)String 字符串类型 (三)List 列表类型 (四)Tuple 元组类型 (五)Set 集合类型 (六)Dict 字典类型 ​ (1)Number 数字类型分类 int : 整数类型 (正整数[各种进制] 负整数 0) float: 浮点数类...

weixin_30593443的博客 158

python表示数字6_(6)python基础数据类型

python的六大标准数据类型(一)Number 数字类型(int float bool complex)(二)String 字符串类型(三)List 列表类型(四)Tuple 元组类型(五)Set 集合类型(六)Dict 字典类型​(1)Number数字类型分类int : 整数类型 (正整数[各种进制] 负整数 0)float: 浮点数类型 ( (1).普通小数例3.14 (2)...

weixin_39952800的博客 314

Python6种基础数据类型、数字类型

2018-10-23 (6种基础数据类型、数字类型) 标签:Python 百度 Pychs http://www.jetbrains.com/pycharm/download/#section=windows 下载编译器并安装 Python基础数据类型(六种) #Number(数字) #String(字符串) #List(列表) #Tuple(元组) #Sets(集合) #Dict(字典) 一、...

学海无涯 695

Python基础(pytho3.6安装,注释,输入输出,变量,数据类型)

1.python安装 ######python的源码编译安装###### #安装平台 -Linux -官网下在源码安装包(python3.6) -解压安装包 -安装编译过程中需要的依赖包:gcc,zlib,zlib-devel,openssl-devel,readline,readline-devel -进入解压的安装包进行编译 cd /opt/Python3-*/ ./configure --p...

weixin_43407305的博客 310

【6.0】Python基础之基本数据类型

【一】基本数据类型引入 【1】学习变量的目的 学习变量有助于我们在程序中存储和操作数据,提高代码的灵活性和可维护性。 通过使用变量,我们可以方便地引用和修改数据,使得程序能够动态地响应不同的输入和条件。 【2】学习基本数据类型的目的 学习基本数据类型有助于我们理解不同类型的数据在计算机中的表示和操作方式。 不同的数据类型适用于不同的场景,了解它们的特性有助于我们编写更加高效和健壮的代码。 ...

Chimengmeng的博客 98

python基础篇丨6种基本数据类型之——Number(数字)

python基础篇丨6种基本数据类型之——Number(数字)

Python单行客的博客 2417

Python基础 6》数据类型_列表(List)

本文介绍了Python中列表的基本概念和操作方法。

阿轩的博客 1354

神奇的python系列6:python基础数据类型补充

第一步 二次编码 ascii 不支持中文gbk 支持中文 2个字节 包含ascii码unicode 万国码 python3 内存unicodeutf-8 可变的长 英文 1 字节 欧洲2个字节 亚洲3个字节 在python中可以把⽂字信息进⾏编码. 编码之后的内容就可以进⾏传输了.编码之后的数据是bytes类型的数据. s = "我...

weixin_30906671的博客 148

0-6 Python 基础数据类型-列表常用方法、元组、字典

0-6 Python 基础数据类型-列表常用方法、元组、字典、集合 提示:Python 随堂笔记 文章目录0-6 Python 基础数据类型-列表常用方法、元组、字典、集合列表使用方法L.append(object) --> 在列表末尾添加新的对象L.extend(iterable) --> 用新列表扩展原来的列表元组字典集合课后作业作业一 Python 基础数据类型-列表常用方法、元组、字典、集合 列表使用方法 上节文章已经发过了,常用的操作: L.append(object) -

二十春夏 973
上一篇: Python基础 - 5.流程控制
下一篇: Python基础 - 7.函数
idsof
博客等级 码龄21年 9粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值