python 爬虫技术 第03节 基础复习 控制结构

在Python中,数据类型是理解程序如何存储和操作数据的基础。我们可以将一个单词管理系统(如一个简单的词典应用)作为背景来解释不同的数据类型。下面是一些主要的数据类型以及它们在单词管理系统中的应用示例。

1. 字符串 (String)

字符串是用于表示文本的序列,由一系列字符组成。在单词管理系统中,每个单词都是一个字符串。例如:

word = "Hello"

2. 整数 (Integer)

整数用于表示没有小数部分的数字。在单词管理系统中,可以使用整数来表示单词出现的次数或用户的ID等。

count = 5

3. 浮点数 (Float)

浮点数用于表示有小数部分的数字。虽然在单词管理系统中不常见,但可能用于统计分析,比如计算某个单词的出现频率百分比。

frequency = 0.23

4. 列表 (List)

列表是一种有序的集合,可以包含不同类型的元素。在单词管理系统中,列表可以用来存储一组单词或者与某个单词相关的多个信息。

synonyms = ["greeting", "salutation", "hi"]

5. 元组 (Tuple)

元组类似于列表,但是不可变的。在单词管理系统中,可以使用元组来存储不可更改的信息,比如语言代码。

language_code = ("en",)

6. 字典 (Dictionary)

字典是一种可变的键值对集合。在单词管理系统中,字典非常有用,可以将单词作为键,其定义、同义词、反义词等作为值。

word_data = {"word": "Hello", "definition": "A greeting used to greet someone"}

7. 集合 (Set)

集合是一个无序且不重复的元素集合。在单词管理系统中,集合可以用来存储某一类单词,如所有以某个字母开头的单词。

words_starting_with_h = {"Hello", "House", "Help"}

8. 布尔型 (Boolean)

布尔型只有两个值:TrueFalse。在单词管理系统中,可以用于判断某些条件,如单词是否存在于字典中。

is_word_in_dictionary = True

通过这些数据类型,你可以构建出复杂而功能丰富的单词管理系统。例如,使用字典存储单词及其详细信息,使用列表存储同义词或反义词,使用布尔值来控制程序流程等。

在Python中,控制结构允许你根据特定条件执行代码,或者重复执行一段代码直到满足某种条件。在设计一个单词管理系统时,控制结构对于实现各种功能至关重要,比如搜索单词、更新数据库、处理用户输入等。以下是几种常见的Python控制结构及其在单词管理系统中的应用示例:

1. 条件语句 (if, elif, else)

条件语句用于基于条件执行不同的代码块。例如,在单词管理系统中,你可以用它来检查一个单词是否已经存在于系统中。

word_dict = {"hello": "greeting"}def search_word(word):if word in word_dict:print(f"Definition: {word_dict[word]}")else:print("Word not found.")search_word("hello")  # 输出: Definition: greeting
search_word("world")  # 输出: Word not found.

2. 循环语句 (for, while)

循环语句用于重复执行一段代码,直到满足停止条件。

  • for循环:适用于遍历序列(如列表或字典)中的元素。

    word_list = ["apple", "banana", "cherry"]for word in word_list:print(word)# 输出:
    # apple
    # banana
    # cherry
    
  • while循环:当条件为真时持续执行。

    index = 0while index < len(word_list):print(word_list[index])index += 1
    

3. 异常处理 (try, except)

异常处理用于捕捉并处理运行时错误,防止程序崩溃。在单词管理系统中,这可能意味着处理用户输入的错误或文件读写时可能出现的问题。

try:with open("words.txt", "r") as file:for line in file:print(line.strip())
except FileNotFoundError:print("File not found.")

4. 跳转语句 (break, continue)

跳转语句用于改变循环的正常流程。

  • break:立即退出循环。
  • continue:跳过当前迭代的剩余代码,继续下一次迭代。

在单词管理系统中,这些可以用于优化搜索或处理大量数据时的效率。

for word in word_list:if word == "banana":breakprint(word)# 输出:
# apple

通过结合使用这些控制结构,你可以创建一个功能丰富且健壮的单词管理系统,能够处理各种复杂的逻辑和用户交互。例如,你可以设计一个系统,让用户输入一个单词,然后根据这个输入查找定义、添加新词到数据库,或者显示所有以某个字母开头的单词列表。

让我们通过一个更具体的案例来深入探讨如何使用Python的控制结构和数据类型来开发一个单词管理系统。假设我们正在创建一个可以管理单词及其相关属性的应用,包括定义、同义词、反义词、例句等,并提供搜索、添加、删除和更新单词的功能。

定义数据结构

首先,我们需要定义一个数据结构来存储单词信息。这里我们使用字典来表示一个单词的所有属性:

class Word:def __init__(self, word, definition="", synonyms=None, antonyms=None, examples=None):self.word = wordself.definition = definitionself.synonyms = synonyms if synonyms is not None else []self.antonyms = antonyms if antonyms is not None else []self.examples = examples if examples is not None else []def __str__(self):return f"{self.word}: {self.definition}"# 创建一个示例单词
word_hello = Word("hello", "a greeting", ["hi", "hey"], ["goodbye"])

