周报

Python

Python 集合

集合(Set)

集合是无序和无索引的集合。在 Python 中,集合用花括号编写。

例:

thisset = {"apple", "banana", "cherry"}
print(thisset)

注释:集合是无序的,因此您无法确定项目的显示顺序。

访问项目

您无法通过引用索引来访问 set 中的项目,因为 set 是无序的,项目没有索引。

但是您可以使用 for 循环遍历 set 项目,或者使用 in 关键字查询集合中是否存在指定值。

实例

更改项目

集合一旦创建,您就无法更改项目,但是您可以添加新项目。

添加项目

要将一个项添加到集合,请使用 add() 方法。

要向集合中添加多个项目,请使用 update() 方法。
实例

使用 update() 方法将多个项添加到集合中:

thisset = {"apple", "banana", "cherry"}

thisset.update(["orange", "mango", "grapes"])

print(thisset)

在这里插入图片描述

合并两个集合

在 Python 中,有几种方法可以连接两个或多个集合。

您可以使用 union() 方法返回包含两个集合中所有项目的新集合,也可以使用 update() 方法将一个集合中的所有项目插入另一个集合中:

实例

union() 方法返回一个新集合,其中包含两个集合中的所有项目:

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}

set3 = set1.union(set2)
print(set3)

update() 方法将 set2 中的项目插入 set1 中:

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}

set1.update(set2)
print(set1)

注释:union() 和 update() 都将排除任何重复项。

set方法

在这里插入图片描述

Python While 循环

如果使用 while 循环,只要条件为真,我们就可以执行一组语句。

实例

只要 i 大于 7,打印 i:

i = 1
while i < 7:
  print(i)
  i += 1

注释:请记得递增 i,否则循环会永远继续。(死循环)

while 循环需要准备好相关的变量。在这个实例中,我们需要定义一个索引变量 i,我们将其设置为 1。

break 语句

如果使用 break 语句,即使 while 条件为真,我们也可以停止循环

continue 语句

如果使用 continue 语句,我们可以停止当前的迭代,并继续下一个

break语句和continue语句作用与C语言相同

Python For 循环

for 循环用于迭代序列(即列表,元组,字典,集合或字符串)。

这与其他编程语言中的 for 关键字不太相似,而是更像其他面向对象编程语言中的迭代器方法。

通过使用 for 循环,我们可以为列表、元组、集合中的每个项目等执行一组语句。

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  print(x)

提示:for 循环不需要预先设置索引变量。

range() 函数

如需循环一组代码指定的次数,我们可以使用 range() 函数,

range() 函数返回一个数字序列,默认情况下从 0 开始,并递增 1(默认地),并以指定的数字结束。
注意:range(10) 不是 0 到 10 的值,而是值 0 到 9。

range() 函数默认 0 为起始值,不过可以通过添加参数来指定起始值:range(3, 10),这意味着值为 3 到 10(但不包括 10)
range() 函数默认将序列递增 1,但是可以通过添加第三个参数来指定增量值:range(2, 30, 3)

for x in range(3, 50, 6):
  print(x)

在这里插入图片描述

For 循环中的 Else

for 循环中的 else 关键字指定循环结束时要执行的代码块

for x in range(10):
  print(x)
else:
  print("Finally finished!")
嵌套循环

嵌套循环是循环内的循环。

“外循环”每迭代一次,“内循环”将执行一次

pass 语句

for 语句不能为空,但是如果您处于某种原因写了无内容的 for 语句,请使用 pass 语句来避免错误。

Python 函数

函数是一种仅在调用时运行的代码块。
您可以将数据(称为参数)传递到函数中。
函数可以把数据作为结果返回。

创建函数

在 Python 中,使用 def 关键字定义函数

def my_function():
  print("Hello from a function")
调用函数

如需调用函数,请使用函数名称后跟括号

参数

信息可以作为参数传递给函数。

参数在函数名后的括号内指定。您可以根据需要添加任意数量的参数,只需用逗号分隔即可。

下面的例子有一个带参数(fname)的函数。当调用此函数时,我们传递一个名字,在函数内部使用它来打印全名:

实例

def my_function(fname):
  print(fname + " Gates")

my_function("Rory John")
my_function("Jennifer Katharine")
my_function("Phoebe Adele")

在这里插入图片描述

默认参数值

下面的例子展示如何使用默认参数值。

如果我们调用了不带参数的函数,则使用默认值:

实例

def my_function(country = "China"):
  print("I am from " + country)

my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")
以 List 传参

您发送到函数的参数可以是任何数据类型(字符串、数字、列表、字典等),并且在函数内其将被视为相同数据类型。

例如,如果您将 List 作为参数发送,它到达函数时仍将是 List(列表)

def my_function(food):
  for x in food:
    print(x)

fruits = ["apple", "banana", "cherry"]

my_function(fruits)

在这里插入图片描述

关键字参数

您还可以使用 key = value 语法发送参数。

参数的顺序无关紧要。

实例

def my_function(child3, child2, child1):
  print("The youngest child is " + child3)

my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")

在 Python 文档中,“关键字参数”一词通常简称为 kwargs。

任意参数

如果您不知道将传递给您的函数多少个参数,请在函数定义的参数名称前添加 *。

这样,函数将接收一个参数元组,并可以相应地访问各项

递归

Python 也接受函数递归,这意味着定义的函数能够调用自身。

递归是一种常见的数学和编程概念。它意味着函数调用自身。这样做的好处是可以循环访问数据以达成结果。

开发人员应该非常小心递归,因为它可以很容易地编写一个永不终止的,或者使用过量内存或处理器能力的函数。但是,在被正确编写后,递归可能是一种非常有效且数学上优雅的编程方法。

SQL

SQL FOREIGN KEY 约束

一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。
例:
“Persons” 表:
在这里插入图片描述
“Orders” 表:
在这里插入图片描述
“Orders” 中的 “Id_P” 列指向 “Persons” 表中的 “Id_P” 列。

“Persons” 表中的 “Id_P” 列是 “Persons” 表中的 PRIMARY KEY。

“Orders” 表中的 “Id_P” 列是 “Orders” 表中的 FOREIGN KEY。

FOREIGN KEY 约束用于预防破坏表之间连接的动作。

FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

SQL FOREIGN KEY Constraint on CREATE TABLE

下面的 SQL 在 “Orders” 表创建时为 “Id_P” 列创建 FOREIGN KEY:
MySQL:


CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)

命名 FOREIGN KEY 约束,以及为多个列定义 FOREIGN KEY 约束

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
)
撤销 FOREIGN KEY 约束

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

SQL CHECK 约束

CHECK 约束用于限制列中的值的范围。

如果对单个列定义 CHECK 约束,那么该列只允许特定的值。

如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。
SQL CHECK Constraint on CREATE TABLE

下面的 SQL 在 “Persons” 表创建时为 “Id_P” 列创建 CHECK 约束。CHECK 约束规定 “Id_P” 列必须只包含大于 0 的整数。

My SQL:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (Id_P>0)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Persons
(
Id_P int NOT NULL CHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

命名 CHECK 约束,以及为多个列定义 CHECK 约束

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)
撤销 CHECK 约束

SQL Server / Oracle / MS Access:

ALTER TABLE Persons
DROP CONSTRAINT chk_Person

MySQL:

ALTER TABLE Persons
DROP CHECK chk_Person
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值