学习Python,需要知道的经典案例

文章目录

  • 一、Python简介
  • 二、Python经典案例
    • 1. 猜数字游戏
    • 2. 文本文件处理
    • 3. 网络爬虫
    • 4. 数据可视化
    • 5. 电子邮件发送
    • 6. 实现一个简单的Web服务器。
  • 三、Python处理IP相关知识点
    • 1. 处理IP地址
    • 2. 网络编程(TCP/IP)
    • 3. 使用第三方库处理IP信息
  • 四、相关链接

一、Python简介

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。它最初由Guido van Rossum于1989年底发明,并于1991年首次公开发行。Python的设计哲学强调代码的可读性,并允许开发者用少量代码表达想法,同时支持多种编程范式,包括面向过程、面向对象和函数式编程。

主要特点

  1. 易于学习:Python的语法清晰,代码简洁易懂,且拥有大量学习资源,因此无论是编程初学者还是经验丰富的开发者,都可以轻松上手。
  2. 跨平台性:Python可以在多种操作系统上运行,如Windows、Linux、macOS等,无需担心平台的兼容性问题。
  3. 丰富的标准库和第三方库:Python拥有庞大的标准库,涵盖了从基础数据类型到网络编程的各个方面。此外,还有大量的第三方库可供使用,如NumPy、Pandas用于数据处理和分析,Django、Flask用于Web开发,TensorFlow、PyTorch用于机器学习和深度学习等。
  4. 可扩展性:Python可以使用C、C++或Java等语言编写扩展模块,这使得Python能够与其他语言进行交互,从而利用它们的特性。
  5. 广泛的应用领域:Python在Web开发、数据分析、人工智能、科学计算、网络编程、自动化运维等多个领域都有广泛的应用。无论是构建复杂的Web应用,还是进行大数据分析,Python都能提供强大的支持。

Python是一种功能强大、易于学习和使用的编程语言,它拥有广泛的应用领域和丰富的资源支持,是编程领域的热门选择之一。无论是初学者还是专业人士,都可以通过Python实现自己的想法并创造出有趣的应用。

二、Python经典案例

Python经典案例代码涵盖了各种应用场景,从简单的脚本到复杂的系统。

1. 猜数字游戏

一个简单的猜数字游戏,程序随机生成一个数字,用户输入猜测的数字,根据大小提示用户继续猜。

import randomdef guess_number():number_to_guess = random.randint(1, 100)guess = Noneattempt = 0while guess != number_to_guess:guess = int(input('猜一个1到100之间的数字: '))attempt += 1if guess < number_to_guess:print('太小了!')elif guess > number_to_guess:print('太大了!')print(f'恭喜你,猜对了!数字是 {number_to_guess}。你尝试了 {attempt} 次。')guess_number()

2. 文本文件处理

读取、写入和修改文本文件。

# 写入文件
with open('example.txt', 'w') as f:f.write('Hello, Python!\n')f.write('This is an example file.\n')# 读取文件
with open('example.txt', 'r') as f:content = f.read()print(content)# 修改文件(通常需要先读取、修改、再写入)
with open('example.txt', 'r') as f:lines = f.readlines()# 修改某行内容
lines[0] = 'Hi, Python!\n'# 写入修改后的内容
with open('example.txt', 'w') as f:f.writelines(lines)

3. 网络爬虫

使用requests库爬取网页内容。

import requests
from bs4 import BeautifulSoupdef fetch_data(url):response = requests.get(url)if response.status_code == 200:return response.textelse:return Nonedef parse_data(html):soup = BeautifulSoup(html, 'html.parser')# 假设我们要抓取所有的标题标签titles = soup.find_all('title')return [title.string for title in titles]url = 'https://example.com'
html = fetch_data(url)
if html:titles = parse_data(html)print(titles)
else:print('Failed to fetch data.')

4. 数据可视化

使用matplotlib库进行简单的数据可视化。

