菜鸡自学 Python 笔记(二)

2023-05-16

菜鸡自学 Python 笔记(二)

    • 五,结构与语句
      • 1.选择结构—— if 语句
      • 2.循环控制语句
        • (1)while 语句
        • (2)for 语句
        • (3)continue 语句与break 语句
    • 六.列表
        • 1.列表的定义
        • 2.列表相关操作(函数)
        • 3.列表操作符 + 和 *
    • 七.元组
        • 1.元组的创建
        • 2.元组的相关操作
        • 3.元组的内置函数
    • 八.字典
        • 1.定义字典键值
        • 2.字典的相关操作
        • 3.字典的内置函数和方法

五,结构与语句

1.选择结构—— if 语句

( 1 )格式:

if 表达式:
  语句1
elif 表达式2:
  语句2
……
else:
  语句n

!这里注意

  • 每个条件后面的 冒号 : 不能忘记。
  • Python 用缩进划分语句块,相同缩进为一块,所以这里要严格规范。
  • 在Python中没有switch…case 语句。

下面举个例子:
(表达式是一个布尔值)

# 条件语句
is_hot = False
is_clod = True
if is_hot:  # 注意if的格式
    print("It's a hot day!")
    print("Drink some water.")
# 前面有空格才说明是if下的语句
elif is_clod:
    print("It's a cold day!")
    print("Wear warm clothes.")
else:
    print("It's a lovely day!")
print("Enjoy your day!")  # 这里注意缩进划分语句块

结果
(表达式是一个比较)

age = 19
if age > 18:
    print("You will stay young.")
else:
    print("Hi,girl.")

运行结果
( 2 )if 的嵌套

age = 45
if age > 18:
    if age < 40:
        print("You will stay young.")
    else:
        print('Your mature temperament is fascinating.')
else:
    print("Hi,girl.")

运行结果

2.循环控制语句

(1)while 语句

格式:

while 判断条件:
   语句

(这里同样要注意,冒号和缩进。)

举个例子:

# while循环
i = 1
while i <= 5:
    print(i, end=' ')
    print('*' * i)
    i = i+1
print("Done")

运行结果

while True:  # 表示永远循环
  • 当然,while 还可以和 else 配合使用:
    表示当while语句的条件表达式为False时,执行 else 的语句块。
i = 1
while i < 4:
    print(i, "<4")
    i = i+1
else:
    print(i, "=4")

在这里插入图片描述

(2)for 语句

格式:

for 变量 in 列表或范围 :
  语句

跟 while 一样,for 也可以和 else 结合

for 变量 in 列表或范围 :
  语句
else:
  语句

应用举例:

# for 循环
for item in 'Asu':  # 它会遍历字符串中的每个字符
    print(item, end=' ')
print()
for item in ['Asu', 'Dodo', 'Hi']:  # 遍历列表中的每个字符串
    print(item, end=' ')
print()
for item in [1, 2, 3, 4]:  # 遍历列表中每个数字
    print(item, end=' ') 

在这里插入图片描述
应用range()范围函数

# range()范围函数
for item in range(10):  # 它不是一个列表,它只是一个特殊的类
    print(item, end=' ')  # 输出结果不包括10.(0-9)
    
print()

for item in range(5, 10):
    print(item, end=' ')  # 输出5-9范围
    
print()

for item in range(5, 10, 2):
    print(item, end=' ')  # 输出(5-9)内相隔2的数

    

运行结果

(3)continue 语句与break 语句

continue语句,Python将跳过当前循环块中的剩余语句,继续进行下一轮循环

i = 0
while i <= 5:
    i = i + 1
    if i == 3:
        continue
    print('*' * i)
print("Done")

在这里插入图片描述

而 break 语句是直接跳出循环

i = 0
while i <= 5:
    i = i + 1
    if i == 3:
        break
    print('*' * i)
print("Done")

在这里插入图片描述

六.列表

在Python 中,我们用方括号[ ]来表示列表,用逗号 , 来分割列表的各个元素。

