Python基础之基本数据类型
1.1 什么是数据?
x = 10, 10是我们要存储的数据1.2 为何数据要分不同的类型
数据是用来表示状态的,不同的状态就应该用不同类型的数据去表示。1.3 数据类型
2. 基础数据类型
2.1 数字int
数字主要用于计算用的,使用方法并不是很多,就记住一种就可以: ```Python #bit_length(),当十进制用二进制表示时,最少使用的位数 num = 11 data = num.bit_length() print(data) # 结果:4 ```2.2 布尔值bool
布尔值是判断条件的正确与否,只有两个结果:2.3 字符串str
2.3.1 字符串的索引
索引即下表,就是字符串组成的元素从第一个开始,初始索引为0以此类推。 ```Python string = "ABCDEFGHIJK" print(string[0]) print(string[3]) print(string[5]) print(string[7]) ``` 执行结果为: ```Python A D F H ```2.3.2 字符串的切片
切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚) ```Python string = "ABCDEFGHIJK" print(string[0:3]) print(string[2:5]) print(string[0:]) #默认到最后 print(string[0:-1]) #-1是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到最后的元素 print(string[0:5:2]) #加步长 print(string[5:0:-2]) #反向切片,步长为负值 ``` 执行结果为: ```Python ABC CDE ABCDEFGHIJK ABCDEFGHIJ ACE FDB ```2.4 字符串常用方法
2.4.1 capitalize():
作用:首字母大写 ```Python name = "yang wei" print(name.capitalize()) ``` 执行结果为: ```Python Yang wei ```2.4.2 swapcase()
作用:大小写翻转 ```Python name = "yang wei" print(name.swapcase()) ``` 执行结果为: ```Python YANG WEI ```2.4.3 title()
作用:每个单词首字母大写 ```Python name = "yang wei" print(name.title()) ``` 执行结果为: ```Python Yang Wei ```2.4.4 center()
作用:在总长度为X的字符串中,内容居中,空白处填充 ```Python s = "center" ret = s.center(20, "*") print(ret) ``` 执行结果为: ```Python *******center******* ```2.4.5 expandtabs()
作用: >补全空格。默认将一个tab键变成8个空格。
如果tab前面的字符长度不足8个,则补足8个。
如果有两个tab,tab前面的字符串长度超过8个不足16个,则补足16个。
以此类推,每个tab补足8个。
s = "\tabc"
ret = s.expandtabs()
print(ret)
执行结果为:
abc
2.4.6 startswith()
作用:判断是否以···开头 ```Python s = "abc" ret = s.startswith("a") print(ret) ``` 执行结果为: ```Python True ```2.4.7 endswith()
作用:判断是否以···结尾 ```Python s = "abc" ret = s.endswith("c") print(ret) ``` 执行结果为: ```Python True ```2.4.8 find()——推荐使用
作用:寻找字符串中的元素是否存在 ```Python s = "abc" ret = s.find("b") print(ret) ``` 如果能找到,则返回元素的索引,如果找不到返回-1执行结果为: ```Python 1 ```
2.4.9 index()——不推荐使用
作用:返回找到的元素的索引,找不到则报错。 ```Python s = "abc" ret = s.index("a") print(ret) ``` 执行结果为: ```Python 0 ``` 因为在使用index查找元素索引时,找不到内容则会报错,因此不推荐使用。2.4.10 split()
作用:以X分割字符串,最终形成一个列表,此列表中不含有这个分割的元素。 ```Python s = "a|b|c" ret = s.split("|") print(ret) ``` 执行结果为: ```Python ['a', 'b', 'c'] ```2.4.11 format()的三种用法
作用:格式化输出 ```Python print("{}{}{}".format("a", "b", "c")) print("{1}{0}{2}".format("a", "b", "c")) print("{a}{b}{c}".format(a="a1", b="b1", c="c1")) ``` 执行结果为: ```Python abc bac a1b1c1 ```2.4.12 strip()
作用:移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。 ```Python name = "*yang**" print(name.strip("*")) #去掉左右两边的字符 print(name.lstrip("*")) #去掉左边的字符 print(name.rstrip("*")) #去掉右边的字符 ``` 执行结果为: ```Python yang yang** *yang ```
2.4.13 replace()
作用:替换 ```Python s = "abc" ret = s.replace("a", "d") print(ret) ``` 执行结果为: ```Python dbc ```2.4.14 is系列
```Python name = "yang123" print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdigit()) #字符串只由数字组成 ``` 执行结果为: ```Python True False False ```2.5 元组tuple
元组被称为只读劣币哦啊,即数据可以被查询,但不能被修改,所以字符串的切片操作同样适用于元组。例如:(1, 2, 3) ("a", "b", "c")2.6 列表list
列表是Python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,它是以[]括起来,每个元素以逗号隔开,而且它里面可以存放各种数据类型,比如: >li = ["yang", 123, True, (1,2,3), [a, b, c], {name: "yang"}]列表相比于字符串,不仅可以存储不同的数据类型,而且可以存储大量数据,32为Python的限制是536870912, 64位Python的限制是1152921504606846975个元素。而且列表是有序的,有索引值,可切片,方便取值。
2.6.1 增加
```Python lst = [1, "a", "b", 2, 3, "a"]lst.insert(0, 55) #按照索引添加
print(lst)
lst.append("aaa") #增加到最后
print(lst)
lst.append([1, 2, 3]) #增加到最后
print(lst)
lst.extend(["q", "w", "e", "r"]) #迭代的增加
print(lst)
lst.extend("abc")
print(lst)
执行结果为:
```Python
[55, 1, 'a', 'b', 2, 3, 'a']
[55, 1, 'a', 'b', 2, 3, 'a', 'aaa']
[55, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3]]
[55, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3], 'q', 'w', 'e', 'r']
[55, 1, 'a', 'b', 2, 3, 'a', 'aaa', [1, 2, 3], 'q', 'w', 'e', 'r', 'a', 'b', 'c']
2.6.2 删除
```Python lst = [1, "a", "b", 2, 3, "a"] print(lst.pop(1)) print(lst)del lst[1:3]
print(lst)
lst.remove("a")
print(lst)
lst.clear()
print(lst)
执行结果为:
```Python
a
[1, 'b', 2, 3, 'a']
[1, 3, 'a']
[1, 3]
[]