import matplotlib.pyplot as plt
import numpy as np# 创建数据
x = np.linspace(0, 10, 100)
y = np.sin(x)# 绘制图形
plt.plot(x, y)
plt.title('y = sin(x)')
plt.xlabel('x')
plt.ylabel('y')
plt.grid(True)
plt.show()

5. 电子邮件发送

使用smtplibemail库发送电子邮件。

import smtplib
from email.mime.text import MIMETextdef send_email(subject, body, to_email, from_email, password):msg = MIMEText(body)msg['Subject'] = subjectmsg['From'] = from_emailmsg['To'] = to_emailserver = smtplib.SMTP('smtp.gmail.com', 587)server.starttls()server.login(from_email, password)text = msg.as_string()server.sendmail(from_email, to_email, text)server.quit()# 使用示例
send_email('Hello!', 'This is a test email.', 'to@example.com', 'from@example.com', 'your_password')

6. 实现一个简单的Web服务器。

from http.server import BaseHTTPRequestHandler, HTTPServer# 定义处理HTTP请求的类
class MyServer(BaseHTTPRequestHandler):# 处理GET请求def do_GET(self):self.send_response(200)self.send_header('Content-type', 'text/html')self.end_headers()# 发送响应消息给客户端message = "Hello, world!"self.wfile.write(message.encode('utf-8'))returndef run():server_address = ('', 8000)httpd = HTTPServer(server_address, MyServer)print('Starting server...')httpd.serve_forever()if __name__ == "__main__":run()

这个代码创建了一个简单的Web服务器,当客户端发送GET请求时,服务器会返回一条"Hello, world!"的消息。服务器在8000端口上监听请求。你可以通过浏览器访问http://localhost:8000来测试这个服务器。

三、Python处理IP相关知识点

当提到Python IP时,可能有几个不同的上下文,包括处理IP地址、网络编程(如TCP/IP协议)或IP相关的库和工具。

当然,想更具体了解IP相关的信息,可扫描了解下

在这里插入图片描述

以下是一些与Python和IP相关的常见用例和示例代码

1. 处理IP地址

Python的ipaddress模块可以用来处理IPv4和IPv6地址。

import ipaddress# 创建IPv4地址对象
ipv4_address = ipaddress.ip_address('192.0.2.1')
print(ipv4_address)
print(ipv4_address.version)  # 输出地址版本,4表示IPv4# 创建IPv6地址对象
ipv6_address = ipaddress.ip_address('2001:db8::1')
print(ipv6_address)
print(ipv6_address.version)  # 输出地址版本,6表示IPv6# 创建IPv4网络对象
ipv4_network = ipaddress.ip_network('192.0.2.0/24')
print(ipv4_network)
print(list(ipv4_network.hosts()))  # 列出网络中的主机地址

2. 网络编程(TCP/IP)

Python的socket模块可以用来进行TCP/IP网络编程。

import socket# 创建一个TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定到本地地址和端口
server_address = ('localhost', 12345)
print('Starting up on {} port {}'.format(*server_address))
sock.bind(server_address)# 监听连接
sock.listen(1)while True:print('Waiting to accept a connection')connection, client_address = sock.accept()try:print('Connection from', client_address)# 接收数据while True:data = connection.recv(1024)print('Received {!r}'.format(data))if not data:break# 发送数据connection.sendall(b'Thank you for connecting')finally:# 清理连接connection.close()

3. 使用第三方库处理IP信息

有时,你可能需要使用第三方库来处理更复杂的IP信息,如requests库来发送HTTP请求并获取IP相关的数据,或者python-geoip库来根据IP地址查询地理位置信息。

使用requests库发送HTTP请求获取IP信息:

import requests# 发送HTTP请求到某个IP信息API
response = requests.get('http://api.example.com/ip')
data = response.json()# 输出IP地址
print(data['ip'])

