Python数据类型

字符串(str)

字符串是 Python 中最常用的数据类型。我们可以使用引号 ( ' 或 " 或''') 来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。

  • var1 = 'Hello World!'
    var2 = "Python Runoob"

字符串的截取的语法格式:变量[头下标:尾下标]

字符串1.jpg

  • str = 'Runoob'

print (str) # 输出字符串
print (str[0:-1]) # 输出第一个到倒数第二个的所有字符
print (str[0]) # 输出字符串第一个字符
print (str[2:5]) # 输出从第三个开始到第五个的字符
print (str[2:]) # 输出从第三个开始的后的所有字符
print (str * 2) # 输出字符串两次,也可以写成 print (2 * str)
print (str + "TEST") # 连接字符串

- Runoob

Runoo
R
noo
noob
RunoobRunoob
RunoobTEST

Python 使用反斜杠 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串

  • print('Runoob')
    Ru
    oob

print(r'Runoob')
Runoob

注意,Python 没有单独的字符类型,一个字符就是长度为1的字符串。

列表(list)

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号 [] 之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

列表截取的语法格式:变量[头下标:尾下标]

列表.jpg

list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]

tinylist = [123, 'runoob']

print (list) # 输出完整列表
print (list[0]) # 输出列表第一个元素
print (list[1:3]) # 从第二个开始输出到第三个元素
print (list[2:]) # 输出从第三个元素开始的所有元素
print (tinylist * 2) # 输出两次列表
print (list + tinylist) # 连接列表

  • ['abcd', 786, 2.23, 'runoob', 70.2]
    abcd
    [786, 2.23]
    [2.23, 'runoob', 70.2]
    [123, 'runoob', 123, 'runoob']
    ['abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob']

列表2.jpg

如果第三个参数为负数表示逆向读取,以下实例用于翻转字符串:

  • def reverseWords(input):

# 通过空格将字符串分隔符,把各个单词分隔为列表
    inputWords = input.split(" ")

# 翻转字符串
    # 假设列表 list = [1,2,3,4],  
    # list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
    # inputWords[-1::-1] 有三个参数
    # 第一个参数 -1 表示最后一个元素
    # 第二个参数为空,表示移动到列表末尾
    # 第三个参数为步长,-1 表示逆向
    inputWords=inputWords[-1::-1]

# 重新组合字符串
    output = ' '.join(inputWords)
     
    return output

if name == "main":
    input = 'I like runoob'
    rw = reverseWords(input)
    print(rw)

字典(dict)

字典(dictionary)是Python中另一个非常有用的内置数据类型。

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。

  • dict = {}
    dict['one'] = "1 -1"
    dict[2] = "2 - 1"

tinydict = {'name': 'runoob','code':1, 'site': 'https://www.cnblogs.com/zhangfanshixiaobai/p/17654671.html'}

print (dict['one']) # 输出键为 'one' 的值
print (dict[2]) # 输出键为 2 的值
print (tinydict)# 输出完整的字典
print (tinydict.keys())# 输出所有键
print (tinydict.values()) # 输出所有值

- 1 -1

2 - 1
{'name': 'runoob', 'code': 1, 'site': 'https://www.cnblogs.com/zhangfanshixiaobai/p/17654671.html'}
dict_keys(['name', 'code', 'site'])
dict_values(['runoob', 1, 'https://www.cnblogs.com/zhangfanshixiaobai/p/17654671.html'])

布尔类型(bool)

布尔类型只有两个值:True 和 False。

布尔类型可以和其他数据类型进行比较,比如数字、字符串等。在比较时,Python 会将 True 视为 1,False 视为 0。

布尔类型可以和逻辑运算符一起使用,包括 and、or 和 not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值。

布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True 会被转换成 1,False 会被转换成 0。

  • a = True
    b = False

比较运算符

print(2 < 3)   # True
print(2 == 3)  # False

逻辑运算符

print(a and b)  # False
print(a or b)   # True
print(not a)    # False

类型转换

print(int(a))   # 1
print(float(b)) # 0.0
print(str(a))   # "True"

注意: 在 Python 中,所有非零的数字和非空的字符串、列表、元组等数据类型都被视为 True,只有 0、空字符串、空列表、空元组等被视为 False。因此,在进行布尔类型转换时,需要注意数据类型的真假性。

元组(tuple)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。

tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 )

tinytuple = (123, 'runoob')

print (tuple) # 输出完整元组
print (tuple[0]) # 输出元组的第一个元素
print (tuple[1:3]) # 输出从第二个元素开始到第三个元素
print (tuple[2:]) # 输出从第三个元素开始的所有元素
print (tinytuple * 2) # 输出两次元组
print (tuple + tinytuple) # 连接元组

  • ('abcd', 786, 2.23, 'runoob', 70.2)
    abcd
    (786, 2.23)
    (2.23, 'runoob', 70.2)
    (123, 'runoob', 123, 'runoob')
    ('abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob')

元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取(看上面,这里不再赘述)。

其实,可以把字符串看作一种特殊的元组。

>>> tup = (1, 2, 3, 4, 5, 6)

print(tup[0])
1
print(tup[1:5])
(2, 3, 4, 5)
tup[0] = 11  # 修改元组元素的操作是非法的
Traceback (most recent call last):
  File "", line 1, in
TypeError: 'tuple' object does not support item assignment

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

  • tup1 = () # 空元组
    tup2 = (20,) # 一个元素,需要在元素后添加逗号

集合(set)

Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。

集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。

在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔。

另外,也可以使用 set() 函数创建集合。

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

  • sites =

print(sites) # 输出集合,重复的元素被自动去掉

成员测试

if 'Runoob' in sites :
print('Runoob 在集合中')
else :
print('Runoob 不在集合中')

set可以进行集合运算

a = set('abracadabra')
b = set('alacazam')

print(a)

print(a - b) # a 和 b 的差集

print(a | b) # a 和 b 的并集

print(a & b) # a 和 b 的交集

print(a ^ b) # a 和 b 中不同时存在的元素

- {'Zhihu', 'Baidu', 'Taobao', 'Runoob', 'Google', 'Facebook'}

Runoob 在集合中
{'b', 'c', 'a', 'r', 'd'}
{'r', 'b', 'd'}
{'b', 'c', 'a', 'z', 'm', 'r', 'l', 'd'}
{'c', 'a'}

转换

转化.png

程序与用户交互

Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。

>>>a = input("input:")

input:123 # 输入整数

type(a)
<class 'str'> # 字符串
a = input("input:")
input:runoob # 正确,字符串表达式
type(a)
<class 'str'> # 字符串

格式化输出

什么是格式化输出?

把一段字符串里面的某些内容替换掉之后再输出,就是格式化输出。

为什么要格式化输出?

我们经常会输出具有某种固定格式的内容,比如:'亲爱的xxx你好!你xxx月的话费是xxx,余额是xxx‘,我们需要做的就是将xxx替换为具体的内容。

  • res1= 'my name is %s, my age is %s'
    print(res1 % ('kevin', 10))

(3) 如何格式化输出?

需要先占位置:%s %d # %s占位可以给任意的数据类型占位,
%s占位可以给任意的数据类型占位,
%d:它只能够给数字占位,不能给其他数据类型占位置

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!