怎么用虚拟机做网站,本地网站有什么可以做,用自己的电脑做网站需要备案吗,自助建站代理一 数据容器#xff1a;str(字符串)
1.1 字符串初识
字符串也是数据容器的一员#xff0c;字符串是一种数据容器#xff0c;用于存储和处理文本数据。字符串是字符的容器#xff0c;一个字符串可以存放任意数量的字符#xff0c;可以包含字母、数字、标点符号、空格等字…一 数据容器str(字符串)
1.1 字符串初识
字符串也是数据容器的一员字符串是一种数据容器用于存储和处理文本数据。字符串是字符的容器一个字符串可以存放任意数量的字符可以包含字母、数字、标点符号、空格等字符。在Python中字符串被表示为引号单引号或双引号括起来的文本。 字符串也可以通过下标进行访问从前向后下标从0开始从后向前下标从-1开始
my_str itheima and itcast
# 通过下标索引取值
value my_str[2]
value2 my_str[-16]
print(f从字符串{my_str}取下标为2的元素。值是{value},取下标为-16的元素。值是{value2})同元组一样字符串是一个无法修改的数据容器。 所以以下的操作均无法完成如果必须要做只能得到一个新的字符串旧的字符串是无法修改。 修改指定下标的字符 如字符串[0] “a”移除特定下标的字符 如del 字符串[0]、字符串.remove()、字符串.pop()等追加字符等 如字符串.append()
1.2 字符串常用操作 字符串创建可以使用单引号或双引号创建字符串 single_quoted_str Hello, I am a single-quoted string.
double_quoted_str Hello, I am a double-quoted string.多行字符串需要创建跨越多行的字符串可以使用三引号三个连续的单引号或双引号 multi_line_str This is a multi-line
string created using triple quotes.字符串拼接通过加号运算符将多个字符串连接在一起 str1 Hello,
str2 world!
combined_str str1 str2
print(combined_str) # Output: Hello, world!字符串格式化 Python中的字符串格式化可以使用format方法或f-strings从Python 3.6开始 name John
age 30
formatted_str My name is {} and I am {} years old..format(name, age)
print(formatted_str) # Output: My name is John and I am 30 years old.# 使用 f-strings
formatted_str_fstring fMy name is {name} and I am {age} years old.
print(formatted_str_fstring) # Output: My name is John and I am 30 years old.字符串索引和切片 字符串中的每个字符都有一个索引可以使用索引来访问单个字符。索引是从0开始的整数。还可以使用切片来获取字符串的子串 my_str Hello, world!
print(my_str[0]) # Output: H
print(my_str[7:]) # Output: world!
print(my_str[:5]) # Output: Hello1.3 字符串常用方法
方法描述示例len(str)返回字符串的长度字符数len(Hello, world!) - 13str.lower()将字符串中的所有字母转换为小写形式Hello, World!.lower() - “hello, world!”str.upper()将字符串中的所有字母转换为大写形式Hello, World!.upper() - “HELLO, WORLD!”str.strip()去除字符串两边的空格或指定的字符 Hello, world! .strip() - “Hello, world!”str.split(sep)将字符串按照指定的分隔符拆分成一个列表apple,banana,orange.split(,) - [‘apple’, ‘banana’, ‘orange’]str.join(iterable)将一个字符串列表或可迭代对象连接成一个字符串使用当前字符串作为连接符,.join([apple, banana, orange]) - “apple,banana,orange”str.replace(old, new)替换字符串中的指定子串Hello, world!.replace(world, Python) - “Hello, Python!”str.startswith(prefix)检查字符串是否以指定的子串开头Hello, world!.startswith(Hello) - Truestr.endswith(suffix)检查字符串是否以指定的子串结尾Hello, world!.endswith(world!) - Truestr.find(sub)查找子串在字符串中的索引位置Hello, world!.find(world) - 7str.index(sub)查找子串在字符串中的索引位置Hello, world!.index(world) - 7str.count(sub)统计子串在字符串中出现的次数abracadabra.count(a) - 5 字符串常用的内置字符串方法演示 len(): 获取字符串的长度字符数。 my_str Hello, world!
print(len(my_str)) # Output: 13数字1、2、3…、字母abcd、ABCD等、符号空格、!、、#、$等、中文均算作1个字符 str.lower(): 将字符串中的所有字母转换为小写形式。 my_str Hello, World!
print(my_str.lower()) # Output: hello, world!str.upper(): 将字符串中的所有字母转换为大写形式。 my_str Hello, World!
print(my_str.upper()) # Output: HELLO, WORLD!str.strip(): 去除字符串两边的空格或指定的字符。 my_str Hello, world!
print(my_str.strip()) # Output: Hello, world!my_str 12Hello and world21
new_my_str my_str.strip(12)
print(f字符串{my_str}被strip(12)后结果{new_my_str})
# 字符串12itheima and itcast21被strip(12)后结果hello and world使用 strip() 方法来移除字符串开头和结尾的字符。传入了参数 “12” 给 strip() 方法这意味着它会移除字符串开头和结尾处的所有 “1” 和 “2”。 str.split(): 将字符串按照指定的分隔符拆分成一个列表。 my_str apple,banana,orange
fruits_list my_str.split(,)
print(fruits_list) # Output: [apple, banana, orange]str.join(): 将一个字符串列表或可迭代对象连接成一个字符串使用当前字符串作为连接符。 fruits_list [apple, banana, orange]
my_str ,.join(fruits_list)
print(my_str) # Output: apple,banana,orangestr.replace(): 替换字符串中的指定子串。 my_str Hello, world!
new_str my_str.replace(world, Python)
print(new_str) # Output: Hello, Python!str.startswith(), str.endswith(): 检查字符串是否以指定的子串开头或结尾。 my_str Hello, world!
print(my_str.startswith(Hello)) # Output: True
print(my_str.endswith(world!)) # Output: Truestr.find(), str.index(): 查找子串在字符串中的索引位置。 my_str Hello, world!
print(my_str.find(world)) # Output: 7
print(my_str.index(world)) # Output: 7str.count(): 统计子串在字符串中出现的次数。 my_str abracadabra
print(my_str.count(a)) # Output: 5字符串类型在Python中是不可变的这意味着字符串的值一旦创建就不能更改。因此许多字符串方法都返回新的字符串副本而不会改变原始字符串。 字符串是Python中非常重要且常用的数据容器它们用于处理文本和字符数据并且有许多内置方法和操作可以使得字符串的处理更加灵活和便捷。
1.4 字符串的特点
作为数据容器字符串有如下特点
只可以存储字符串长度任意取决于内存大小支持下标索引允许重复字符串存在不可以修改增加或删除元素等支持for循环
基本和列表、元组相同
不同与列表和元组的在于字符串容器可以容纳的类型是单一的只能是字符串类型。不同于列表相同于元组的在于字符串不可修改
二 数据容器(序列)的切片
2.1 认识序列和切片 序列是指内容连续、有序可使用下标索引的一类数据容器。列表、元组、字符串均可以可以视为序列。 切片是一种用于从序列中获取子序列的操作它可以轻松地获取序列的一部分而不必修改原始序列。切片使用索引来指定子序列的起始和结束位置。 序列支持切片即列表、元组、字符串均支持进行切片操作
2.2 切片语法
切片的语法如下sequence[start:stop:step]start切片的起始位置包含该位置的元素。如果省略则默认从序列的开头开始。stop切片的结束位置不包含该位置的元素。如果省略则默认到序列的末尾结束。step切片的步长可选参数。它表示每隔多少个元素取一个元素。默认为1表示每个元素都取。为负数表示反向取注意起始下标和结束下标也要反向标记
# 对list进行切片从1开始4结束步长1
my_list [0, 1, 2, 3, 4, 5, 6]
result1 my_list[1:4] # 步长默认是1所以可以省略不写
print(f结果1{my_list})
print(f结果1{result1})切片操作不会影响序列本身而是会得到一个新的序列列表、元组、字符串 2.3 切片演示
以下是一些切片的示例 使用切片获取列表的子列表 my_list [1, 2, 3, 4, 5, 6, 7, 8, 9]
sub_list my_list[2:6] # 从索引2开始到索引6不包含6
print(sub_list) # Output: [3, 4, 5, 6]使用切片获取元组的子元组 my_tuple (10, 20, 30, 40, 50)
sub_tuple my_tuple[1:4] # 从索引1开始到索引4不包含4
print(sub_tuple) # Output: (20, 30, 40)# 对tuple进行切片从头开始到最后结束步长1
my_tuple (0, 1, 2, 3, 4, 5, 6)
result2 my_tuple[:] # 起始和结束不写表示从头到尾步长为1可以省略
print(result2) # (0, 1, 2, 3, 4, 5, 6)使用切片获取字符串的子字符串 my_str Hello, world!
sub_str my_str[7:] # 从索引7开始到末尾
print(sub_str) # Output: world!使用切片来进行反转操作 my_list [1, 2, 3, 4, 5]
reversed_list my_list[::-1] # 从末尾到开头每次取一个元素
print(reversed_list) # Output: [5, 4, 3, 2, 1]# 对str进行切片从头开始到最后结束步长-1
my_str 01234567
result4 my_str[::-1]
print(result4) # 76543210使用切片和步长来间隔地获取元素 my_list [1, 2, 3, 4, 5, 6, 7, 8, 9]
step_list my_list[::2] # 从开头到末尾每隔一个元素取一个
print(step_list) # Output: [1, 3, 5, 7, 9]# 对列表进行切片从3开始到1结束步长-1
my_list [0, 1, 2, 3, 4, 5, 6]
result5 my_list[3:1:-1]
print(f结果5{result5}) # [3, 2]# 对元组进行切片从头开始到尾结束步长-2
my_tuple (0, 1, 2, 3, 4, 5, 6)
result6 my_tuple[::-2]
print(f结果6{result6}) # (6, 4, 2, 0)切片是Python中非常强大和实用的功能它允许您以一种简洁的方式获取序列中的子序列并支持许多灵活的用法。
三 数据容器set(集合)
3.1 集合的定义格式 在Python中集合Set是一种无序、不重复的数据容器用于存储一组唯一的元素。集合中的元素必须是不可变类型例如数字、字符串、元组等。集合不支持索引和切片因为其元素没有固定的顺序。 集合使用花括号 {} 来定义或者使用 set() 函数来创建一个空集合。如果在花括号中包含一些元素那么就会创建一个包含这些元素的集合。
以下是几种创建集合的定义格式
使用花括号 {} 定义集合
my_set {1, 2, 3, 4, 5}使用 set() 函数定义集合my_set set([1, 2, 3, 4, 5])注意如果使用空的花括号 {} 创建一个对象Python会将其解释为一个空的字典而不是一个空的集合。因此要创建一个空集合必须使用 set() 函数。使用 set() 函数创建空集合empty_set set()需要注意的是由于集合是无序的每次打印集合时元素的顺序可能不同。因为集合中元素的位置不重要只要确保其中的元素是唯一的。 3.2 集合的特点
Python集合有以下几个主要特点 唯一性集合中的元素是唯一的不允许重复。如果尝试将重复的元素添加到集合中它们将被忽略。 无序性集合中的元素没有固定的顺序因此不能通过索引访问或切片操作来获取元素。这是因为集合内部使用哈希表实现而哈希表是无序的数据结构。 可变性集合是可变的可以添加、删除元素。可以使用add()方法向集合中添加元素使用remove()或discard()方法删除元素。 不支持索引和切片由于集合是无序的因此不能通过索引或切片来访问集合中的元素。 支持数学集合操作集合支持并集、交集、差集等数学集合操作。可以使用相应的方法如union()并集、intersection()交集、difference()差集来执行这些操作。 可用于去重由于集合中的元素是唯一的可以使用集合来对序列中的元素进行去重操作。 使用花括号 {} 或 set() 函数来定义集合可以使用花括号 {} 来定义或者使用set()函数来创建。当使用花括号创建集合时注意不要与字典的花括号混淆因为它们的格式相同。
例如下面是一些使用集合的示例
# 定义集合
my_set {1, 2, 3, 4, 5}# 添加元素
my_set.add(6)# 删除元素
my_set.remove(3)# 并集操作
set1 {1, 2, 3}
set2 {3, 4, 5}
union_set set1.union(set2) # 结果为 {1, 2, 3, 4, 5}# 交集操作
intersection_set set1.intersection(set2) # 结果为 {3}# 差集操作
difference_set set1.difference(set2) # 结果为 {1, 2}总之Python集合是一个非常有用的数据结构特别适用于需要存储唯一元素或执行集合操作的情况。
3.3 集合常用操作
操作描述示例创建集合使用花括号 {} 或 set() 函数来创建集合my_set {1, 2, 3}another_set set([4, 5, 6])添加元素使用 add() 方法向集合中添加元素my_set {1, 2, 3}my_set.add(4)删除元素使用 remove() 或 discard() 方法从集合中删除元素my_set {1, 2, 3}my_set.remove(2)my_set.discard(4)随机移除并返回元素使用pop()方法从集合中移除并返回元素my_set{1,2,3}my_set.pop()并集使用 union() 方法或 操作符求两个集合的并集交集使用 intersection() 方法或 操作符求两个集合的交集set1 {1, 2, 3}set2 {3, 4, 5}intersection_set set1.intersection(set2)# 或者 intersection_set set1 set2差集使用 difference() 方法或 - 操作符求两个集合的差集set1 {1, 2, 3}set2 {3, 4, 5}difference_set set1.difference(set2)# 或者 difference_set set1 - set2对称差集使用 symmetric_difference() 方法或 ^ 操作符求两个集合的对称差集set1 {1, 2, 3}set2 {3, 4, 5}symmetric_difference_set set1.symmetric_difference(set2)# 或者 symmetric_difference_set set1 ^ set2判断子集和超集使用 issubset() 方法或 操作符判断一个集合是否是另一个集合的子集set1 {1, 2}set2 {1, 2, 3, 4}is_subset set1.issubset(set2)# 或者 is_subset set1 set2使用 issuperset() 方法或 操作符判断一个集合是否是另一个集合的超集set1 {1, 2}set2 {1, 2, 3, 4}is_superset set2.issuperset(set1)# 或者 is_superset set2 set1长度和清空集合使用 len() 函数获取集合的长度元素个数my_set {1, 2, 3, 4}length len(my_set)使用 clear() 方法清空集合中的所有元素my_set {1, 2, 3, 4}my_set.clear()
以下是Python集合的一些常见操作演示 创建集合使用花括号 {} 或 set() 函数来创建集合。 my_set {1, 2, 3}
another_set set([4, 5, 6])添加元素使用add()方法向集合中添加元素。 my_set {1, 2, 3}
my_set.add(4)删除元素 使用remove()或discard()方法从集合中删除元素。remove()方法在元素不存在时会引发KeyError异常而discard()方法则不会。 my_set {1, 2, 3}
my_set.remove(2)
my_set.discard(4)随机移除并返回元素 集合的 pop() 方法用于移除并返回集合中的一个任意元素。由于集合是无序的因此无法确定哪个元素会被移除因此 pop() 方法返回的元素是不确定的。 my_set {1, 2, 3, 4, 5}
removed_element my_set.pop() # 移除并返回集合中的一个任意元素
print(removed_element) # Output: 1 或 2 或 3 或 4 或 5不确定哪个元素被移除
print(my_set) # Output: 剩下的元素可能为 {2, 3, 4, 5} 等注意当集合为空时调用 pop() 方法会引发 KeyError 异常因为集合中没有元素可以被移除。在使用 pop() 方法前请确保集合不为空或添加异常处理机制来处理空集合的情况。 集合运算 并集使用union()方法或|操作符求两个集合的并集。交集使用intersection()方法或操作符求两个集合的交集。差集使用difference()方法或-操作符求两个集合的差集。对称差集使用symmetric_difference()方法或^操作符求两个集合的对称差集。 set1 {1, 2, 3}
set2 {3, 4, 5}
union_set set1.union(set2) # 或者 union_set set1 | set2
intersection_set set1.intersection(set2) # 或者 intersection_set set1 set2
difference_set set1.difference(set2) # 或者 difference_set set1 - set2
symmetric_difference_set set1.symmetric_difference(set2) # 或者 symmetric_difference_set set1 ^ set2判断子集和超集 使用issubset()方法或操作符判断一个集合是否是另一个集合的子集。使用issuperset()方法或操作符判断一个集合是否是另一个集合的超集。 set1 {1, 2}
set2 {1, 2, 3, 4}
is_subset set1.issubset(set2) # 或者 is_subset set1 set2
is_superset set2.issuperset(set1) # 或者 is_superset set2 set1长度和清空集合 使用len()函数获取集合的长度元素个数。使用clear()方法清空集合中的所有元素。 my_set {1, 2, 3, 4}
length len(my_set)
my_set.clear()