四、相关链接

  1. Python下载安装中心
  2. Python官网
  3. Python软件下载
  4. 「Python系列」Python简介及案例
  5. 「Python系列」Python基础语法/数据类型
  6. 「Python系列」Python解释器
  7. 「Python系列」Python运算符
  8. 「Python系列」Python数据结构
  9. 「Python系列」Python元组
  10. 「Python系列」Python集合
  11. 「Python系列」Python列表

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

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

相关文章

Mysql与MyBatis

1 Sql语句 增删改查 1.1 建表 -- cmd展示数据库 show databases ; -- cmd登录数据库 mysql localhost -u root -p-- auto_increment 自动增长&#xff0c;每添加一个表项id自动增1 -- char定长字符串 0-255&#xff0c;不足十个字符按十个字符算&#xff0c; varchar变长字符串…

搭建项目后台系统基础架构

任务描述 1、了解搭建民航后端框架 2、使用IDEA创建基于SpringBoot、MyBatis、MySQL、Redis的Java项目 3、以原项目为参照搭建项目所涉及到的各个业务和底层服务 4、以原项目为例&#xff0c;具体介绍各个目录情况并参照创建相关文件夹 1、创建项目后端 BigData-KongGuan …

Transformer的前世今生 day01(预训练、统计语言模型)

预训练 在相似任务中&#xff0c;由于神经网络模型的浅层是通用的&#xff0c;如下图&#xff1a; 所以当我们的数据集不够大&#xff0c;不能产生性能良好的模型时&#xff0c;可以尝试让模型B在用模型A的浅层基础上&#xff0c;深层的部分自己生成参数&#xff0c;减小数据集…

tp8 mpdf 导出pdf