构建单词库

接下来,我们将使用一个字典来存储所有的单词对象,其中单词本身作为键:

word_database = {}
word_database["hello"] = word_hello

添加单词

现在,我们可以编写一个函数来添加新的单词到数据库:

def add_word(word, definition="", synonyms=None, antonyms=None, examples=None):if word.lower() in word_database:print(f"The word '{word}' already exists.")else:new_word = Word(word, definition, synonyms, antonyms, examples)word_database[word.lower()] = new_wordprint(f"The word '{word}' has been added.")

搜索单词

为了搜索单词,我们创建一个函数,该函数会返回单词的详细信息,如果单词不存在则给出提示:

def search_word(word):word = word.lower()if word in word_database:print(word_database[word])else:print(f"The word '{word}' does not exist in the database.")

更新单词

我们还需要一个函数来更新现有单词的信息:

def update_word(word, definition=None, synonyms=None, antonyms=None, examples=None):word = word.lower()if word in word_database:if definition is not None:word_database[word].definition = definitionif synonyms is not None:word_database[word].synonyms = synonymsif antonyms is not None:word_database[word].antonyms = antonymsif examples is not None:word_database[word].examples = examplesprint(f"The word '{word}' has been updated.")else:print(f"The word '{word}' does not exist in the database.")

删除单词

最后,我们提供一个删除单词的函数:

def delete_word(word):word = word.lower()if word in word_database:del word_database[word]print(f"The word '{word}' has been deleted.")else:print(f"The word '{word}' does not exist in the database.")

用户界面

为了与用户进行交互,我们可以使用一个简单的命令行界面:

def main_menu():while True:print("\n1. Add a word\n2. Search a word\n3. Update a word\n4. Delete a word\n5. Exit")choice = input("Enter your choice: ")if choice == '1':word = input("Enter the word: ")definition = input("Enter the definition: ")add_word(word, definition)elif choice == '2':word = input("Enter the word to search: ")search_word(word)elif choice == '3':word = input("Enter the word to update: ")update_word(word, input("New definition: "))elif choice == '4':word = input("Enter the word to delete: ")delete_word(word)elif choice == '5':print("Exiting...")breakelse:print("Invalid choice. Try again.")main_menu()

这个案例展示了如何使用Python的控制结构和数据类型来构建一个具有基本功能的单词管理系统。你可以进一步扩展这个系统,添加更多功能,如用户认证、保存数据到文件或数据库、更复杂的搜索算法等。

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

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

相关文章

操作系统面试知识点总结2

#来自ウルトラマンメビウス&#xff08;梦比优斯&#xff09; 1 进程与线程 1.1 进程的概念和特征 更好地描述和控制程序并发执行&#xff0c;实现操作系统的并发性和共享性。 进程控制块&#xff08;PCB&#xff09;&#xff1a;更好的描述进程的基本情况和运行状态&#xff…

Eclipse 搭建 C/C++ 开发环境以及eclipse的使用

一、下载、安装 MinGW 1、下载: 下载地址&#xff1a;MinGW - Minimalist GNU for Windows - Browse Files at SourceForge.net 点击“Download Latest Version”即可 下载完成后&#xff0c;得到一个名为 mingw-get-setup.exe 的安装文件。双击运行&#xff0c;安装即可。 …

大数据、区块链与人工智能

大数据、区块链与人工智能&#xff1a;技术融合与未来展望 摘要 本文旨在探讨大数据、区块链和人工智能这三个技术领域的基本概念、发展历程、应用场景及其相互之间的融合。文章首先分别介绍这三个技术的定义和特点&#xff0c;然后分析它们在不同行业中的实际应用&#xff0…

Llama 3.1发布,性能媲美最强闭源大模型

美国太平洋时间 7 月 23 日&#xff0c;Meta 公司发布了其最新的 AI 模型 Llama 3.1&#xff0c;这是一个里程碑时刻。Llama 3.1 的发布让我们看到了开源 LLM 有与闭源 LLM 一较高下的能力。 Meta 表示&#xff0c;“到目前为止&#xff0c;开源 LLM 在功能和性能方面大多落后于…

用户如何选择云安全产品?

云安全产品的选择 对于用户来说&#xff0c;选择云安全产品时应考虑以下几个关键点&#xff1a; 明确安全需求&#xff1a;首先&#xff0c;用户需要根据自身的业务特点、数据敏感性、合规要求以及潜在的安全风险等因素&#xff0c;明确自己的安全需求。 评估技术实力&#x…

C++高性能通信:了解Iceoryx与零拷贝技术的实现与应用

文章目录 0. 引言1. Iceoryx使用到的零拷贝技术1.1 零拷贝技术概述1.2 零拷贝的优势1.3 Iceoryx零拷贝的实现1.4 信息轮询与信号触发 2. Iceoryx的核心概念3. Iceoryx使用示例3.1 发布者程序3.2 订阅者程序3.3 编译和运行3.4 压力测试脚本 4. 参考文章 0. 引言 Iceoryx是一个开…

