【Python】从入门到上头—Python基础(2)

news2024/11/22 21:08:38

文章目录

  • 一.基础语法
    • 1.编码
    • 2.标识符
    • 3.保留字
    • 4.注释
    • 5.行与缩进
    • 6.多行语句
    • 7.数字(Number)类型
    • 8.字符串(String)
    • 9.空行
    • 10.等待用户输入
    • 11.同一行显示多条语句
    • 12.多个语句构成代码组
    • 13.print 输出
    • 14.import 与 from...import
  • 二.基本数据类型
    • 1.变量和赋值
    • 2.多个变量赋值
    • 3.标准数据类型
    • 4.Number(数字)
    • 5.数值运算
    • 6.String(字符串)
    • 7.bool(布尔类型)
    • 8.List(列表)
    • 9.Tuple(元组)
    • 10.Set(集合)
    • 11.Dictionary(字典)
    • 12.Python数据类型转换
  • 三.运算符
  • 四.条件判断
    • 1.if 语句
    • 2.if 嵌套
    • 3.match...case
  • 五.循环
    • 1.while 循环
    • 2.无限循环
    • 3.while 循环使用 else 语句
    • 4.简单语句组
    • 5.for循环
    • 6.for...else
    • 7.range() 函数
    • 8.break 和 continue 语句及循环中的 else 子句
    • 9.pass 语句

一.基础语法

1.编码

默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是unicode字符串。 当然你也可以为源码文件指定不同的编码:

# -*- coding: cp-1252 -*-

2.标识符

  • 首字母必须是字母表中字母或下划线 _
  • 标识符的其他的部分由字母、数字和下划线组成。
  • 标识符对大小写敏感。

在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。

3.保留字

即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

import keyword
keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 
'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from',
 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or',
  'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

4.注释

Python 中单行注释以 # 开头

# 这是一个注释
print("Hello, World!")

多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来,例如:

#!/usr/bin/python3
 
# 第一个注释
# 第二个注释
 
'''
第三注释
第四注释
'''
 
"""
第五注释
第六注释
"""
print ("Hello, Python!")

5.行与缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {}

  • 缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:
if True:
    print ("True")
else:
    print ("False")

以下代码最后一行语句缩进数的空格数不一致,会导致运行错误:

if True:
    print ("Answer")
    print ("True")
else:
    print ("Answer")
  print ("False")    # 缩进不一致,会导致运行错误
 File "test.py", line 6
    print ("False")    # 缩进不一致,会导致运行错误
                                      ^
IndentationError: unindent does not match any outer indentation level

6.多行语句

Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句,例如:

total = item_one + \
        item_two + \
        item_three

7.数字(Number)类型

  • int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
  • bool (布尔), 如 True。
  • float (浮点数), 如 1.23、3E-2
  • complex (复数), 如 1 + 2j、 1.1 + 2.2j

