数据类型、数据结构、运算符--python

概述:

数据类型:存放数据的最小实体单元。

数据结构:将不同类型数据分类存放

其实对于数据结构、数据类型不必过分区分。将这两者都视为数据类型也未尝不可。

 

1- 数据类型

python没有明确的关键字表征数据类型。但是可以使用type(变量名)查看变量的数据类型。

主要有整形、浮点型、复数型、布尔型、字符串型

参考:

https://www.runoob.com/python3/python3-number.html

https://www.runoob.com/python3/python3-string.html

 

2- 数据结构

数据结构主要有:数组array、链表list、队列queuw、树tree、堆heap、栈stack、字典dict等

其中python主要用到的有:元组tuple、列表list、字典dict、集合set。其中列表、字典最为常用。

2.1- 元组tuple

元组类似与C语言用const修饰的一维数组。只可使用,不可更改。

元组常用操作:

#初始化
tuple = ("hello", 1)

#引用
print(tuple[1])

#遍历
for item in tuple:
	print(item)

for index,item in enumerate(tuple):
    print("tuple[{0}]:{1}".format(index, tuple[index]))

 

 

2.2- 列表list

列表和元组类似,只是可以修改其成员变量值。

#初始化
list = ["hello", 1]

#引用
print(list[1])



#遍历
for item in list:
	print(item)

for index,item in enumerate(list):
    print("list[{0}]:{1}".format(index, list[index]))

#其他操作
#a- 追加
list.append("world")

#b- 插入 list.insert(index, "hi")
list.insert(1, "hi")

#c- 替换
print(list[1])
list[1] = 5
print(list[1])


#d-  删除。 
# #listt.remove(待删除元素内容)如果找到多个,只删除第一个;
list.remove("hello")

#list.pop(待删除索引)会将成功删除的元素返回
item = list.pop(2)


其他操作还有转置、拷贝等,参考:https://www.runoob.com/python3/python3-list.html

 

2.3- 集合set

集合和列表类似,但是集合没有索引,是无序的列表。更像数学中的集合概念,同一个集合中的元素内容不能重复

集合的操作也和元组、列表类似。

注意:集合初始化如果为空,必须使用set=set()方式。

#初始化
set = {"hello", 1}

#遍历
for item in set:
	print(item)

for index, item in enumerate(set):
    print("set[{0}]:{1}".format(index, item))


#集合的方法
#a- 添加元素
set.add("world")

#b- 删除元素
#set.remove(元素)珊瑚
set.remove("hello")

#set.pop()删除
set.pop()


#c- 清除集合
set.clear()

更多参考:https://www.runoob.com/python3/python3-set.html

 

2.4- 字典dict

字典相当于二维数组,通过键值key索引内容velua。

常用操作:

#!/usr/bin/python

#初始化
dict = {1:"abc", "2":123}
print(type(dict))

#长度
print("len:{0}".format(len(dict)))

#引用
print(dict[1])
print(dict["2"])

#遍历
for key in dict.keys():
    print(key)

for val in dict.values():
    print(val)

for key,val in dict.items():
    print("{0}:{1}".format(key, val))

for item in dict.items():
    print(item)

详细操作参考:https://www.runoob.com/python3/python3-dictionary.html

 

 

3- 运算符

全部赋值菜鸟教程:https://www.runoob.com/python3/python3-basic-operators.html

3.1- 算术运算符

加减乘除等运算符和C一样

幂: **

地板除法://。就是整除取整数部分

运算符描述实例
+加 - 两个对象相加a + b 输出结果 31
-减 - 得到负数或是一个数减去另一个数a - b 输出结果 -11
*乘 - 两个数相乘或是返回一个被重复若干次的字符串a * b 输出结果 210
/除 - x 除以 yb / a 输出结果 2.1
%取模 - 返回除法的余数b % a 输出结果 1
**幂 - 返回x的y次幂a**b 为10的21次方
//取整除 - 向下取接近商的整数
>>> 9//2
4
>>> -9//2
-5

 

3.2- 关系运算符

==等于 - 比较对象是否相等(a == b) 返回 False。
!=不等于 - 比较两个对象是否不相等(a != b) 返回 True。
>大于 - 返回x是否大于y(a > b) 返回 False。
<小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。(a < b) 返回 True。
>=大于等于 - 返回x是否大于等于y。(a >= b) 返回 False。
<=小于等于 - 返回x是否小于等于y。(a <= b) 返回 True。

 

3.3- 赋值运算符

=简单的赋值运算符c = a + b 将 a + b 的运算结果赋值为 c
+=加法赋值运算符c += a 等效于 c = c + a
-=减法赋值运算符c -= a 等效于 c = c - a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
%=取模赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c **= a 等效于 c = c ** a
//=取整除赋值运算符c //= a 等效于 c = c // a
:=海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符

在这个示例中,赋值表达式可以避免调用 len() 两次:

if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

 

 

3.4- 逻辑运算符(只有布尔类型用到)