1.列表的定义

  • 列表对象中的元素可以是不同的类型
list = [1, "Asu", 1.11, True]
  • 列表列表对象中的元素可以是另一个列表
list = [1, "Asu", 1.11, True, ["Dodo", 3, 5+3j]]

(索引列表元素:

list = [1, "Asu", 1.11, True, ["Dodo", 3, 5+3j]]
# 元素的索引
print(list[1])
print(list[4][0])

在这里插入图片描述

  • 二维列表
# 二维列表
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
print(matrix[0][1])
for row in matrix:  # 遍历取出二维列表中的元素
    for item in row:
        print(item, end=' ')

在这里插入图片描述

2.列表相关操作(函数)

内置函数

  • len() 函数返回列表的长度
  • max() 函数返回列表中的最大值
  • min() 函数返回列表中的最小值
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(len(numbers))
print(max(numbers))
print(min(numbers))

在这里插入图片描述

方法

  • append( ) 在列表最后加入一个元素
numbers = [5, 4, 6, 1, 9]
numbers.append(20)  # 在列表中加入一个数
print(numbers)

在这里插入图片描述

  • insert( ) 在列表中插入一个元素
numbers = [5, 4, 6, 1, 9]
numbers.insert(1, 10)  # 前为要插入的位子,后是插入的值
print(numbers)

在这里插入图片描述

  • remove() 在列表中消除一个元素
numbers = [5, 4, 6, 1, 9]
numbers.remove(5)  # 消除一个数
print(numbers)

在这里插入图片描述

  • pop( ) 从列表末尾删除元素
numbers = [5, 4, 6, 1, 9]
numbers.pop() 
print(numbers)

在这里插入图片描述

  • index( ) 输出元素所在的位置
numbers = [5, 4, 6, 1, 9]
print(numbers.index(1)) 
#  3
  • clear( ) 删除列表中所有的元素
# 列表操作
numbers = [5, 4, 6, 1, 9]
numbers.clear()  
print(numbers)

在这里插入图片描述

  • count() 计算列表中该元素出现的次数
numbers = [5, 4, 6, 5, 1, 9]
print(numbers.count(5))  # 计算列表中5的个数
# 结果:2
  • sort( )reverse( ) 排序
# 列表操作
numbers = [5, 4, 6, 5, 1, 9]
numbers.sort()  # 排序(升序)
print(numbers)
numbers.reverse()  # 排序(降序)
print(numbers)

在这里插入图片描述

  • copy( ) 复制
    复制出的列表如何改变,原列表始终不发生变化
numbers = [5, 4, 6, 5, 1, 9]
numbers2 = numbers.copy()
numbers2.append(10)
print(numbers)
print(numbers2)

在这里插入图片描述

3.列表操作符 + 和 *

+号用于组合列表
*号用于重复列表

numbers = [1, 2, 3]
numbers2 = [1, 2, 3] + [1, 2, 3]
numbers3 = [1, 2, 3] * 3
print(numbers2)
print(numbers3)

在这里插入图片描述

七.元组

与列表相比,元组的对象不能修改,并且用小括号 ( )来表示元组。一旦修改系统就会报错。

1.元组的创建

numbers = (1, 2, 3)  
num = (1,)

元组的创建非常简单,只需在圆括号内用逗号将元素隔开。

但是,如果创建的元组对象只有一个元素,就必须在元素之后加上逗号,否则Python 会认为这个是赋值操作。

numbers = (1, 2, 3)  
# 元组是不可变的,你改变它就会报错
print(numbers[0])  # 索引
# 但它可以将值存入变量中进行使用
x, y, z = numbers  # 赋值的简便操作

2.元组的相关操作

numbers = (1, 2, 3)  
print(numbers[0])  # 索引
# 结果:1
numbers = (1, 2, 3)
x, y, z = numbers  # 赋值的简便操作
print(x, y, z)
# 结果:1 2 3

虽然元组内的元素值不能被修改,但是可以删除

numbers = (1, 2, 3)
numbers = numbers[0], numbers[2]
print(numbers)
# 结果: (1, 3)

元组的组合

num = (1, 2)
num1 =(4, 5)
print(num + num1)
# 结果: (1, 2, 4, 5)

删除整个元组

num = (1, 2, 3)
del num  # 删除元组
print(num)  # 再次访问时,会报错:未定义num

3.元组的内置函数

元组的 len()函数,max()函数,min()函数都跟列表相似。

  • sum( ) 函数返回元组中所有元素的和
num = (1, 2, 3)
print(sum(num))
# 结果: 6

八.字典

字典是一种可变容器模型,可以储存任意类型的对象。
字典的对象使用大括号{}将元素列出。字典的元素排列并没有一定的顺序,因为可以使用键值来取得元素。

1.定义字典键值

注意点:
(1)同一个键值不能多次出现。
创建时如果同一个键值被赋值多次,那么只有最后一个有效,前面重复的会被删除。

people = {
    "name": 'Asu',
    "age": 19,  # 字典中的键值是唯一的
    "is_beautiful": False,
    "age": 18
}
print(people)

结果
(2)字典的键值不可变,所有可以用数字,字符串或元组充当,列表不可以。否则,会报错。

2.字典的相关操作

访问:

# 字典存储键值
people = {
    "name": 'Asu',
    "age": 19,  # 字典中的键值是唯一的
    "is_beautiful": False
}
print(people["name"])
# 输出:Asu

# 访问字典中不存在的键值时,系统会报错
print(people.get("Name"))  # 但该方法在我们输入字典中不存在的值时,不会报错
# 输出: None

print(people.get("birthdate", "9 23"))  # 也可以这样访问不存在的键值,并输出后半部分内容
# 输出: 9 23

键值的更新:

# 字典存储键值
people = {
    "name": 'Asu',
    "age": 19,  # 字典中的键值是唯一的
    "is_beautiful": False
}

#  键值也可以进行更新
people["name"] = "Dodo"  # 改动
print(people["name"])
people["birthdate"] = "9 23"  # 新建
print(people["birthdate"])

在这里插入图片描述

接下来搞个有趣的实例:

# 字典实列(映射)
message = input(">")
words = message.split(' ')  # 将输入的句子拆分成一个个单词
emojis = {
    ":)": "😊",
    ":(": "😢"
}
output =""
for word in words:
    output += emojis.get(word, word) + " "  # 用get()来输出默认值
print(output)

在这里插入图片描述

3.字典的内置函数和方法

内置函数
(1)len() 计算字典元素个数
(2)str() 将字典的元素转化为可打印的字符串形式
(3)type() 返回输入的变量类型

people = {
    "name": 'Asu',
    "age": 19,
    "is_beautiful": False
}
print(len(people))
print(str(people))

在这里插入图片描述
方法
(1)clear() 清除字典中的所有元素
(2)copy() 复制字典
(3) pop() 删除字典中的最后一个元素
与列表相似,可以参考列表。

(4)get(k,d) k是字典的索引值,d是索引值的默认值。如果k存在,就返回其值,否则返回d。

people = {
    "name": 'Asu',
    "age": 19,  # 字典中的键值是唯一的
    "is_beautiful": False
}


# 访问字典中不存在的键值时,系统会报错
print(people.get("Name"))  # 但该方法在我们输入字典中不存在的值时,不会报错
# 输出: None

print(people.get("birthdate", "9 23"))  # 也可以这样访问不存在的键值,并输出后半部分内容
# 输出: 9 23

(5)items() 使用字典中的元素创建一个由元组对象组成的列表。

people = {
    "name": 'Asu',
    "age": 19,
    "is_beautiful": False
}
print(people.items())

在这里插入图片描述
(6)keys() 使用字典中的键值创建一个列表对象

people = {
    "name": 'Asu',
    "age": 19,
    "is_beautiful": False
}
print(people.keys())

在这里插入图片描述
(7)values() 用字典中的键值的数值创建一个列表对象

people = {
    "name": 'Asu',
    "age": 19,
    "is_beautiful": False
}
print(people.values())

在这里插入图片描述

(8)setdefault(k,d) k是字典的键值,d是键值的默认值。如果k存在就返回其值;否则返回d,并将新的元素添加到字典中。

people = {
    "name": 'Asu',
    "age": 19,
    "is_beautiful": False
}
print(people.setdefault("name"))
print(people.setdefault("Name", "Dodo"))
print(people)

在这里插入图片描述
(9)update() 更新字典

people = {
    "name": 'Asu',
    "age": 19,
    "is_beautiful": False
}
people.update({"is_rich": "False"})
# 括号里的应该为一个对象
print(people)

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

菜鸡自学 Python 笔记(二) 的相关文章

  • 没有任何元数据的 zip 文件

    我想找到一种简单的方法来压缩一堆文件 而无需任何文件元数据 例如时间戳 这zip命令似乎总是保留元数据 我没有找到禁用元数据的方法 我希望解决方案是一个命令或最多一个 python 脚本 谢谢 正如一些帖子已经指出的那样 zip 标头中的大
  • 在Python3.6中调用C#代码

    由于完全不了解 C 编码 我希望在我的 python 代码中调用 C 函数 我知道有很多关于同一问题的问答 但由于一些奇怪的原因 我无法从示例 python 模块导入简单的 c 类库 以下是我所做的事情 C 类库设置 我使用的是 VS 20
  • 如何使用Python将WebP图像转换为Gif?

    我已经尝试过这个 from PIL import Image im Image open this webp im save that gif gif save all True 这给了我这个错误 类型错误 不支持的操作数类型 tuple
  • Python BeautifulSoup XML 解析

    我编写了一个简单的脚本来使用 BeautifulSoup 模块解析 XML 聊天日志 标准 soup prettify 工作正常 只是聊天日志中有很多绒毛 您可以在下面看到我正在使用的脚本代码和一些 XML 输入文件 Code import
  • 优化 Keras 以使用所有可用的 CPU 资源

    好吧 我真的不知道我在说什么 所以请耐心听我说 我正在使用 Theano 后端运行 Keras 以在 MNIST 图像上运行基本的神经网络 目前只是一个教程 过去 我一直使用我的旧 HP 笔记本电脑 因为我有 Windows 和 Ubunt
  • Python - 用逗号分割,跳过括号内的内容

    我需要用逗号分隔字符串 但我对这种情况有一个问题 TEXT EXAMPLE THIS IS A EXAMPLE BUT NOT WORKS FOR ME SECOND THIRD 我想拆分并得到 var 0 TEXT EXAMPLE THI
  • 如何限制Django CreateView中ForeignKey字段的选择?

    我有一个沿着这些思路的模型结构 models py class Foo models Model class Bar models Model foo models ForeignKey Foo class Baz models Model
  • 定义函数后对其进行修饰?

    I think答案是否定的 但我似乎找不到明确的说法 我有以下情况 def decorated function function functools wraps function def my function print Hello s
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 在径向(树)网络x图中查找末端节点(叶节点)

    给定下图 是否有一种方便的方法来仅获取末端节点 我所说的端节点是指那些具有一个连接边的到节点 我认为这些有时被称为叶节点 G nx DiGraph fromnodes 0 1 1 1 1 1 2 3 4 5 5 5 7 8 9 10 ton
  • 如何通过双击在浏览器中打开 ipynb 文件

    以前 我安装了 Canopy 当时 我只需双击 ipynb 文件并在浏览器中打开它们即可 但是 后来我需要Anaconda 一旦我安装了它 这个功能就没有了 现在我只希望能够简单地双击 ipynb 文件 然后该文件就会在 Firefox 中
  • 如何在python中检索aws批处理参数值?

    流程 Dynamo DB gt Lambda gt 批处理 如果将角色 arn 插入动态数据库 它是从 lambda 事件中检索的 然后使用submit job角色 arn 的 API 被传递为 parameters role arn ar
  • 在可编辑的QSqlQueryModel中实现setEditStrategy

    这是后续这个问题 https stackoverflow com questions 49752388 editable qtableview of complex sql query 在那里 我们创建了 QSqlQueryModel 的可
  • 无法截取宽度为 0 的屏幕截图

    我正在尝试截取 Bootstrap 模态内元素的屏幕截图 经过一番努力 我终于想出了这段代码 driver get https enlinea sunedu gob pe driver find element by xpath div c
  • 如何有效地从 loadmat 函数生成的嵌套 numpy 数组中提取值?

    python中是否有更有效的方法从嵌套的python列表中提取数据 例如A array array 12000000 dtype object 我一直在使用A 0 0 0 0 当你有很多像 A 这样的数据时 这似乎不是一个有效的方法 我也用
  • 如何通过字符串匹配加速 pandas 行过滤?

    我经常需要过滤 pandas 数据框df by df df col name string value 并且我想加快行选择操作 有没有快速的方法可以做到这一点 例如 In 1 df mul df 3000 2000 3 reset inde
  • 为什么我们应该在 def __init__(self, n) -> None: 中使用 -> ?

    我们为什么要使用 gt in def init self n gt None 我读了以下摘录来自 PEP 484 https www python org dev peps pep 0484 the meaning of annotatio
  • 全局变量是 None 而不是实例 - Python

    我正在处理Python 中的全局变量 代码应该可以正常工作 但是有一个问题 我必须使用全局变量作为类的实例Back 当我运行应用程序时 它说 back is None 这应该不是真的 因为第二行setup 功能 back Back Back
  • 如何禁止 celery 中的 pickle 序列化

    Celery 默认使用 pickle 作为任务的序列化方法 如中所述FAQ http ask github com celery faq html isn t using pickle a security concern 这代表一个安全漏
  • Django South - 将 null=True 字段转换为 null=False 字段

    我的问题是 转变的最佳做法是什么null True场变成null False使用 Django South 的字段 具体来说 我正在与ForeignKey 你应该先写一个数据迁移 http south aeracode org docs t

随机推荐

  • JWT令牌技术

    JWT令牌 全称 xff1a JOSN Web Token https jwt io 定义了一种简介的 自包含的格式 xff0c 用于在通信双方以JSON数据格式安全的传输信息 犹豫数字签名的存在 xff0c 这些信息是可靠的 通过base
  • 拦截器Interceptor

    Interceptor拦截器入门 介绍 什么是拦截器 xff1f 是一种动态拦截方法调用的机制 xff0c 类似于过滤器 拦截器是Spring框架中提供的 xff0c 用来动态拦截控制器方法的执行 拦截器的作用 xff1a 拦截请求 xff
  • 异常处理--全局异常处理器

    异常处理方案 出现异常之后 xff0c 三层依次向上抛出 xff0c 最后交给Spring框架处理 xff0c 返回一个JSON的错误信息 在三层构架项目中 xff0c 出现了异常 xff0c 可以用以下两种方式处理 方案一 xff1a 在
  • 简单理解位运算:位与&、位或|、位非~、异或^、左移<<、右移>>

    位运算 xff0c 顾名思义 xff0c 就是对字节中的每个位进行一位一位的运算 常见的运算符有 xff1a 位与 xff08 amp xff09 位或 xff08 xff09 位非 xff08 xff09 异或 xff08 xff09 左
  • bash 脚本字符串截取表达式详细说明

    在编写linux脚本时 xff0c 有时需要操作字符串 xff0c 从一个字符串中截取一段字符串 xff0c linux系统的bash脚本截取字符串的功能比较强 xff0c 表达式丰富 xff0c 时间长了容易忘记 xff0c 因此作此笔记
  • Springboot入门 -- AOP

    一 事务 1 回顾MySQL事务管理 事务的操作主要有三步 xff1a 开启事务 xff08 一组操作开始前 xff0c 开启事务 xff09 xff1a start transaction begin 提交事务 xff08 这组操作全部成
  • SpringBoot原理篇

    1 配置优先级 优先级一次为 xff1a application properties application yml application ymal 推荐使用yml 除了配置文件属性配置 xff0c 还支持Java系统属性和命令行参数的
  • maven私服配置说明

    私服配置说明 使用私服 xff0c 需要在maven的settings xml配置文件中 xff0c 做如下配置 xff1a 需要在 servers 标签中 xff0c 配置访问私服的个人凭证 访问的用户名和密码 span class to
  • Git基本使用

    1 Git快速入门 1 1 Git概述 Git是一个免费的 xff0c 开源的分布式版本控制系统 xff0c 可以快速高效地处理从小型或大型的各种项目 Git易于学习 xff0c 占用空间小 xff0c 性能快得惊人 官网 xff1a ht
  • MyBatisPlus

    1 简介 官网 xff1a https www baomidou com 2 相关依赖以及配置 2 1 pom引入依赖 span class token comment lt MyBatisPlus 启动器 gt span span cla
  • 使用STM32点亮LED

    多学多练 一 题目描述二 设计思路三 寄存器实现01 时钟配置02 模式设置03 代码编写04 创建工程文件 四 HAL库实现01 安装 STM32CubeMX02 安装HAL库03 新建工程04 Keil仿真调试 五 硬件连接六 逻辑仿真
  • C语言数据结构中利用栈和队列实现回文的判断

    数据结构中栈有着极为广大的运用 xff0c 其操作特点是FILO先进后出 队列的特点是FIFO先进先出 判断回文 xff0c 回文序列很好理解 xff0c 正反来看它都一样 那我们可以巧妙的利用栈和队列特点来判断回文 xff0c 存入进抽象
  • csp202112-1 序列查询 满分AC python

    nN 61 int x for x in input split n 61 nN 0 N 61 nN 1 list1 61 0 43 int x for x in input split if int x lt N 43 N num 61
  • isPrime()函数:判断素数,构造素数表

    素数函数isPrime xff08 素数 xff1a 指在大于1的自然数中 xff0c 除了1和它自身外 xff0c 不能被其他自然数整除的数 xff09 方法一 span class token keyword int span span
  • gets()函数

    gets 函数 1 描述 C 库函数 char gets char str 从标准输入 stdin 读取一行 xff0c 并把它存储在 str 所指向的字符串中 当读取到换行符时 xff0c 或者到达文件末尾时 xff0c 它会停止 xff
  • win11系统新版edge不兼容网银如何解决【解决办法】

    由于目前国内的网银都是基于IE浏览器进行开发的 xff0c 由于微软推行Edge xff0c Win11把IE砍掉后 xff0c 会将IE的链接强制跳转到Edge上 xff0c 很多网银无法调用 xff0c 对于需要使用Web网银的用户来说
  • 如何判断输入的字符是小写字母、大写字母还是数字?

    一 比较判断 计算机中字符都有自己的ASCII码 xff0c 并且数字 xff0c 字母都有自己的范围 如下 xff1a 类型ASCII码数字0 948 57大写字母A Z65 90小写字母a z97 122 但是在编码时可能记不住ASCI
  • C语言· 实现各进制间的相互转换

    数制只是人用来计数的不同方法 xff0c 但他们所表示的量不会改变 下面我们试着用C语言来实现数制之间的转换 一 由十进制转换为其他进制 我们常用的更为熟悉的是十进制 xff0c 那我们就用十进制开始 xff08 下面用二进制举例 xff0
  • C语言——如何简单地实现四舍五入

    如何实现数的四舍五入 span class token macro property span class token directive keyword include span span class token string lt st
  • 菜鸡自学 Python 笔记(二)

    菜鸡自学 Python 笔记 xff08 二 xff09 五 xff0c 结构与语句1 选择结构 if 语句2 循环控制语句 xff08 1 xff09 while 语句 xff08 2 xff09 for 语句 xff08 3 xff09