星环科技携手东华软件推出一表通报送联合解决方案

随着国家金融监督管理总局“一表通”试点工作的持续推进&#xff0c;星环科技携手东华软件推出了基于星环科技分布式分析型数据库ArgoDB和大数据基础平台TDH的一表通报送联合解决方案&#xff0c;并已在多地实施落地中得到充分验证。 星环科技与东华软件作为战略合作伙伴&…

深度学习复盘与论文复现E

文章目录 一、项目复现的问题及其解决方案1、 Cannot find DGL C graphbolt library2、 “is“ with a literal. Did you mean ““?”3、运行SEG、SPG查看GATNet的网络结构4、关于LI-FPN项目找不到数据粒度不匹配问题5、关于LI-FPN项目num_samples为空6、解决路径问题7、 !ss…

Java | Leetcode Java题解之第273题整数转换英文表示

题目&#xff1a; 题解&#xff1a; class Solution {String[] singles {"", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};String[] t…

PHP基础语法(四)

一、字符串类型 1、字符串定义语法 1&#xff09;单引号字符串&#xff1a;在单引号内部&#xff0c;所有的字符都会按照字面意义解释&#xff0c;不会进行变量替换或转义处理&#xff0c;除了 \ 表示单引号本身。 $str1 Hello, World!;2&#xff09;双引号字符串&#xff…

数据库——单表查询

一、建立数据库mydb8_worker mysql> use mydb8_worker; 二、建立表 1.创建表 mysql> create table t_worker(department_id int(11) not null comment 部门号,-> worder_id int(11) primary key not null comment 职工号,-> worker_date date not null comment…

取消selenium多余日志输出DevTools listening on ws://127.0.0.1:52704/devtools/browser/

用selenium做爬虫的时候&#xff0c;会有多余日志输出 DevTools listening on ws://127.0.0.1:52704/devtools/browser/网上搜&#xff0c;都是通过添加配置chrome_options.add_experimental_option(‘excludeSwitches’, [‘enable-logging’])实现的 但是我需要连接9222端口…

qt SQLite学习记录

1. 查看qt中数据库的驱动的类型的支持 QStringList drivers QSqlDatabase::drivers();//获取qt中所支持的数据库驱动类型foreach(QString driver,drivers){qDebug()<<driver;}2. Qt SQL 模块包含的主要类的功能介绍 Qt SQL 模块包含了一些主要的类&#xff0c;用于在 …

传输层协议——TCP

TCP协议 TCP全称为“传输控制协议”&#xff0c;要对数据的传输进行一个详细的控制。 特点 面向连接的可靠性字节流 TCP的协议段格式 源/目的端口&#xff1a;表示数据从哪个进程来&#xff0c;到哪个进程4位首部长度&#xff1a;表示该TCP头部有多少字节&#xff08;注意它…

Prometheus监控ZooKeeper

1. 简介 ZooKeeper是一个分布式协调服务,在分布式系统中扮演着重要角色。为了确保ZooKeeper集群的健康运行,有效的监控至关重要。本文将详细介绍如何使用Prometheus监控ZooKeeper,包括安装配置、关键指标、告警设置以及最佳实践。 2. 安装和配置 2.1 安装ZooKeeper Exporter…

【手写数据库内核组件】0601数据库执行引擎常用的火山模型,与其它模型比较,实现原理以及解释器和迭代器的实现

0601 火山模型 ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 0601 火山模型一、概述 二、火山模型介绍 三、实现机制 3.1 节点的定义 3.2 解释器实…

Windows 环境 Java 调用 batch 脚本实现 PG 数据库恢复功能

直接上代码 echo on rem set PG_ROOT_DIRD:\PostgreSQL\ rem 实例: recover_all_db.bat D:\PostgreSQL E:\ProjectCode\ums_vm_server-ums set PG_ROOT_DIR%1 set BASE_DIR%PG_ROOT_DIR%\pgsql REM SET PGHOST127.0.0.1 set PSQL"%BASE_DIR%\bin\psql.exe" set PG_D…

Protel DXP 面试题详解及参考答案(4万字长文)

解释Protel DXP的基本工作流程。 Protel DXP(现已更名为Altium Designer)是一款用于电子设计自动化(EDA)的软件,主要应用于印刷电路板(PCB)设计。其基本工作流程通常包括以下几个阶段: 项目创建与配置: 开始一个新的设计项目时,首先需要创建一个项目文件,在这个文件…

大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

SQL注入万字详解,基于sqli-labs(手注+sqlmap)

目录 一、什么是SQL 1.什么是SQL 2.SQL的作用 3.MySQL基础知识 4.SQL增、删、改语句 *5.SQL查询语句 二、什么是SQL注入 1.SQL注入原理&#xff1a; 2.SQL注入&#xff1a; 3.SQL注入危害&#xff1a; 4.SQL注入技术分类&#xff1a; 5.防御方法&#xff1a;使用参…