元组和字符串
一.什么是元组(tuple)
元组是容器型数据类型;将()作为容器的标志,里面多个元素用逗号隔开:(数据1, 数据2, 数据3, …)
元组是不可变的(不支持增删改); 有序的(支持下标操作)
元素:没有要求
1.空元组
t1 = ()
2.只有一个元素的元组在表示的时候唯一的元素后面必须加逗号
t2 = (10,)
print(t2, type(t2), len(t2))
3.在没有歧义的情况下,元组的()可以省略 (直接将多个数据用逗号隔开表示的也是一个元组)
t3 = 10, 20, 30
print(t3, len(t3))
4.解包 - 使用多个变量直接获取元组、列表中的多个元素
t4 = (10, 20, 30)
print(t4[0], t4[1], t4[2])
x, y, z = t4
print(x, y, z)
x, y, z = t4
print(x, y, z)
5.元组就是不可变的列表
t4 = (10, 20, 30)
print(t4[-1])
print(t4[1:])
print(t4 * 2, t4 + (1, 100))
print(10 in t4)
print((10, 20, 30) > (1, 100, 200, 39993))
# 等等...
什么是字符串(str)
1.字符串是容器型数据类型(字符串对应的容器只能保存多个文字符号-字符)。将’'或者""作为容器的标志,里面的每个符号就是字符串中每个元素
2不可变的(不支持增删改);字符串有序(支持下标)
3元素:引号中每个符号都是字符串的元素(任何文字符号都可以是字符串的元素),字符串的元素又叫字符
注意:字符串的元素(字符)分为两种:普通字符(符号在字符串中表示它本身)、转义字符(符号在字符串中有特殊功能或者特殊意义,没有表示这个符号本身)
str1 = 'abc,123'
str2 = "abc"
多行字符串
多行字符串
str3 = '''abc'''
str4 = """abc"
多行注释只有在特定的位置上才是注释
def func1():
"""多行注释"""
"""abc"""
class A:
"""多行注释"""
"""abc"""
字符串不可变,所有可变操作都是在创建对应的新的字符串
str1 = 'mna'
new_str1 = str1.upper()
print(str1, new_str1)
字符串有序
print('abc' == 'bca') # False
任何文字符号都可以是字符串的元素
str2 = 'amKN12,.。;=-+&^%函数😁♠♣'
print(str2)
普通字符
str3 = 'ak2你'
print(str3) # ak2你
转义字符
转义字符:
转义字符是由\和另外一个或者多个符号一起组合而成(转义符一定是\开头)。
在特定的符号前加上\,让这个符号在字符串中具有特殊的功能或者特殊意义的字符就是转义字符。
转义字符有哪些是固定(并不是随便一个字符前加\都可以变成转义字符)。
常见的转义字符:
\n - 换行
\t - 水平制表符(相当于按tab键)
’ - 表示一个普通的单引号
" - 表示一个普通的双引号
\ - 表示一个普通的反斜杠
str1 = 'It\'s me!'
print(str1)
str1 = '\t床前明月光,\n\t疑是地上霜。\n\t举头望明月,\n\t低头思故乡。'
print(str1)
str1 = "I say:\"good good study,day day up\""
print(str1)
str1 = 'abc\\n123'
print(str1)
r字符串 - 在字符串引号前加r或者R
如果表示字符串的时候在字符串最前面加r/R,可以让字符串中所有的转义字符功能消失。(r字符串中所有的字符都是普通字符)
str1 = r'abc'
str2 = R'abc'
print('------------------------------------华丽的分割线-----------------------------------')
str3 = R'\tabc\n123'
print(str3)
path = r'c:\study\abc\bin\text.txt'
print(path)