数据类型(重要)
什么是数据类型?
视频文件 音频文件 表格文件 图片 等等这些都是保存数据的方式
# 在IT领域也有各种各样的保存数据的方式
数据类型的种类?
- 数字类型
- 整数类型(int)
- 浮点类型(float)
- 字符串类型(str)
- 列表类型(list)
- 字典类型(dict)
- 布尔类型(bool)
- 元祖类型(tuple)
- 集合类型(set)
数据类型之整型(int)
作用:记录年龄、出生年份,学生人数等整数相关的状态
定义:
age = 18
student_count = 48
year = 2001
数据类型的关键字:
print(type(age))
浮点型(float)
作用:用来记录人的身高,体重,薪资等小数相关的状态
定义:
height = 1.8
weight = 120.5
salary = 2800.5
数据类型的关键字:
print(type(height))
数字类型的应用
(1)数字运算
- 整数和浮点数可以进行常见的数学运算,包括加法、减法、乘法、除法等。
a = 10
b = 3.5
result = a + b
# 结果为浮点数 13.5
print(result) # 13.5
print(type(result)) # <class 'float'>
(2)比较大小
- 我们可以使用比较运算符(如
<
、>
、<=
、>=
)来比较数字的大小,得到布尔类型的结果
a = 5
b = 2
compare_result = a > b
# 结果为True
print(compare_result) # True
print(type(compare_result)) # <class 'bool'>
数据类型之字符串(str)
作用:用来记录人的名字,家庭住址,性别等描述性质的状态
定义:
方式一:
username = 'kevin' # 单引号
方式二:
username = "kevin" # 双引号
方式三:
username = '''kevin''' # 当三引号的左边有赋值符号的时候就是字符串,否则是注释
方式四:
username = """kevin""" # 当三引号的左边有赋值符号的时候就是字符串,否则是注释
print()
总结:就是引号引起来的部分都是字符串!
为什么需要有这么多定义的方式?
res = '李老师说:'趁年轻,学技能,养活自己''
res = '李老师说:"趁年轻,学技能,养活自己"'
res = "李老师说:'趁年轻,学技能,养活自己'"
print(res)
# 一个字符串中出现了使用多个引号的是情况:外边是单引号,里面就是双引号,相反!
# 字符串的拼接
res1 = 'hello'
# res2 = 'world'
# res = ',python'
# print(res1 + res2 + res) # helloworld
# 重复字符串
print(res1 * 20) # hellohellohellohellohellohellohellohellohellohello
数据类型之列表(list)
作用:列表类型就是专门用来记录多个同种属性的值(比如同一个班级多个学生的姓名、同一个人的多个爱好等),并且存取都十分方便
定义:
stu_names = ['张三','李四','王五']
# 使用中括号括起来,内部存放多个元素值,元素与元素之间使用逗号分割,内部可以存放任意的数据类型
stu_names = [1, 2, 1.1, 1.2, '张三','李四','王五']
存起来如何取值:
# 练习题:
l = [1, 2, 3, ['kevin', 'tony', ['a', 'b', [11, 22, 'kevinNB', [111, 222, 333, 4444, 555, 666]]]]]
# 取出来 kevinNB
# 1. 问'kevinNB'在列表的第几个元素
l1 = l[3]
print(l1) # ['kevin', 'tony', ['a', 'b', [11, 22, 'kevinNB']]]
# 2. 问'kevinNB'在列表的第几个元素
l2 = l1[2]
print(l2) # ['a', 'b', [11, 22, 'kevinNB']]
# 3. 问'kevinNB'在列表的第几个元素
l3 = l2[2]
print(l3) # [11, 22, 'kevinNB']
l4 = l3[2]
print(l4) # kevinNB
# 合并一下
# l5 = l[3][2][2][2]
l5 = l[3][2][2][3][5]
print(l5)
数据类型之字典(dict)
作用:
如果我们需要用一个变量记录多个值,但多个值是不同属性的比如人的姓名、年龄、身高,用列表可以存,但列表是用索引对应值的,而索引不能明确地表示值的含义;这就用到字典类型,字典类型是用key:value形式来存储数据。
其中key可以对value有描述性的功能,能够明确的描述详细信息。
定义:
d = {'username':'kevin', 'age':18, 'gender':'male', 'salary':2000}
字典就是使用大括号括起来,内部存放多个元素值,元素与元素之间使用逗号隔开,但是,元素类型是key:value的形式,key是对value的解释型信息,value才是真正的变量值
取值:
### 练习题一
info = {
'username': 'jerry',
'addr': [1, 2, 3, {'age': 18, 'gender': 'male', 'hobby': ['tangtou', 'xijio', 'anmuo', 'niejiao', {'a': 'kevinNB'}]}]
}
# 取出 kevinNB
# 1. 问kevinNB在字典的第几个位置
l1 = info['addr']
print(l1) # [1, 2, 3, {'age': 18, 'gender': 'male', 'hobby': ['tangtou', 'xijio', 'anmuo', 'niejiao', {'a': 'kevinNB'}]}]
# 2. 问kevinNB在列表的第几个位置
l2 = l1[3]
print(l2) # {'age': 18, 'gender': 'male', 'hobby': ['tangtou', 'xijio', 'anmuo', 'niejiao', {'a': 'kevinNB'}]}
# 3. 问kevinNB在字典的第几个位置
l3 = l2['hobby']
print(l3) # ['tangtou', 'xijio', 'anmuo', 'niejiao', {'a': 'kevinNB'}]
l4 = l3[4]
print(l4) # {'a': 'kevinNB'}
l5 = l4['a']
print(l5) # kevinNB
# 合并一下
l6 = info['addr'][3]['hobby'][4]['a']
print(l6)
###练习题二
info = {
'name': 'Dream',
'addr': {
'国家': '中国',
'info': [666, 999, {'编号': 466722, 'hobby': ['read', 'study', 'music']}]
}
}
# 1. music在大字典里的位置
d1 = info['addr']
print(d1)
# {'国家': '中国', 'info': [666, 999, {'编号': 466722, 'hobby': ['read', 'study', 'music']}]}
# 2. music在小字典里的位置
d2 = d1['info']
print(d2)
# [666, 999, {'编号': 466722, 'hobby': ['read', 'study', 'music']}]
# 3. music在列表里的位置
d3 = d2[2]
print(d3)
# {'编号': 466722, 'hobby': ['read', 'study', 'music']}
# 4. music在小字典里的位置
d4 = d3['hobby']
print(d4)
# ['read', 'study', 'music']
# 5. music在列表里的位置
d5 = d4[2]
print(d5)
# music
# 整合
d6 = info['addr']['info'][2]['hobby'][2]
print(d6)
# music
##.get方法与中括号取值的区别
# 取值 --- 中括号,放键
name = name_dict['name']
print(name)
# 取值 --- get
name = name_dict.get('name')
print(name)
# 当原来字典里没有相关键的时候,.get方法打印出来的是none,而中括号是报错
age = name_dict.get('age', 18)
print(age)
print(type(age))
数据类型之布尔类型(bool)
作用:布尔类型用于表示逻辑值,只有两个取值:True 和 False。在编程中,布尔类型经常用于控制程序的流程,例如条件判断、循环等。
定义:
a = True # 代表的是真、对、正确的等含义
b = False # 代表的是假、错、不正确等含义
# 布尔类型的变量命名一般使用is_开头
is_right = True
is_ok = False
is_delete = True
# 扩展:is_delete
name age gender phone is_delete
kevin 18 male 110 1
# python中什么是真、什么是假?
你只需要记住哪些是假的情况,其余都为真
哪些是假?
0、''、None、[]、{}、等
数据类型之元组(tuple)
# 元组就是不可变的列表,其他的跟列表都一样
定义:
t = (1,2,3,4,5)
元组就是使用小括号括起来,内部存放多个元素值,元素与元素之间使用逗号隔开,它不能够修改,其余的跟列表都一样,也是索引(下标)来取值
取值:
print(t[0])
元组的使用
(1)元组的不可变性
- 由于元组是不可变的,不能对元素进行修改、删除或添加。
# 尝试修改元组的元素(会报错)
my_tuple[0] = 42 # TypeError: 'tuple' object does not support item assignment
# 尝试删除元组的元素(会报错)
del my_tuple[1] # TypeError: 'tuple' object doesn't support item deletion
# 尝试添加元素到元组(会报错)
my_tuple.append('new_element') # AttributeError: 'tuple' object has no attribute 'append'
(2)元组的基本操作
- 元组支持基本的操作,如切片、拼接等。
# 切片操作
sliced_tuple = my_tuple[1:3]
print(sliced_tuple) # ('hello', 3.14)
# 拼接操作
new_tuple = my_tuple + ('world', False)
print(new_tuple) # (1, 'hello', 3.14, True, 'world', False)
(3)元组解包
- 元组解包是一种将元组中的元素分配给多个变量的方法。
# 元组解包
a, b, c, d = my_tuple
print(a) # 1
print(b) # 'hello'
print(c) # 3.14
print(d) # True
(4)元组的应用场景
- 用于函数返回多个值
- 保持数据的不可变性,适用于一些常量集合的场景
- 元组作为字典的键(因为元组是不可变的)
# 函数返回多个值
def get_coordinates():
return 10, 20, 30
x, y, z = get_coordinates()
print(x, y, z) # 10 20 30
# 元组作为字典的键
coordinates_dict = {(1, 2, 3): 'Point A', (4, 5, 6): 'Point B'}
print(coordinates_dict[(1, 2, 3)]) # Point A
- 元组是一个灵活且强大的数据类型,适用于许多场景,特别是需要不可变性的情况。
数据类型之集合(set)
作用:集合(set)是一种无序、不重复的数据类型,用于存储多个独立的元素。集合主要用于:去重、关系运算
定义:
s = {1, 2, 3, 4}
使用大括号括起来,内部存放多个元素值,元素与元素之间使用逗号隔开,但是不是key:value的形式
集合的特点:去重
# 练习题:
l = [1, 2, 3, 4, 1, 2, 3, 4]
# 可以把列表转为集合
s = set(l)
print(s) # 集合的类型
ll = list(s)
print(ll) # [1, 2, 3, 4]
# 如何定义一个空集合
# 如何定义一个空字典
d = {}
print(d, type(d)) # dict
s = set()
print(s, type(s)) # <class 'set'>
集合运算
- 集合支持多种集合运算,如并集、交集、差集等。
set_a = {1, 2, 3, 4}
set_b = {3, 4, 5, 6}
# 并集
union_set = set_a.union(set_b)
# 交集
intersection_set = set_a.intersection(set_b)
# 差集
difference_set = set_a.difference(set_b)
格式化输出
1. %输出
使用 %
运算符进行格式化输出,可以在字符串中插入占位符,然后通过 %
运算符传入相应的值。
# 格式化输出语法一 : %
name = "xiao"
age = 18
height = 175.5
# 使用 %s 占位符,输出字符串
print("My name is %s." % name)
# My name is xiao.
# 使用 %d 占位符,输出整数
print("My age is %d." % age)
# My age is 18.
# 使用 %f 占位符,输出浮点数,默认保留六位小数
print("My height is %f." % height)
# My height is 175.500000.
# 使用 %.2f 占位符,保留两位小数
print("My height is %.2f." % height)
# My height is 175.50.
# 使用 %x 占位符,输出十六进制整数
number = 255
print("Number in hex: %x." % number)
# Number in hex: ff.
# 两个以上的占位符格式化输出
print("My name is %s; My age is %d" % (name, age))
# My name is xiao; My age is 18
2. format输出
使用 format
方法进行格式化输出,通过花括号 {}
表示占位符,然后调用 format
方法传入实际值
name = "xiao"
age = 18
# 格式化输出语法二 : formate
print("My name is {}; My age is {}".format(name, age))
# My name is xiao; My age is 18
在这个例子中,{}
是占位符,它会按顺序依次填充传入 format
方法的值。
3. f + {}输出
使用 f-string(f + {}
)进行格式化输出,通过在字符串前加上 f
或 F
前缀,然后在字符串中使用 {}
表示占位符,并在 {}
中直接引用变量。
name = "xiao"
age = 18
# 格式化输出语法三 : f + {}
print(f"My name is {name}; My age is {age}")
# My name is xiao; My age is 18
字符串转义
在字符串中,转义字符用于表示一些特殊字符或执行一些特殊操作,常用的转义字符如下:
转义字符 | 说明 |
---|---|
\n | 换行符,将光标位置移到下一行开头。 |
\r | 回车符,将光标位置移到本行开头。 |
\t | 水平制表符,也即 Tab 键,一般相当于四个空格。 |
\a | 蜂鸣器响铃。注意不是喇叭发声,现在的计算机很多都不带蜂鸣器了,所以响铃不一定有效。 |
\b | 退格(Backspace),将光标位置移到前一列。 |
\ | 反斜线 |
' | 单引号 |
" | 双引号 |
\ | 在字符串行尾的续行符,即一行未完,转到下一行继续写。 |
# 换行符
print("Hello\nWorld")
# Hello
# World
# 制表符
print("Name\tAge")
# Name Age
# 反斜线
print("This is a backslash: \\")
# This is a backslash: \
# 单引号
print("I'm a programmer.")
# I'm a programmer.
# 双引号
print("He said, \"Hello.\"")
# He said, "Hello."
# 回车符与退格符
print("One\rTwo\bThree")
# Two Three
标签:name,python,数据类型,age,基础,元组,kevinNB,print,My
From: https://www.cnblogs.com/xiao01/p/17862856.html