【从Python基础到深度学习】9.Python 语法基础

一、常量与变量

常量:程序中使用的具体的数、字符。在运行过程中,值无法更改
变量:表示一一个存储单元,其中存储的值可以修改 如:a=5,b=6
变量命名:
1、只能包含字母、数字、下划线
2、只能以字母、下划线开头
3、不要使用关键字作为变量名称
 

二、基础数据类型

整数: int
浮点数: float (存在误差)
字符串: str
布尔: bool
获取变量类型: type函数

强制类型转换 :

整数: int()
浮点数: float ()
字符串: str()
布尔: bool()

三、 数据类型转换

int转float:直接转换  7 -> 7.0
float转int:舍弃小数
int转bool:非0: True、 0: False
bool转int: False: 0、 True: 1
转str:直接转换

四、常用运算符

算术运算符:+、-、*、/、//(整除)、%(求余)、**(幂)
关系运算符:>、<、==、!=、>=、<=
赋值运算符: =、+=、-=、
*=、/=、%=、//=、**=
逻辑运算符: and、 or、 not


成员运算符: in、 not in
身份运算符: is、 is not 

五、输入输出 函数

print()用于打印输出,是最常见的一个函数。

语法: print(*objects, sep=' ', end="\n', file=sys.stdout, flush=False)
参数说明:
1、objects:表示输出一个或者多个对象。输出多个对象需要用sep分隔。
2、sep:输出多个对象时使用sep分隔,默认值是一一个空格。
3、end: 输出结束以end结尾,默认值是换行符\n,可以换成其他字符串。

print(1)
print("Hello World")
a= 1
b= 'runoob '
print(a,b)
print("aa","bbb" )
print("aa" ,"bbb")
print("www",lanqiao, "cn",sep="+") #设置间隔符

input()输入输出函数

语法: input([prompt])
参数说明: prompt: 提示信息
输入的变量均为str字符串类型
int()可以转换成整数

a = input("请进行输入:")
print(a,type(a))a = int(input("请进行输入:"))
print(a,type(a))


 

 六、选择结构

if语句

if condition:# 在条件满足时执行的代码块# 可以是一条语句或多条语句,必须相同缩进级别
elif another_condition:# 如果上一个条件不满足,但是这个条件满足时执行的代码块# elif子句是可选的,可以有一个或多个
else:# 如果上面的条件都不满足时执行的代码块# else子句也是可选的

Python使用缩进来表示代码块的层次结构,因此在if语句中,每个代码块都必须有相同的缩进级别。

在Python中可以在一个if语句块内部嵌套另一个if语句:

x = 10
y = 5if x > 5:print("x is greater than 5")if y > 2:print("y is also greater than 2")else:print("y is not greater than 2")
else:print("x is not greater than 5")

for语句

range() 函数用于生成一系列数字,在 Python 中常用于 for 循环中,以便迭代一系列数字。

range(start, stop, step)
  • start:可选参数。序列的起始值,默认为0。
  • stop:必需参数。序列的结束值。该值不包括在序列中。
  • step:可选参数。序列的步长或增量值,默认为1。

range() 函数返回一个数字序列,从 start 开始,以 step 递增,直到但不包括 stop

for num in range(10, 0, -1):print(num)
for num in range(2, 10, 2):print(num)
for 变量 in 序列:执行代码块
  • 变量:在每次迭代中,将序列中的元素赋值给变量。
  • 序列:可以是列表、元组、字符串等序列类型,或者是可迭代对象。
  • 执行代码块:在每次迭代中,执行缩进的代码块,这是循环体。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:print(fruit)

sum() 函数是 Python 内置函数之一

sum(iterable, start=0)
  • iterable:必需,一个可迭代的对象,如列表、元组等。
  • start:可选,默认为0,指定初始值。

sum实现奇数求和

n = int(input("请输入整数 n(实现n以内奇数求和):"))
result = sum( range(1,n+1,2))
print(result)

while语句

while 条件:执行代码块
  • 条件 是一个表达式,如果该表达式的值为 True,则继续执行循环体中的代码块;如果为 False,则退出循环,继续执行循环之后的代码。
  • 执行代码块 是循环体,包含在 while 循环中要重复执行的代码。
total = 0
num = 1
while num <= 5:total += numnum += 1
print("1 到 5 的和为:", total)

 

辗转相除法 

辗转相除法,也称为欧几里德算法,是一种用于计算两个整数的最大公约数(Greatest Common Divisor,GCD)的算法。其基本原理是利用整数除法的性质以及两个数的除余操作。

辗转相除法的步骤如下:

  1. 将两个整数中较大的数除以较小的数,并计算余数。
  2. 将较小的数与余数进行同样的操作,直到余数为 0。
  3. 当余数为 0 时,最后一次的除数就是两个整数的最大公约数。
def gcd(a, b):while b != 0:a, b = b, a % breturn a# 例子
num1 = 48
num2 = 18
print("48 和 18 的最大公约数是:", gcd(num1, num2))

初始时,a 为较大的数,b 为较小的数

breakcontinue

breakcontinue 是 Python 中用于控制循环的两个关键字。

break 关键字:

  • break 关键字用于跳出当前所在的最内层循环(for 或 while 循环),并继续执行循环之后的代码。
  • break 被执行时,循环立即终止,不再执行循环体中未执行的代码,也不会继续下一次循环。
  • break 通常用于在满足某些条件时强制退出循环,提前结束循环的执行。
  • for i in range(5):if i == 3:breakprint(i)
    

continue 关键字:

  • continue 关键字用于跳过当前循环中的剩余代码,并直接进入下一次循环的迭代。
  • continue 被执行时,循环中 continue 之后的代码不会被执行,而是直接开始下一次循环迭代。
  • continue 通常用于在某些条件下跳过当前循环迭代,继续下一次迭代。
  • for i in range(5):if i == 2:continueprint(i)
    

七、基础数据结构 

 7.1 列表

列表的创建

列表使用方括号 [] 来表示,其中的元素用逗号 , 分隔。

# 创建一个空列表
my_list = []# 创建一个包含整数元素的列表
my_list = [1, 2, 3, 4, 5]# 创建一个包含字符串元素的列表
my_list = ['apple', 'banana', 'cherry']# 列表中的元素可以是不同类型的
mixed_list = [1, 'apple', True, 3.14]

访问列表元素

my_list = ['apple', 'banana', 'cherry']print(my_list[0])  # 输出:'apple'
print(my_list[1])  # 输出:'banana'
print(my_list[2])  # 输出:'cherry'

列表的切片 

my_list = [1, 2, 3, 4, 5]# 获取索引 1 到 3 的子列表(不包括索引 3)
sub_list = my_list[1:3]
print(sub_list)  # 输出:[2, 3]

修改列表元素

列表是可变的,可以通过索引来修改其中的元素。

my_list = ['apple', 'banana', 'cherry']my_list[1] = 'orange'
print(my_list)  # 输出:['apple', 'orange', 'cherry']

添加元素到列表

可以使用 append() 方法向列表末尾添加新元素,也可以使用 insert() 方法在指定位置插入新元素。

my_list = ['apple', 'banana', 'cherry']my_list.append('orange')
print(my_list)  # 输出:['apple', 'banana', 'cherry', 'orange']my_list.insert(1, 'grape')
print(my_list)  # 输出:['apple', 'grape', 'banana', 'cherry', 'orange']

删除列表元素

可以使用 del 关键字、remove() 方法或 pop() 方法删除列表中的元素。 

my_list = ['apple', 'banana', 'cherry']del my_list[1]
print(my_list)  # 输出:['apple', 'cherry']my_list.remove('cherry')
print(my_list)  # 输出:['apple']deleted_element = my_list.pop(0)
print(deleted_element)  # 输出:'apple'
print(my_list)  # 输出:[]

7.2 元组

在 Python 中,元组(Tuple)是一种有序、不可变的数据结构,用于存储一组元素。元组使用圆括号 () 来表示,其中的元素用逗号 , 分隔。元组与列表相似,但元组是不可变的,即创建后不能修改、添加或删除其中的元素。

元组的创建

元组使用圆括号 () 来表示,其中的元素用逗号 , 分隔。

# 创建一个空元组
my_tuple = ()# 创建一个包含整数元素的元组
my_tuple = (1, 2, 3, 4, 5)# 创建一个包含字符串元素的元组
my_tuple = ('apple', 'banana', 'cherry')# 元组中的元素可以是不同类型的
mixed_tuple = (1, 'apple', True, 3.14)

访问元组元素

元组中的元素可以通过索引来访问,索引从 0 开始。

my_tuple = ('apple', 'banana', 'cherry')print(my_tuple[0])  # 输出:'apple'
print(my_tuple[1])  # 输出:'banana'
print(my_tuple[2])  # 输出:'cherry'

元组的切片

可以使用切片操作从元组中获取子元组。

my_tuple = (1, 2, 3, 4, 5)# 获取索引 1 到 3 的子元组(不包括索引 3)
sub_tuple = my_tuple[1:3]
print(sub_tuple)  # 输出:(2, 3)

元组的不可变性

元组是不可变的,一旦创建后,就不能修改其中的元素。

my_tuple = ('apple', 'banana', 'cherry')# 尝试修改元组中的元素会引发错误
my_tuple[1] = 'orange'  # TypeError: 'tuple' object does not support item assignment

7.3 字符串(字符串对象不支持修改)

在Python中,字符串是一种表示文本数据的数据类型,它是一系列Unicode字符的有序序列。字符串可以由单引号(')、双引号(")或三引号('''""")来表示。

字符串的创建

可以使用单引号、双引号或三引号来创建字符串。

# 使用单引号创建字符串
single_quoted_string = 'Hello, world!'# 使用双引号创建字符串
double_quoted_string = "Hello, world!"# 使用三引号创建多行字符串
multi_line_string = '''This is a
multi-line
string.'''

字符串的访问

字符串中的每个字符都有一个索引,索引从0开始。

my_string = "Hello, world!"print(my_string[0])  # 输出:H
print(my_string[7])  # 输出:w

字符串的切片

可以使用切片操作从字符串中获取子字符串。

my_string = "Hello, world!"print(my_string[1:5])  # 输出:ello

字符串的拼接

可以使用 + 运算符来拼接字符串。

string1 = "Hello, "
string2 = "world!"combined_string = string1 + string2
print(combined_string)  # 输出:Hello, world!

字符串的常用方法

Python自带方法:

        字符串长度: 使用 len() 方法可以获取字符串的长度。

字符串内部函数:

        字符串大小写转换:

  • upper(): 将字符串中的所有字符转换为大写。
  • lower(): 将字符串中的所有字符转换为小写。
  • capitalize(): 将字符串的第一个字符转换为大写,其他字符转换为小写。
my_string = "Hello, World!"print(my_string.upper())      # 输出:HELLO, WORLD!
print(my_string.lower())      # 输出:hello, world!
print(my_string.capitalize()) # 输出:Hello, world!

        字符串查找和替换:

  • find(substring): 查找子字符串在原字符串中的位置,如果找到返回索引值,否则返回 -1。
  • replace(old, new): 将字符串中的指定子字符串替换为新的子字符串。
my_string = "Hello, world!"print(my_string.find("world"))          # 输出:7
print(my_string.find("Python"))         # 输出:-1new_string = my_string.replace("world", "Python")
print(new_string)  # 输出:Hello, Python!

        字符串分割和连接:

  • split(delimiter): 将字符串根据指定的分隔符拆分成多个子字符串,并返回一个列表。
  • join(iterable): 将可迭代对象中的字符串元素连接成一个字符串,以原字符串为连接符。
my_string = "apple,banana,orange"split_string = my_string.split(",")
print(split_string)  # 输出:['apple', 'banana', 'orange']my_list = ['apple', 'banana', 'orange']
joined_string = ",".join(my_list)
print(joined_string) # 输出:apple,banana,orange

        字符串去除空白:

  • strip(): 去除字符串两端的空白字符。
  • lstrip(): 去除字符串左端的空白字符。
  • rstrip(): 去除字符串右端的空白字符。
my_string = "   Hello, world!   "print(my_string.strip())   # 输出:Hello, world!
print(my_string.lstrip())  # 输出:Hello, world!   
print(my_string.rstrip())  # 输出:   Hello, world!

字符串的格式化

可以使用字符串的格式化方法来创建具有动态内容的字符串。

name = "Alice"
age = 30formatted_string = f"My name is {name} and I am {age} years old."
print(formatted_string)  # 输出:My name is Alice and I am 30 years old.

使用 in 检查成员关系

  • in 运算符用于检查某个值是否存在于序列中,如果存在,则返回 True,否则返回 False
my_string = "Hello, world!"print('H' in my_string)    # 输出:True
print('X' in my_string)    # 输出:False

使用 not in 检查非成员关系

  • not in 运算符用于检查某个值是否不存在于序列中,如果不存在,则返回 True,否则返回 False
my_string = "Hello, world!"print('H' not in my_string)    # 输出:False
print('X' not in my_string)    # 输出:True

字符串转义字符

  • \n:换行符,将光标移动到下一行开头。
  • \t:制表符,用于在文本中插入水平制表符。
  • \ : 续行符 
  • \\:反斜杠,用于插入一个反斜杠字符。
  • \':单引号,用于插入一个单引号字符。
  • \":双引号,用于插入一个双引号字符。
print("Hello\nWorld!")
# 输出:
# Hello
# World!print("This is a\ttabbed\ttext.")
# 输出:This is a   tabbed  text.print("C:\\path\\to\\file.txt")
# 输出:C:\path\to\file.txtprint('He\'s a good boy.')
# 输出:He's a good boy.print("She said, \"Hello!\"")
# 输出:She said, "Hello!"

字符串强制转换为List 

s = "hello world"
print(list(s)) #['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

一行输入两个整数

s = input().split()a , b = list( map(int , s) )
print( a, b )  #1 2

一行输入多个整数

s = input().split()a = list(map(int , s))
print(a)

修改字符串的常用方法

        使用切片替换部分内容

s = "hello, world"
s = s[:5] + "Python"  # 将 "hello" 替换为 "Python"
print(s)  # 输出: "Python, world"

        使用字符串的 replace() 方法

s = "hello, world"
s = s.replace("hello", "Python")
print(s)  # 输出: "Python, world"

        使用列表操作,然后使用字符串的 join() 方法

s = "hello, world"
s_list = list(s)
s_list[0] = 'P'  # 替换第一个字符
s = ''.join(s_list)
print(s)  # 输出: "Pello, world"

        使用字符串的格式化方法

s = "hello, world"
s = "{} {}".format("Python", s.split(" ")[1])
print(s)  # 输出: "Python, world"

format 格式化

formatted_string = "Some text with {} and {}".format(value1, value2)
formatted_string = "Some text with {1} and {0}".format(value1, value2)
pi = 3.141592653589793
formatted_pi = "Value of pi: {:.2f}".format(pi)  # 控制小数点后保留两位
print(formatted_pi)  # Output: Value of pi: 3.14

 

'''python实现下列需求开放式编程:对于给定的一.大段不规范的英文文本,对其进行排版:单词和单词之间有一个空格句子中的符号和前一个单词之间没有空格句子之间一一个空格分隔句子首字母大写,其他字母小写按照换行符划分段落,输出时每段空两个空格输出时每行80个字符,对于单个单词-行超过80个单词,直接下一-行输出该单词
'''
def format_text(text):formatted_text = ""paragraphs = text.split('\n\n')  # 根据换行符划分段落for paragraph in paragraphs:lines = []words = paragraph.split()line_length = 0line = ""for word in words:if line_length + len(word) + 1 <= 80:  # 考虑空格的长度if line_length == 0:line += word.capitalize()else:line += " " + word.lower()line_length += len(word) + 1else:lines.append(line)line = word.capitalize()line_length = len(word)lines.append(line)formatted_paragraph = "  ".join(lines)  # 每段空两个空格formatted_text += formatted_paragraph + "\n\n"return formatted_text# 示例文本
unformatted_text = """
this is a test. i am writing a python program to format text.
it's a simple program, but it should work well.
let's see how it goes.
"""formatted_text = format_text(unformatted_text)
print(formatted_text)

7.4 字典 

键: key, 值: value, 通过key来找value, key必须唯一, 因此同一个key只能对应着一个value

  • Python中用{}表示字典,可以使用{}创建一个字典
  • 字典中的key和value之间用冒号:分隔,元素之间用逗号,分隔。
  • 字典的key只能为数字、字符串、元组,大多数情况使用字符串作为key
  • 如果键重复,那么重复键对应的值后面会把前面的值覆盖掉,但是位
    置还是原来的位置
  • value的类型没有限制
#创建了一个空字典
a={}
print("type (a) = ", type (a) )
print("a = ", a)
#创建字典
a = {'a':123,  'b' :456, 0:789}
print("type (a) = ", type (a))
print("a = ", a)'''
type (a) =  <class 'dict'>
a =  {}
type (a) =  <class 'dict'>
a =  {'a': 123, 'b': 456, 0: 789}
'''

扩展: 不定长参数(位置参数和关键字参数)

def func(*args):print(args)func(1,2,3,4)
def func( a, *args ):print( args )func( 1, 2, 3, 4 )
def func( *args, a ):print( args )func( 1, 2, 3, a = 4 )
def func( a, **args ): #参数以字典形式传输,双星号不定长放到关键字参数后print( args )func( a = 1, b = 2, c = 3, d = 4 )

创建字典的六种方式
① 直接在空字典 {} 里面写键值对

a = {'name': 'Tom', 'age': 28}
print(a)


② 定义一个空字典,再往里面添加键值对

a = {} # a = dict()
a['name'] = 'Tom'
a['age'] = 28
print(a)


③ 把键作为关键字传入

a = dict(name="Tom", age=28)
print(a)


④ 可迭代对象方式来构造字典

a = dict([("name", "Tom"), ("age", 28)]) # 这里用元组/列表/集合都是可以的
print(a)


⑤ 通过 zip() 把对应元素打包成元组,类似于上一种方法
 

a = dict(zip(["name", "age"], ["Tom", 28]))
print(a)

⑥ 利用类方法 fromkeys() 创建

d = my_dict( name = 'Tony', age = 28, height = 188 )
print( d )


dict(**kwarg) / dict(mapping) / dict(iterable)
用于创建一个字典并返回

print(dict(one=1, two=2, three=3)) # 传入关键字来构造字典
print(dict(zip(["one", "two", "three"], [1, 2, 3]))) #映射函数方式来构造字典
print(dict([("one", 1), ("two", 2), ("three", 3)])) # 可迭代对象方式来构造字典
def my_dict( **kwargs ):return kwargsd = my_dict( name = 'Tony', age = 28, height = 188 )
print( d )d = dict( name = 'Tony', age = 28, height = 188 )
print( d )


zip(*iterables)

  • 返回一个元组的迭代器,其中的第 i 个元组包含来自每个可迭代对象
  • 的第 i 个元素
  • 当所输入可迭代对象中最短的一个被耗尽时,迭代器将停止迭代
  • 不带参数时,它将返回一个空迭代器
  • 当只有一个可迭代对象参数时,它将返回一个单元组的迭代器
result1 = zip( "abcd", "efgh" )
print(list( result1 ))result2 = zip( "abcd", "efg" )
print(list( result2 ))result3 = zip( )
print(list( result3 ))result4 = zip( "abcd" )
print(list( result4 ))

字典的对象方法

        

 7.5 集合

Python中的集合和数学中的集合概念一样, 存储不重复的元素。
集合中的元素都是唯一的,互不相同
集合中只能存储不可变的数据:数字、字符串、元组。
Python用{}表示集合,其中的元素用逗号分隔。
Python集合可以改变,不是序列,是无序的。

创建集合的方式:

  • {元素1,元素2,元素3...}:把大括号中的所有元素构造成一个集合,如果有重复元素,只保留1个
  • {}: 这是空字典,不是空集合
  • set(x): 把x转换成集合,x一般为列表、元组等
  • set(): 空集

set([iterable])
●返回一个新的set对象,其元素来自于iterable, 如果未指定
iterable,则将返回空集合

frozenset([iterable])
●返回一个新的frozenset对象,即不可变的集合,其元素来自于
iterable,如果未指定参数,则返回冻结的空集合
●作用: set中的元素必须是不可变类型的,而frozenset是可以作为set元素的

利用集合特性进行 去重 和 关系测试

#把一个列表变成集合,就会自动去掉重复的元素
li=[1, 2, 5, 7, 7, 4, 5]
a = set( li )
print(a)
#测试多组集合数据之间的交集、差集、并集等关系
a =set("abdefga")
b = set("abc")
c = set("aef")
print(c <= a)
#判断c是否是a的子集
print(a - b)
#返回a和b的差集
print(a| b)
#返回a和b的并集
print(a & b)
#返回a和b的交集
print(a ^ b)
#返回a和b中不同时存在的元素(对称差)
print(a | b| c)

 集合对象的方法 set frozenset对象都可用

        isdisjoint(other)
        ●other: Iterable
        ●如果集合中没有与other共有的元素则返回True(注意变量类型)

str1 = "145"
list1 = [1, 4]
dic1 = {1:"1"}
set1 = {"1", 2, 3}
print(set1. isdisjoint(str1) )
#False
print(set1. isdisjoint(list1))
#True
print(set1. isdisjoint(dic1) )
#True
fset = frozenset(["1", 2, 3])
print(fset. isdisjoint(str1))
print(fset. isdisjoint(list1) )
print(fset. isdisjoint(dic1) )

         issubset(other)
        ●other: Iterable
        ●如果集合中的每个元素都在other之中,则返回True .
        ●对应的运算符版本set <= other要求参数为集合

str1 = "132"
list1 = [1, 4, "1", "2"]
dic1 = {1:"1",  2:"2"}
set1 = {"1",  "2"}
print(set1. issubset(str1) )
#True
print(set1. issubset(list1) )
#True
print(set1. issubset(dic1) )
# False
fset = frozenset(["1", "2"])
print(fset. issubset(str1) )
print(fset. issubset(list1) )
print(fset. issubset(dic1) )

         issuperset(other)
        ●other: Iterable
        ●如果other中的每个元素都在集合之中,则返回True
        ●对应的运算符版本set >= other要求参数为集合

str1 = "12"
list1 = [1, "2"]
dic1 = {1:"1", 2:"2"}
set1 = {"1",  "2", 1, 3}
print( set1.issuperset(str1) )
#True
print(set1. issuperset(list1) )
#True
print(set1. issuperset(dic1) )
# False
fset = frozenset(["1", "2", 1, 3])
print(fset. issuperset(str1) )
print(fset. issuperset(list1))
print(fset. issuperset(dic1) )

         union(*others)
        ●others: Iterable
        ●返回一个新集合,其中包含来自原集合以及others指定的所有集合中的元素(即并集)
        ●对应的运算符版本set|other|...要求参数为集合

s1 = {'a', 'c', 'f', 1, 2, 3}
print(s1.union('acf123', {4:5, 6:7}))

        intersection(*others)
        ●others: Iterable
        ●返回一个新集合,其中包含原集合以及others指定的所有集合中共有的元素(即交集)
        ●对应的运算符版本set & other & ...要求参数为集合

s1 = {'a', 'c', 'f', 1, 2, 3}
print(s1.intersection('acf123'))

        difference(*others)
        ●others: Iterable
        ●返回一个新集合,其中包含原集合中在others指定的其他集合中不存在的元素(即差集)
        ●对应的运算符版本set - other- ... 要求参数为集合

str1 = "12"
list1 = [1, "2"]
dic1 = {"1":1, "2":2}
set1 ={"1", "2", 1, 3}
print(set1.difference(str1, list1,  dic1) )
fset = frozenset(["1",  "2", 1, 3] )
print( fset. difference(str1, list1, dic1))

        symmetric_ difference(other)
        ●other: Iterable
        ●返回一个新集合,其中的元素或属于原集合或属于other指定的其他集合,但不能同时属于两者(即对称差)
        ●对应的运算符版本set^ other要求参数为集合
 

集合遍历操作:

  • 与遍历list一样, for x in a,其中a是set, x是循环变量
  • s.clear():清空集合
  • X in S:
  • 判断是否存在
  • len(s):集合元素个数
s = {1,2 ,3,4}
for x in s:print (x)
print ( sum(s), max(s) , min(s) )

 集合对象的方法 仅set 对象都可用

        set.update(*others)
        ●others: Iterable
        ●更新集合,添加来自others中的所有元素

        set.intersection_ _update(*others)
        ●others: Iterable
        ●更新集合,只保留其中在所有others中也存在的元素.
 

        set.difference_ update(*others)
        ●others: Iterable
        ●更新集合,移除其中也存在于任意一个others中的元素
 

        set.symmetric_ difference_ update(other)
        ●other: Iterable
        ●更新集合,只保留存在于一-方而非共同存在的元素
 

        set. add(elem)
        ●将元素elem添加到集合中。如果元素已经存在,则没有影响
 

        set.remove(elem)
        ●从集合中移除元素elem。 如果elem不存在于集合中则会引发KeyError
 

        set.discard(elem)
        ●从集合中移除元素elem。如果elem不存在于集合中则不做任何操作
 

        set.pop()
        ●从集合中移除并返回任意一个元素。如果集合为空则会引发KeyError
         set.clear()
        ●从集合中移除所有元素

s = {1, 2, 3}
t = {2, 3, 4}print ( "交集:", s.intersection(t) )
print ( "并集:", s.union(t) )
print ("差集:", s.difference(t) )
print ("对称集:", s.symmetric_difference(t) )

输入若干数字,将所有元素去重后输出数字:

s = list (map(int, input().split())) 
a = set (s)
print (a)
'''
维护-一个数据结构管理表格,初始-个n行m列的表格,元素均为
空,需要完成若干次操作:set x y value:将表格第x行第y列设置为valuefindxy:查询第x行第y列对应的值del x y:删除第x行第y列的值Many value:查找value 是否在表格中,如果在表格中则出现次
数为多少
'''

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/711558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不知道伦敦银模拟账户该如何使用?至少3个用法

由于模拟交易的特别属性&#xff0c;很多人对模拟交易并不用心&#xff0c;假的资金用心干什么&#xff1f;就算交易得再好&#xff0c;盈利得再多&#xff0c;假的资金会变成真的吗&#xff1f;因此当然不会这么用心对待伦敦银模拟账户交易账户。实际上&#xff0c;这种观点是…

List集合的Stream流式操作实现数据类型转换

目录 问题现象&#xff1a; 问题分析&#xff1a; 解决方法&#xff1a; 拓展&#xff1a; 1、Collectors.toList() 2、Collectors.toCollection(ArrayList::new) 3、Collectors.toCollection(LinkedList::new) 4、Collectors.toCollection(LinkedHashSet::new) 5、Collector…

MAC M1 安装mongodb7.0.5 版本

1、进入官网 Download MongoDB Community Server | MongoDBDownload MongoDB Community Server non-relational database to take your next big project to a higher level!https://www.mongodb.com/try/download/community 2、选择版本 3、下载后解压 放到 /usr/local 并修改…

Facebook Messenger链接分享:如何创建链接并设置自动化内容

Facebook Messenger链接是指基于Facebook用户名创建的会话链接&#xff0c;用户可以在其Facebook页面的设置部分复制此链接进行分享。然后将该链接直接粘贴到独立站、电子邮件、名片或社交媒体中&#xff0c;让目标受众可以一键进入对话。为了满足某些商家的需求&#xff0c;Fa…

vue3中的ref和reactive的区别

vue3中的ref和reactive的区别 1、响应式数据2、ref3、reactive4、ref VS reactive5、往期回顾总结&#xff1a; 1、响应式数据 处理响应式数据时到底是该用ref还是reactive... 响应式数据是指在 Vue.js 中&#xff0c;当数据发生变化时&#xff0c;相关的视图会自动更新以反映…

【bash】2、手把手实现一个 bash shell:多个机器批量执行 shell 命令,支持 ip 补全

文章目录 一、需求&#xff1a;多台机器批量远程执行 shell 命令1.1 业务需求拆解为脚本需求1.2 帮助函数&#xff1a;使用说明文档1.3 main 函数框架 二、功能&#xff1a;单机 sshp 执行2.1 fullip 函数&#xff1a;实现 ip 补全2.1.1 参数说明2.1.2 定义全局变量2.1.3 实现&…

Pytorch 复习总结 4

Pytorch 复习总结&#xff0c;仅供笔者使用&#xff0c;参考教材&#xff1a; 《动手学深度学习》Stanford University: Practical Machine Learning 本文主要内容为&#xff1a;Pytorch 深度学习计算。 本文先介绍了深度学习中自定义层和块的方法&#xff0c;然后介绍了一些…

基于Beego 1.12.3的简单website实现

参考 用Beego开发web应用 https://www.cnblogs.com/zhangweizhong/p/10919672.htmlBeego官网 Homepage - beego: simple & powerful Go app frameworkbuild-web-application-with-golang https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/pr…

源码的角度分析Vue2数据双向绑定原理

什么是双向绑定 我们先从单向绑定切入&#xff0c;其实单向绑定非常简单&#xff0c;就是把Model绑定到View&#xff0c;当我们用JavaScript代码更新Model时&#xff0c;View就会自动更新。那么双向绑定就可以从此联想到&#xff0c;即在单向绑定的基础上&#xff0c;用户更新…

微信开发者工具-代码管理和码云Github远程仓库集成

目录 思考&#xff1a;IDE如何进行代码管理 代码管理方式 一、自身提供服务 二、Git 扩展 1、环境准备 2、创建项目代码 3、进行项目Git初始化 4、在码云新建远程仓库 5、将项目进行远程仓库关联 三、SVN扩展 四、代码管理 思考&#xff1a;IDE如何进行代码管理 初识开…

StarRocks实战——贝壳找房数仓实践

目录 前言 一、StarRocks在贝壳的应用现状 1.1 历史的数据分析架构 1.2 OLAP选型 1.2.1 离线场景 1.2.2 实时场景 1.2.3 StarRocks 的引入 二、StarRocks 在贝壳的分析实践 2.1 指标分析 2.2 实时业务 2.3 可视化分析 三、未来规划 3.1 StarRocks集群的稳定性 3…

PMP考试培训费用多少钱?

PMP考试的相关费用包括报名费用、培训费用和证书续证费用三个部分。 一、PMP考试报名费用&#xff1a; 首次报考费用为3900元&#xff0c;如果未通过考试可以在英文报名有效期内进行补考报名&#xff0c;补考费用为2500元。 付费方式是在项目管理学会官方网站上提交报考资料…

企业数字化转型的第一步:由被动多云向主动多云转变

随着经济环境、市场形势、技术发展、用户需求等诸多因素的变化&#xff0c;数字化转型为企业进一步提升效率和竞争力、提供更加丰富的个性化产品和服务、进行业务场景创新、探寻新的增长机会和运营模式提供了崭新的途径。越来越多的企业意识到&#xff0c;数字化转型已不是企业…

第1篇 Linux Docker安装rabbitmq

Docker安装RabbitMq 1、搜索rabbitmq镜像 docker search rabbitmq2、下载rabbitmq镜像 docker pull rabbitmq3、运行rabbitmq服务 docker run -d --name rabbitmq --restart always -p 15672:15672 -p 5672:5672 rabbitmq4、访问rabbitmq http://192.168.1.x:15672 5、rab…

亚信安慧AntDB:打破数据孤岛,实现实时处理

AntDB数据库以其独特的创新能力在分布式数据库领域引领潮流。其中&#xff0c;融合统一与实时处理是其两大核心创新能力&#xff0c;为其赢得广泛关注与赞誉。融合统一意味着AntDB能够将多种不同类型的数据库融合为一体&#xff0c;实现数据的统一管理与处理&#xff0c;极大地…

电视盒子什么品牌好?资深数码粉强推口碑电视盒子推荐

我对各类数码产品是非常熟悉的&#xff0c;尤其是电视盒子&#xff0c;用过超十五款了&#xff0c;涵盖了各个主流品牌&#xff0c;最近看到很多朋友在讨论不知道电视盒子什么品牌好&#xff0c;我这次要来分享的就是口碑最好的五款电视盒子推荐给各位不懂如何选电视盒子的新手…

AI、AIGC、AGI、ChatGPT它们的区别?

今天咱们聊点热门话题&#xff0c;来点科普时间——AI、AIGC、AGI和ChatGPT到底是啥&#xff1f;这几个词听起来好像挺神秘的&#xff0c;但其实它们就在我们生活中。让我们一起探索这些术语的奥秘&#xff01; AI&#xff08;人工智能&#xff09;&#xff1a;先说说AI&#…

电梯物联网之梯控相机方案-防止电瓶车进电梯

梯控现状 随着电梯产品在智能化建筑的日益普及,对于电梯的智能化管理 安全性需求 的要求越来越迫切。尤其今年来随着电瓶车的大量普及&#xff0c;发起多起楼道、轿厢电瓶车着火恶性事件&#xff0c; 造成了极大的社会 负面影响。控制电瓶车进入单元门&#xff0c;楼道以及电梯…

Vue官网“食用指南”

把Vue官网当做一个工具来用&#xff0c;有问题&#xff0c;先来官网查一查。 官网中常用的板块 官网&#xff1a;https://cn.vuejs.org/上手后&#xff0c;最常用的模块是【快速上手】【API】。所以务必要知道这两个模块在哪里&#xff0c;怎么使用。![image.png](https://img…

快速开发一个鸿蒙的页面

文章目录 前言常用组件快速开启简单的鸿蒙页面总结 一、前言 鸿蒙要想快速上手&#xff0c;那么就需要对基础的组件使用比较熟悉&#xff0c;这里就罗列开发中常见的基础组件的使用。 只要是写android的&#xff0c;对于这些组件的使用还是能很快上手的&#xff0c;只要多多…