1. 安装mpdf composer require mpdf/mpdf 2. 然后 使用 use mpdf\Mpdf; 或者 require_once __DIR__ . /vendor/autoload.php; 官方文档 mPDF – mPDF 手册 文档里有很多东西 可以自己去研究 3. 编写代码 下载 (支持中文) $mpdf new Mpdf([mode > utf-8,"autoS…

Netty学习——源码篇2 客户端Bootstrap(二)

接上篇 Bootstrap源码-客户端 1 Handler的添加过程 Netty有一个强大和灵活之处就是基于Pipeline的自定义Handler机制。基于此&#xff0c;可以像添加插件一样自由组合各种各样的Handler来完成业务逻辑。例如&#xff0c;需要处理HTTP数据&#xff0c;那么就可以在Pipeline前添…

基于java+springboot+vue实现的电影院选票系统(文末源码+Lw+ppt)23-467

摘 要 时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;电影院选票系统当然不能排除在外。电影院选票系统是在实际应用和软件工程的开发原理之上&#xff0c;运用java语言&#xff0c;前台Vue框…

Hive:数据仓库利器

1. 简介 Hive是一个基于Hadoop的开源数据仓库工具&#xff0c;可以用来存储、查询和分析大规模数据。Hive使用SQL-like的HiveQL语言来查询数据&#xff0c;并将其结果存储在Hadoop的文件系统中。 2. 基本概念 介绍 Hive 的核心概念&#xff0c;例如表、分区、桶、HQL 等。 …

k8s部署hadoop

&#xff08;作者&#xff1a;陈玓玏&#xff09; 配置和模板参考helm仓库&#xff1a;https://artifacthub.io/packages/helm/apache-hadoop-helm/hadoop 先通过以下命令生成yaml文件&#xff1a; helm template hadoop pfisterer-hadoop/hadoop > hadoop.yaml用kube…

NodeJs利用腾讯云实现手机发送验证码

本文介绍如何在nodejs实现短信发送&#xff0c;以腾讯云的短信验证为例。 腾讯云中准备工作 首先需要腾讯云的个人或者企业认证的账号&#xff0c;个人会赠送一百条&#xff0c;企业赠送一千条&#xff0c;可以用于测试&#xff0c;地址&#xff1a;腾讯云短信服务。然后需要…

电机学(笔记一)

磁极对数p&#xff1a; 直流电机的磁极对数是指电机定子的磁极对数&#xff0c;也等于电机电刷的对数。它与电机的转速和扭矩有直接关系。一般来说&#xff0c;极对数越多&#xff0c;电机转速越低&#xff0c;扭矩越大&#xff0c;适用于低速、高扭矩的场合&#xff1b;相反&…

免 费 搭 建 多模式商城:b2b2c、o2o、直播带货一网打尽

鸿鹄云商 b2b2c产品概述 【b2b2c平台】&#xff0c;以传统电商行业为基石&#xff0c;鸿鹄云商支持“商家入驻平台自营”多运营模式&#xff0c;积极打造“全新市场&#xff0c;全新 模式”企业级b2b2c电商平台&#xff0c;致力干助力各行/互联网创业腾飞并获取更多的收益。从消…

IonQ最新研究突破!引入光量子纠缠以构建量子计算网络

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 编辑丨慕一 编译/排版丨沛贤 深度好文&#xff1a;700字丨5分钟阅读 2024年2月22日&#xff0c;美国量子计算公司IonQ宣布&#xff0c;公司研究团队已实现可重复地生成与离子纠缠的光子&#…

Python之Web开发中级教程----Django站点管理

Python之Web开发中级教程----Django站点管理 网站的开发分为两部分&#xff1a;内容发布和公共访问 内容发布是由网站的管理员负责查看、添加、修改、删除数据 Django能够根据定义的模型类自动地生成管理模块 使用Django的管理模块, 需要按照如下步骤操作 : 1.管理界面本地…

图论题目集一(代码 注解)

目录 题目一&#xff1a; 题目二&#xff1a; 题目三&#xff1a; 题目四&#xff1a; 题目五&#xff1a; 题目六&#xff1a; 题目七&#xff1a; 题目一&#xff1a; #include<iostream> #include<queue> #include<cstring> using namespace st…

rviz上不显示机器人模型(模型只有白色)

文档中的是base_footprint&#xff0c;需要根据自己所设的坐标系更改&#xff0c;我的改为base_link 如何查看自己设的坐标系&#xff1a; 这些parent父坐标系就是 同时打开rviz后需要更改成base_link

Java后端八股----JVM篇

上图中线程1&#xff0c;2如果资源被抢占了&#xff0c;则程序计数器记录一下执行的行号&#xff0c;等到资源就绪后会从记录的行号继续向后执行。 Java8把静态变量以及常量放到了线程的本地内存原空间中(避免放在堆中不可控)。 &#x1f446;图中第二种情况不太容易出现…

gPTP简介

1、gPTP&#xff08;generalized precision time protocol&#xff09;广义时钟同步协议 gPTP&#xff08;generalized precision time protocol&#xff09;广义时钟同步协议&#xff0c;即IEEE 802.1AS协议。它是IEEE 1588协议的延伸&#xff0c;可以为TSN提供全局精准…

使用RabbitMQ,关键点总结

文章目录 1.MQ的基本概念2.常见的MQ产品3.MQ 的优势和劣势3.1 优势3.2 劣势 4.RabbitMQ简介4.1RabbitMQ 中的相关概念 1.MQ的基本概念 MQ全称 Message Queue&#xff08;消息队列&#xff09;&#xff0c;是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。…

RabbitMQ 安装保姆级教程

目录 1.MQ引言 1.1 什么是MQ 1.2 MQ有哪些 1.3 不同MQ特点 2.RabbitMQ 的引言 2.1 RabbitMQ 2.2 RabbitMQ 的安装 2.2.1 下载 2.2.2 下载的安装包 2.2.3 安装步骤 3. RabiitMQ 配置 3.1RabbitMQ 管理命令行 3.2 web管理界面介绍 3.2.1 overview概览 3.2.2 Admin用…

Linux的背景介绍

1.Linux的发展史 Linux&#xff0c;一般指GNU/Linux&#xff08;单独的Linux内核并不可直接使用&#xff0c;一般搭配GNU套件&#xff0c;故得此称呼&#xff09;&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦兹&#xff08…