8.字符串(String)

  • Python 中单引号 ' 和双引号 " 使用完全相同。
  • 使用三引号(''' 或 """)可以指定一个多行字符串。
  • 转义符 \。反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。 如 r"this is a line with \n" 则 \n 会显示,并不是换行。
  • 按字面意义级联字符串,如 "this " "is " "string" 会被自动转换为 this is string。
  • 字符串可以用 + 运算符连接在一起,用 * 运算符重复。
  • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始
  • Python 中的字符串不能改变。
  • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
  • 字符串的截取的语法格式如下:变量[头下标:尾下标:步长]
word = '字符串'
sentence = "这是一个句子。"
paragraph = """这是一个段落,
可以由多行组成"""
#!/usr/bin/python3
 
str='123456789'
 
print(str)                 # 输出字符串
print(str[0:-1])           # 输出第一个到倒数第二个的所有字符
print(str[0])              # 输出字符串第一个字符
print(str[2:5])            # 输出从第三个开始到第六个的字符(不包含)
print(str[2:])             # 输出从第三个开始后的所有字符
print(str[1:5:2])          # 输出从第二个开始到第五个且每隔一个的字符(步长为2)
print(str * 2)             # 输出字符串两次
print(str + '你好')         # 连接字符串
 
print('------------------------------')
 
print('hello\nrunoob')      # 使用反斜杠(\)+n转义特殊字符
print(r'hello\nrunoob')     # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

以上实例输出结果:

123456789
12345678
1
345
3456789
24
123456789123456789
123456789你好
------------------------------
hello
runoob
hello\nrunoob

9.空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始
- 类和函数入口之间也用一行空行分隔,以突出 函数入口的开始 。

  • 是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

记住:空行也是程序代码的一部分

10.等待用户输入

执行下面的程序在按回车键后就会等待用户输入:

#!/usr/bin/python3
input("\n\n按下 enter 键后退出。")

11.同一行显示多条语句

Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割

#!/usr/bin/python3
import sys; x = 'runoob'; sys.stdout.write(x + '\n')

12.多个语句构成代码组

缩进相同的一组语句构成一个代码块,我们称之代码组。

  • 像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

我们将首行及后面的代码组称为一个子句(clause)。

if expression : 
   suite
elif expression : 
   suite 
else : 
   suite

13.print 输出

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""

x="a"
y="b"
# 换行输出
print( x )
print( y )
 
print('---------')
# 不换行输出
print( x, end=" " )
print( y, end=" " )
print()

以上实例执行结果为:

a
b
---------
a b

14.import 与 from…import

在 python 用import或者from...import来导入相应的模块。

  • 将整个模块(somemodule)导入,格式为: import somemodule

  • 从某个模块中导入某个函数,格式为: from somemodule import somefunction

  • 从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc

  • 将某个模块中的全部函数导入,格式为: from somemodule import *

导入 sys 模块

import sys
print('================Python import mode==========================')
print ('命令行参数为:')
for i in sys.argv:
    print (i)
print ('\n python 路径为',sys.path)

导入 sys 模块的 argv,path 成员

from sys import argv,path  #  导入特定的成员
 
print('================python from import===================================')
print('path:',path) # 因为已经导入path成员,所以此处引用时不需要加sys.path

二.基本数据类型

1.变量和赋值

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

  • 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型

    • 等号(=)用来给变量赋值。
counter = 100          # 整型变量
miles   = 1000.0       # 浮点型变量
name    = "runoob"     # 字符串

print (counter)
print (miles)
print (name)

2.多个变量赋值

Python允许你同时为多个变量赋值。例如:

a = b = c = 1

以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。

您也可以为多个对象指定多个变量。例如:

a, b, c = 1, 2, "run"

以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 “run” 分配给变量 c。

3.标准数据类型

  • Number(数字)
  • String(字符串)
  • bool(布尔类型)
  • List(列表)
  • Tuple(元组)
  • Set(集合)
  • Dictionary(字典)

Python3 的六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

4.Number(数字)

Python3 支持 int、float、bool、complex(复数)。

a, b, c, d = 20, 5.5, True, 4+3j

5.数值运算

5 + 4  # 加法
9

4.3 - 2 # 减法
2.3

3 * 7  # 乘法
21

2 / 4  # 除法,得到一个浮点数
0.5

2 // 4 # 除法,得到一个整数
0

17 % 3 # 取余 
2

2 ** 5 # 乘方
32

在这里插入图片描述

6.String(字符串)

Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。

字符串的截取的语法格式如下:

变量[头下标:尾下标]

在这里插入图片描述

索引值以 0 为开始值,-1 为从末尾的开始位置。

加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,与之结合的数字为复制的次数。实例如下:

str = 'Runoob'

print (str)          # 输出字符串
print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
print (str[0])       # 输出字符串第一个字符
print (str[2:5])     # 输出从第三个开始到第五个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str * 2)      # 输出字符串两次,也可以写成 print (2 * str)
print (str + "TEST") # 连接字符串

执行以上程序会输出如下结果:

Runoob
Runoo
R
noo
noob
RunoobRunoob
RunoobTEST

7.bool(布尔类型)

在 Python 中,True 和 False 都是关键字,表示布尔值。

a = True
b = False

# 比较运算符
print(2 < 3)   # True
print(2 == 3)  # False

# 逻辑运算符
print(a and b)  # False
print(a or b)   # True
print(not a)    # False

# 类型转换
print(int(a))   # 1
print(float(b)) # 0.0
print(str(a))   # "True"

8.List(列表)

List(列表) 是 Python 中使用最频繁的数据类型。

  • 完成大多数集合类的数据结构实现。

  • List写在方括号[]]之间,元素用逗号隔开,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

  • 和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表

  • List中的元素是可以改变的。
    列表截取的语法格式如下:

变量[头下标:尾下标]

索引值以 0 为开始值,-1 为从末尾的开始位置。
在这里插入图片描述
加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:

list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
tinylist = [123, 'runoob']

print (list)            # 输出完整列表
print (list[0])         # 输出列表第一个元素
print (list[1:3])       # 从第二个开始输出到第三个元素
print (list[2:])        # 输出从第三个元素开始的所有元素
print (tinylist * 2)    # 输出两次列表
print (list + tinylist) # 连接列表

以上实例输出结果:

['abcd', 786, 2.23, 'runoob', 70.2]
abcd
[786, 2.23]
[2.23, 'runoob', 70.2]
[123, 'runoob', 123, 'runoob']
['abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob']

与Python字符串不一样的是,列表中的元素是可以改变的

a = [1, 2, 3, 4, 5, 6]
a[0] = 9
a[2:5] = [13, 14, 15]
a
[9, 2, 13, 14, 15, 6]
a[2:5] = []   # 将对应的元素值设置为 []
a
[9, 2, 6]

Python 列表截取可以接收第3个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串:
在这里插入图片描述
如果第三个参数为负数表示逆向读取,以下实例用于翻转字符串:

def reverseWords(input): 
      
    # 通过空格将字符串分隔符,把各个单词分隔为列表
    inputWords = input.split(" ") 
  
    # 翻转字符串
    # 假设列表 list = [1,2,3,4],  
    # list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样) 
    # inputWords[-1::-1] 有三个参数
    # 第一个参数 -1 表示最后一个元素
    # 第二个参数为空,表示移动到列表末尾
    # 第三个参数为步长,-1 表示逆向
    inputWords=inputWords[-1::-1] 
  
    # 重新组合字符串
    output = ' '.join(inputWords) 
      
    return output 
  
if __name__ == "__main__": 
    input = 'I like runoob'
    rw = reverseWords(input) 
    print(rw)

输出结果

runoob like I

9.Tuple(元组)

  • 元组(tuple)与表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
  • 元组中的元素类型也可以不相同:
  • 元组也可以被索引和切片,方法一样。
  • 注意构造包含 0 或 1 个元素的元组的特殊语法规则。
  • 元组也可以使用+操作符进行拼接。
tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2  )
tinytuple = (123, 'runoob')

print (tuple)             # 输出完整元组
print (tuple[0])          # 输出元组的第一个元素
print (tuple[1:3])        # 输出从第二个元素开始到第三个元素
print (tuple[2:])         # 输出从第三个元素开始的所有元素
print (tinytuple * 2)     # 输出两次元组
print (tuple + tinytuple) # 连接元组

结果

('abcd', 786, 2.23, 'runoob', 70.2)
abcd
(786, 2.23)
(2.23, 'runoob', 70.2)
(123, 'runoob', 123, 'runoob')
('abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob')

元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取 其实,可以把字符串看作一种特殊的元组。

10.Set(集合)

  • Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素

    • 集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
  • 在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔

    • 另外,也可以使用 set() 函数创建集合。

注意:创建一个空集合必须用 set() 而不是 { },因为{ }是用来创建一个空字典。

创建格式:

parame = {value01,value02,...}
# 或者
set(value)
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}

print(sites)   # 输出集合,重复的元素被自动去掉

# 成员测试
if 'Runoob' in sites :
    print('Runoob 在集合中')
else :
    print('Runoob 不在集合中')


# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')

print(a)

print(a - b)     # a 和 b 的差集

print(a | b)     # a 和 b 的并集

print(a & b)     # a 和 b 的交集

print(a ^ b)     # a 和 b 中不同时存在的元素

结果

{'Zhihu', 'Baidu', 'Taobao', 'Runoob', 'Google', 'Facebook'}
Runoob 在集合中
{'b', 'c', 'a', 'r', 'd'}
{'r', 'b', 'd'}
{'b', 'c', 'a', 'z', 'm', 'r', 'l', 'd'}
{'c', 'a'}
{'z', 'b', 'm', 'r', 'l', 'd'}

11.Dictionary(字典)

  • 列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过key来存取的,而不是通过偏移存取

    • 字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合

    • 键(key)必须使用不可变类型。

    • 在同一个字典中,键(key)必须是唯一的。

dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2]     = "2 - 菜鸟工具"

tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}


print (dict['one'])       # 输出键为 'one' 的值
print (dict[2])           # 输出键为 2 的值
print (tinydict)          # 输出完整的字典
print (tinydict.keys())   # 输出所有键
print (tinydict.values()) # 输出所有值

结果

1 - 菜鸟教程
2 - 菜鸟工具
{'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}
dict_keys(['name', 'code', 'site'])
dict_values(['runoob', 1, 'www.runoob.com'])

构造函数 dict() 可以直接从键值对序列中构建字典如下:

dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
#{'Runoob': 1, 'Google': 2, 'Taobao': 3}

{x: x**2 for x in (2, 4, 6)}
#{2: 4, 4: 16, 6: 36}

dict(Runoob=1, Google=2, Taobao=3)
#{'Runoob': 1, 'Google': 2, 'Taobao': 3}

12.Python数据类型转换

隐式类型转换

  • 在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。
    • 对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。
    num_int = 123
    num_flo = 1.23
    
    num_new = num_int + num_flo
    
    print("num_int 数据类型为:",type(num_int))
    print("num_flo 数据类型为:",type(num_flo))
    
    print("num_new 值为:",num_new)
    print("num_new 数据类型为:",type(num_new))
    

显式类型转换
在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。 我们使用 int()、float()、str() 等函数来执行显式类型转换。

#int() 强制转换为整型:
x = int(1)   # x 输出结果为 1
y = int(2.8) # y 输出结果为 2
z = int("3") # z 输出结果为 3

#float() 强制转换为浮点型:
x = float(1)     # x 输出结果为 1.0
y = float(2.8)   # y 输出结果为 2.8
z = float("3")   # z 输出结果为 3.0
w = float("4.2") # w 输出结果为 4.2

#str() 强制转换为字符串类型:
x = str("s1") # x 输出结果为 's1'
y = str(2)    # y 输出结果为 '2'
z = str(3.0)  # z 输出结果为 '3.0'

在这里插入图片描述

三.运算符

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四.条件判断

1.if 语句

  1. 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
  2. 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
  3. 在 Python 中没有 switch…case 语句,但在 Python3.10 版本添加了 match…case,功能也类似,详见下文。
if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

实例

var1 = 100
if var1:
    print ("1 - if 表达式条件为 true")
    print (var1)
 
var2 = 0
if var2:
    print ("2 - if 表达式条件为 true")
    print (var2)
print ("Good bye!")

结果

1 - if 表达式条件为 true
100
Good bye!

2.if 嵌套

在嵌套 if 语句中,可以把 if...elif...else 结构放在另外一个 if…elif…else 结构中。

if 表达式1:
    语句
    if 表达式2:
        语句
    elif 表达式3:
        语句
    else:
        语句
elif 表达式4:
    语句
else:
    语句

实例

num=int(input("输入一个数字:"))
if num%2==0:
    if num%3==0:
        print ("你输入的数字可以整除 2 和 3")
    else:
        print ("你输入的数字可以整除 2,但不能整除 3")
else:
    if num%3==0:
        print ("你输入的数字可以整除 3,但不能整除 2")
    else:
        print  ("你输入的数字不能整除 2 和 3")

3.match…case

match subject:
    case <pattern_1>:
        <action_1>
    case <pattern_2>:
        <action_2>
    case <pattern_3>:
        <action_3>
    case _:
        <action_wildcard>

case _: 类似于 C 和 Java 中的 default:,当其他 case 都无法匹配时,匹配这条,保证永远会匹配成功。

例如

def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something's wrong with the internet"

mystatus=400
print(http_error(400))

五.循环

1.while 循环

语法

while 判断条件(condition):
    执行语句(statements)……

实例

n = 100
 
sum = 0
counter = 1
while counter <= n:
    sum = sum + counter
    counter += 1
 
print("1 到 %d 之和为: %d" % (n,sum))

结果

1100 之和为: 5050

2.无限循环

可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下:

var = 1
while var == 1 :  # 表达式永远为 true
   num = int(input("输入一个数字  :"))
   print ("你输入的数字是: ", num)
 
print ("Good bye!")
输入一个数字  :5
你输入的数字是:  5
输入一个数字  :
  • 你可以使用 CTRL+C 来退出当前的无限循环。
  • 无限循环在服务器上客户端的实时请求非常有用。

3.while 循环使用 else 语句

类似 if 语句的语法,如果你的 while 循环体中只有一条语句,你可以将该语句与 while 写在同一行中, 如下所示:

flag = 1
 
while (flag): print ('欢迎访问百度!')
 
print ("Good bye!")
注意:以上的无限循环你可以使用 CTRL+C 来中断循环。
欢迎访问百度教程!
欢迎访问百度教程!
欢迎访问百度教程!
欢迎访问百度教程!
欢迎访问百度教程!
……

4.简单语句组

5.for循环

Python for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。

语法

for <variable> in <sequence>:
    <statements>
else:
    <statements>

遍历集合

sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
    print(site)

结果

Baidu
Google
Runoob
Taobao

打印字符串中的每个字符:

word = 'abc'
 
for letter in word:
    print(letter)

结果

a
b
c

整数范围值可以配合 range() 函数使用:

#  1 到 5 的所有数字:
for number in range(1, 3):
    print(number)

结果

1
2
3

6.for…else

在 Python 中,for…else 语句用于在循环结束后执行一段代码

语法格式如下:

for item in iterable:
    # 循环主体
else:
    # 循环结束后执行的代码
  • 当循环执行完毕后,会执行 else 子句中的代码,如果在循环过程中遇到了 break 语句,则会中断循环,此时不会执行 else 子句。
for x in range(3):
  print(x)
else:
  print("Finally finished!")
0
1
2
3
Finally finished!
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
    if site == "Runoob":
        print("菜鸟教程!")
        break
    print("循环数据 " + site)
else:
    print("没有循环数据!")
print("完成循环!")

结果

循环数据 Baidu
循环数据 Google
菜鸟教程!
完成循环!

7.range() 函数

如果你需要遍历数字,可以使用内置 range() 函数。它会生成数列,例如:

for i in range(5):
    print(i)

0
1
2
3
4

也可以使用 range() 指定区间的值

for i in range(5,9) :
	print(i)
 
5
6
7
8

也可以使 range() 以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做'步长'):

for i in range(0, 10, 3) :
    print(i)
 
0
3
6
9

负数

for i in range(-10, -100, -30) :
    print(i)
    
-10
-40
-70

可以结合range() 和 len()函数以遍历一个序列的索引

a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
for i in range(len(a)):
	print(i, a[i])

0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ

8.break 和 continue 语句及循环中的 else 子句

  • break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。

  • continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

while 中使用 break:

n = 5
while n > 0:
    n -= 1
    if n == 2:
        break
    print(n)
print('循环结束。')
4
3
循环结束。

while 中使用 continue :

n = 5
while n > 0:
    n -= 1
    if n == 2:
        continue
    print(n)
print('循环结束。')
4
3
1
0
循环结束。

9.pass 语句

  • Python pass是空语句,是为了保持程序结构的完整性。

  • pass 不做任何事情,一般用做占位语句,如下实例

for letter in 'baidu': 
   if letter == 'i':
      pass
      print ('执行 pass 块')
   print ('当前字母 :', letter)
 
print ("Good bye!")
当前字母 : b
当前字母 : a
当前字母 : i
执行 pass 块
当前字母 : d
当前字母 : u
Good bye!

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

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

相关文章

win10某个软件字体模糊修复

1、在桌面找到该软件&#xff0c;右键选择属性&#xff0c;如下&#xff1a; 2、打开后选择兼容性--更改高DPI设置。 3、点击高DPI缩放替代--应用程序。 4、点击应用&#xff0c;然后退出属性设置。重新打开软件&#xff0c;发现软件字体变得清晰了。

MySQL 保存日期用哪种数据类型

写在前面 在设计数据库表时不可避免的需要用到时间类型&#xff0c;到底选择那种数据类型来表示时间是一个值的讨论的问题&#xff0c;本文就一起来看下&#xff01; 1&#xff1a;能用哪些数据类型 1:字符串&#xff1a;不要用,占用空间大&#xff0c;至少需要19个字节&…

STM32CubeMx配置HAL库编码器测速

编码器概述 编码器是一种用来测量机械旋转或位移的传感器。它能够测量机械部件在旋转或直线运动时的位移位置或速度等信息&#xff0c;并将其转换成一系 列电信号。按照读出方式编码器可以分为接触式和非接触式两种&#xff1b;按照工作原理编码器可分为增量式和绝对式两类。编…

全局ID生成方式

全局ID生成方式 目录 1. 全局唯一id介绍 1.1 特点 2. 常见的全局唯一id生成策略 2.1 利用数据库自增字段生成id2.2 UUID2.3 Redis生成id2.4 zookeeper生成ID2.5 Twitter的snowflake算法 3. 面试题目&#xff1a;实现一个全局的ID生成器&#xff0c;注意线程安全 3.1 单例模式…

【PCL-9】AABB包围盒

当一个物体边与坐标轴平行时&#xff0c;生成的ABB最小外接立方体有偏差&#xff0c;故这里采用AABB算法。 示例代码&#xff1a; #include <pcl/features/moment_of_inertia_estimation.h> #include <vector> #include <pcl/io/pcd_io.h> #include <pc…

在 Pytorch 中使用 TensorBoard

机器学习的训练过程中会产生各类数据&#xff0c;包括 “标量scalar”、“图像image”、“统计图diagram”、“视频video”、“音频audio”、“文本text”、“嵌入Embedding” 等等。为了更好地追踪和分析这些数据&#xff0c;许多可视化工具应运而生&#xff0c;比如之前介绍的…

机器学习十大算法之七——随机森林

0 引言 集成学习&#xff08;ensemble learning&#xff09;是时下非常流行的机器学习算法&#xff0c;它本身不是一个单独的机器学习算法&#xff0c;而是通过在数据上构建多个横型&#xff0c;集成所有模型的建模结果&#xff0c;基本上所有的机器学习领域都可以看到集成学习…

华为OD机试 - 连续字母长度 - 字符串(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入2、输出3、说明4、再输入5、输出6、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08…

混币器——隐私交易的天堂,还是洗钱犯罪的聚集地?

据美国财政部官网&#xff0c;Tornado Cash 联创 Roman Storm 已被 FBI 和国税局逮捕&#xff0c;罪名是串谋洗钱、串谋经营未经许可的资金传输业务以及串谋违反制裁规定&#xff0c;另一创始人 Roman Semenov仍然在逃。 FBI局长Christopher A. Wray说&#xff1a;“今天的公告…

动物体外受精手术VR模拟仿真培训系统保证学生及标本的安全

奶牛是养殖业主要的资源&#xff0c;因此保证奶牛的健康对养殖业的成功和可持续发展具有重要已用&#xff0c;奶牛有一些常见易发病&#xff0c;一旦处理不当&#xff0c;对奶牛业都会造成较大的经济损失&#xff0c;传统的奶牛手术培训实操难度大、风险高且花费大&#xff0c;…

[管理与领导-43]:IT基层管理者 - 个人管理 - 管理中从角色定位迈步

前言&#xff1a; 管理者的“四位” &#xff1a; ‣ 定位——在什么位置做什么事情&#xff1b; ‣ 到位——全力以赴把事情做好&#xff1b; ‣ 不越位——不要把别人的工作做了&#xff1b; ‣ 补位——同事临时“缺位” &#xff0c;及时补位&#xff0c;提升效率&…

前端(十四)——DOM节点操作手册:你需要了解的一切

&#x1f642;博主&#xff1a;小猫娃来啦 &#x1f642;文章核心&#xff1a;DOM节点操作手册&#xff1a;你需要了解的一切 文章目录 前言DOM基础知识操作现有节点创建新节点遍历节点树修改节点属性和样式事件处理实践应用动态创建表格动态更新列表 前言 DOM&#xff08;文档…

性能测试工具Jmeter你所不知道的内幕

谈到性能测试&#xff0c;大家一定会联想到Jmeter和LoadRunner,这两款工具目前在国内使用的相当广泛&#xff0c;主要原因是Jmeter是开源免费&#xff0c;LoadRunner 11在现网中存在破解版本。商用型性能测试工具对于中小型企业很难承担相关的费用。国内的性能测试工具有&#…

【Linux】一张图了解系统文件

首先先认识磁盘结构 系统文件分布图 文件查找 文件删除 文件的增删改查都是围绕inode来完成的&#xff0c;所以当我们要进行文件删除的时候&#xff0c;只需要通过inode来获取到它对应的block bitmap和inode bitmap数据块容器和保存文件属性的位置置为 0即可 &#xff0c;如果想…

Visual Studio 2022的MFC框架——WinMain函数

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天我们来重新审视一下Visual Studio 2022下开发工具的MFC框架知识。 大家还记得创建Win32应用程序是怎么弄的吗&#xff1f;Win32应用程序有一条很明确的主线&#xff1a;首先进入WinMain函数&#xff0c…

RK3568 安卓源码编译

一.repo安卓编译工具 项目模块化/组件化之后各模块也作为独立的 Git 仓库从主项目里剥离了出去&#xff0c;各模块各自管理自己的版本。Android源码引用了很多开源项目&#xff0c;每一个子项目都是一个Git仓库&#xff0c;每个Git仓库都有很多分支版本&#xff0c;为了方便统…

一种特殊的NC文件转TIF——知道每个像元的坐标值怎么转为TIF

之前写过一篇文章&#xff0c;介绍了NetCDF文件格式&#xff0c;并详细讲解了如何使用Python对NetCDF文件进行读写操作&#xff0c;进而介绍了NetCDF文件的地理参考&#xff0c;最后以两个数据为例讲解了怎么将NetCDF格式的数据转GeoTIFF格式的数据。 但是上次介绍的NC文件的地…

1212页Kubernetes学习指南,几乎涵盖所有K8S核心技术点,建议收藏!

Kubernetes&#xff08;简称K8S&#xff09;是一个开源的容器编排平台&#xff0c;主要用于自动化部署、扩展和管理容器化应用程序。由于K8S在容器编排方面的优势&#xff0c;它已经成为了现代化应用程序部署和管理的事实标准 因此&#xff0c;对于运维人员来说&#xff0c;学…

数电票红利悄然而至 百望云数据驱引“供应链协同”新纪元

2023年&#xff0c;全面数字化的电子发票政策正如飞驰的列车在各地试点推广中加速前行&#xff0c;“以数治税”的全新时代即将来临&#xff0c;基于数电票赋能的企业数字化红利正在悄然释放。借着政策快速落地的东风&#xff0c;财税数字化也进入到全面建设的新周期&#xff0…

打造B2B2C商城系统成功的关键要素有哪些?

电子商务的蓬勃发展&#xff0c;B2B2C商城系统成为了越来越多企业的选择。然而&#xff0c;在激烈的市场竞争中&#xff0c;要想打造一款成功的B2B2C商城系统并不容易。下面就B2B2C商城系统成功的关键要素作一些简单介绍&#xff0c;希望对大家有帮助(仅供参考)。 一、整合供应…