andx and y布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。(a and b) 返回 20。
orx or y布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。(a or b) 返回 10。
notnot x布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。not(a and b) 返回 False

 

3.5- 位运算符

&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 ,二进制解释: 0000 1100
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a | b) 输出结果 61 ,二进制解释: 0011 1101
^按位异或运算符:当两对应的二进位相异时,结果为1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。a << 2 输出结果 240 ,二进制解释: 1111 0000
>>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 1111

 

3.6- 成员运算符

运算符描述实例
in如果在指定的序列中找到值返回 True,否则返回 False。x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in如果在指定的序列中没有找到值返回 True,否则返回 False。x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

 

3.7- 身份运算符

运算符描述实例
isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis not 是判断两个标识符是不是引用自不同对象x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

 

 

参考:

菜鸟教程python3:https://www.runoob.com/python3/python3-basic-syntax.html

《python从小白到大牛》--关东升

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C#和Python都是面向对象语言,但它们的数据类型有些不同。 1. 整数类型 在C#,整数类型有 byte、sbyte、short、ushort、int、uint、long 和 ulong。而在Python,整数类型只有 int。Python的 int 类型可以表示任意大小的整数,而C#的整数类型有固定的大小。 2. 浮点数类型 在C#,浮点数类型有 float 和 double,而在Python,浮点数类型只有 float。Python的 float 类型可以表示任意精度的浮点数,而C#的浮点数类型有固定的精度。 3. 字符串类型 在C#,字符串类型是 string,而在Python,字符串类型是 str。两种语言都支持字符串的基本操作,如拼接、截取等。但是在Python,字符串是不可变的,而在C#,字符串是可变的。 4. 布尔类型 在C#,布尔类型是 bool,而在Python,布尔类型是 bool。两种语言都支持逻辑运算符,如 and、or 和 not。 5. 列表类型 在C#,列表类型是 List,而在Python,列表类型是 list。两种语言都支持列表的基本操作,如添加元素、删除元素等。但是在C#,列表是强类型的,即只能存储一种类型的元素,而在Python,列表可以存储任意类型的元素。 总的来说,C#和Python数据类型有些不同,但都支持基本的数据类型和面向对象的编程。 ### 回答2: C是一种广泛使用的编程语言,具有高效性、可移植性和可扩展性。它由贝尔实验室的Dennis Ritchie在20世纪70年代初期开发,用于UNIX操作系统的开发。C语言被广泛用于系统软件、嵌入式系统、驱动程序以及其他需要高性能和对硬件细节的控制的应用程序。 C语言具有简单的语法和丰富的编程结构,使得开发人员可以更容易地实现复杂的功能。它提供了大量的库函数和数据类型,可以方便地处理输入输出、字符串操作和内存管理等任务。同时,C语言也支持指针操作,使得开发人员可以直接访问和操作内存,从而提高性能和灵活性。 C语言还具有良好的可移植性,即在不同的平台上编写的代码可以简单地移植到其他平台上运行。这是因为C语言是一种较低级的语言,可以直接访问硬件。虽然不同的平台可能有不同的编译器和库函数,但是通过修改少量的代码,就可以在不同平台上编译和运行。 另外,C语言也支持模块化编程,可以将代码拆分成多个模块,提高代码的可读性和维护性。开发人员可以编写自己的函数和数据类型,将功能逻辑进行封装,方便代码的重复使用。 总的来说,C语言是一种强大、灵活且高效的编程语言,广泛应用于各种领域。它不仅仅是一种编程语言,更是一种思维方式和工程实践,有助于开发人员实现复杂的功能并提高软件的性能和可移植性。 ### 回答3: C是一种广泛应用的编程语言,它具有简洁灵活的语法和强大的功能。C被广泛用于开发操作系统、编译器、数据库等高性能和底层系统软件,也用于嵌入式系统和移动应用开发。 C的语法简单明了,易于学习和理解。它提供了丰富的数据类型,包括整数、浮点数、字符、数组、结构体和指针等,使得开发者能够更灵活地处理数据。C还提供了强大的控制结构,如条件语句和循环语句,使得程序的逻辑控制更加灵活。 C还提供了丰富的库函数,使得开发者可以方便地实现各种功能。标准C库提供了大量常用的函数,如字符串处理、文件操作和内存管理等。除了标准库,C还支持自定义库函数的编写,使得开发者能够根据自己的需求实现特定的功能。 C的性能优异,它的代码可以高效地编译和执行。C语言的程序可以直接转换为机器码,并且对系统资源的利用非常高效。这使得C成为了编写高性能和底层系统软件的首选语言。 同时,C的跨平台性也是它的优点之一。由于C语言的标准库在各个平台上都有实现,因此可以在不同的操作系统上编写和运行C程序,大大提高了程序的移植性。 总之,C语言具有简洁灵活的语法、强大的功能、高性能和跨平台性等优点,使得它成为了软件开发领域非常重要的一门语言。无论是开发底层系统软件还是移动应用,C语言都能够提供高效、可靠和灵活的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值