从零开始学习Python

news2024/9/25 14:15:41

目录

从零开始学习Python

引言

环境搭建

安装Python解释器

选择IDE

基础语法

注释

变量和数据类型

变量命名规则

数据类型

运算符

算术运算符

比较运算符

逻辑运算符

输入和输出

控制流

条件语句

循环语句

for循环

while循环

循环控制语句

函数和模块

定义函数

内置函数和模块

常用内置函数

标准模块示例

自定义模块

文件操作

文件打开模式

读写文件示例

异常处理

面向对象编程

类和对象

定义类

继承

多态

常用库简介

NumPy

Pandas

Matplotlib

实践项目

项目一:猜数字游戏

项目二:简单的记事本程序

进阶学习资源

推荐书籍

在线课程

社区和论坛

总结

附录:常用函数和方法速查表

字符串方法

列表方法

字典方法


 

引言

Python是一种高级、解释型、通用的编程语言,由Guido van Rossum于1991年首次发布。凭借其简洁的语法和强大的功能,Python已广泛应用于Web开发数据分析人工智能科学计算等领域。

学习目标:

  • 理解Python的基本语法和结构
  • 掌握常用的数据类型和操作
  • 学会编写函数和使用模块
  • 能够进行文件操作和异常处理
  • 了解面向对象编程的基本概念
  • 使用常用的第三方库进行实践

环境搭建

安装Python解释器

Python有两个主要版本:Python 2和Python 3。Python 2已停止更新,建议安装Python 3

各操作系统安装指南:

  • Windows:
    1. 访问Python官方网站下载Windows安装包。
    2. 运行安装程序,勾选“Add Python to PATH”选项,方便在命令行中使用Python。
  • macOS:
    • 使用Homebrew安装:在终端中执行brew install python3
  • Linux:
    • 使用包管理器安装,如Ubuntu下执行sudo apt-get install python3

选择IDE

一个好的集成开发环境(IDE)可以提高编程效率。

推荐IDE:

IDE名称特点
IDLEPython自带,轻量级,适合入门
PyCharm功能强大,支持丰富插件,专业版收费
Visual Studio Code轻量级,扩展性强,跨平台

基础语法

注释

  • 单行注释:以#开头。

    # 这是一个单行注释

  • 多行注释:使用三引号'''"""包裹。

    ''' 这是一个 多行注释 '''

变量和数据类型

变量命名规则

  • 只能包含字母数字下划线_)。
  • 不能以数字开头。
  • 区分大小写。

数据类型

数据类型描述示例
整数整数类型,如年龄、数量age = 25
浮点数带小数点的数,如重量weight = 70.5
字符串文字或字符序列name = "Alice"
布尔值真或假is_student = True
列表有序可变的元素集合scores = [90, 85, 88]
元组有序不可变的元素集合dimensions = (1920, 1080)
字典键值对的无序集合person = {'name': 'Bob', 'age': 30}
集合无序不重复元素的集合unique_numbers = {1, 2, 3}

运算符

算术运算符

运算符描述示例
+加法3 + 2 = 5
-减法3 - 2 = 1
*乘法3 * 2 = 6
/除法3 / 2 = 1.5
//整除3 // 2 = 1
%取模3 % 2 = 1
**3 ** 2 = 9

比较运算符

运算符描述示例
==等于3 == 2(False)
!=不等于3 != 2(True)
>大于3 > 2(True)
<小于3 < 2(False)
>=大于等于3 >= 2(True)
<=小于等于3 <= 2(False)

逻辑运算符

运算符描述示例
andTrue and False(False)
orTrue or False(True)
notnot True(False)

输入和输出

  • 输出:使用print()函数。

     
    print("Hello, World!")
    

     

  • 输入:使用input()函数。

     
    name = input("请输入你的名字:")
    print("你好," + name)
    

     

控制流

条件语句

使用ifelifelse控制程序的执行路径。

 
age = 20
if age >= 18:
    print("成年人")
elif age >= 13:
    print("青少年")
else:
    print("儿童")

 

循环语句

for循环

用于遍历序列。

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

 

while循环

根据条件反复执行。

 
count = 0
while count < 5:
    print(count)
    count += 1

 

循环控制语句

  • break:终止循环。
  • continue:跳过本次迭代。
 
for i in range(10):
    if i % 2 == 0:
        continue  # 跳过偶数
    if i > 7:
        break     # 大于7时终止循环
    print(i)

 

函数和模块

定义函数

使用def关键字定义函数,提高代码的重用性。

 
def greet(name):
    return "Hello, " + name

message = greet("Alice")
print(message)

 

内置函数和模块

常用内置函数

函数名描述
len()返回对象长度
max()返回最大值
min()返回最小值
sum()求和
type()返回对象类型

标准模块示例

  • math模块:提供数学函数。

     
    import math
    print(math.pi)          # 输出圆周率
    print(math.sqrt(16))    # 输出4.0
    

     

  • random模块:生成随机数。

     
    import random
    print(random.random())  # 输出0到1之间的随机浮点数
    

     

自定义模块

  • 创建模块:新建一个.py文件,编写函数或变量。

  • 导入模块:使用import关键字。

     
    # 在my_module.py中定义函数
    def say_hello():
        print("Hello from my_module!")
    
    # 在主程序中导入并使用
    import my_module
    my_module.say_hello()
    

     

文件操作

文件打开模式

模式描述
r读取(默认)
w写入(会覆盖文件)
a追加
rb二进制读取
wb二进制写入

读写文件示例

 
# 写入文件
with open('example.txt', 'w') as f:
    f.write("Hello, File!")

# 读取文件
with open('example.txt', 'r') as f:
    content = f.read()
    print(content)

 

异常处理

通过try-except块捕获异常,保证程序的健壮性。

 
try:
    with open('nonexistent.txt', 'r') as f:
        content = f.read()
except FileNotFoundError:
    print("文件未找到")

 

面向对象编程

类和对象

定义类

 
class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        pass

 

继承

 
class Dog(Animal):
    def speak(self):
        print(self.name + "说:汪汪汪")

dog = Dog("小黑")
dog.speak()

 

多态

不同对象对同一方法具有不同的实现。

 
class Cat(Animal):
    def speak(self):
        print(self.name + "说:喵喵喵")

animals = [Dog("小黑"), Cat("小白")]
for animal in animals:
    animal.speak()

 

常用库简介

NumPy

用于科学计算的库,支持多维数组和矩阵运算。

 
import numpy as np
array = np.array([[1, 2, 3], [4, 5, 6]])
print(array.shape)  # 输出(2, 3)

 

Pandas

提供高效的数据操作和分析。

 
import pandas as pd
data = {'Name': ['Tom', 'Jerry'], 'Age': [5, 6]}
df = pd.DataFrame(data)
print(df)

 

Matplotlib

用于创建静态、动态和交互式的可视化图表。

 
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.title("简单折线图")
plt.xlabel("X轴")
plt.ylabel("Y轴")
plt.show()

 

实践项目

项目一:猜数字游戏

需求分析:

  • 程序随机生成一个1到100的整数。
  • 用户输入猜测的数字,程序给予提示:大了、小了、猜对了。
  • 记录用户猜测的次数,直到猜对为止。

实现代码:

 
import random

def guess_number():
    number = random.randint(1, 100)
    count = 0
    while True:
        try:
            guess = int(input("猜猜看我心里的数字是几(1-100):"))
            count += 1
            if guess < number:
                print("太小了,再试一次。")
            elif guess > number:
                print("太大了,再试一次。")
            else:
                print(f"恭喜你,猜中了!你一共猜了{count}次。")
                break
        except ValueError:
            print("请输入有效的整数。")

guess_number()

 

项目二:简单的记事本程序

需求分析:

  • 用户可以添加新的待办事项。
  • 用户可以查看已添加的待办事项。
  • 数据需要持久化存储在文件中。

实现代码:

 
def display_menu():
    print("\n--- 记事本菜单 ---")
    print("1. 添加待办事项")
    print("2. 查看待办事项")
    print("3. 退出")

def add_todo():
    todo = input("请输入待办事项:")
    with open('todos.txt', 'a') as f:
        f.write(todo + '\n')
    print("待办事项已添加。")

def view_todos():
    print("\n--- 待办事项列表 ---")
    try:
        with open('todos.txt', 'r') as f:
            todos = f.readlines()
            if todos:
                for idx, todo in enumerate(todos, 1):
                    print(f"{idx}. {todo.strip()}")
            else:
                print("暂无待办事项。")
    except FileNotFoundError:
        print("暂无待办事项。")

def main():
    while True:
        display_menu()
        choice = input("请选择操作(1/2/3):")
        if choice == '1':
            add_todo()
        elif choice == '2':
            view_todos()
        elif choice == '3':
            print("感谢使用,程序已退出。")
            break
        else:
            print("无效的选择,请重新输入。")

if __name__ == "__main__":
    main()

 

进阶学习资源

推荐书籍

书名作者适用读者
《Python编程:从入门到实践》Eric Matthes初学者
《流畅的Python》Luciano Ramalho有一定基础的开发者
《Python Cookbook》David Beazley等进阶开发者

总结

通过本篇文章,我们从环境搭建开始,逐步深入了解了Python的基本语法、控制流、函数和模块、文件操作、面向对象编程以及常用的第三方库。希望读者能够通过实践项目加深理解,并利用提供的资源继续深入学习。

学习建议:

  • 持续练习:编程技能需要不断练习才能熟练。
  • 阅读源码:通过阅读他人代码提升自己的编码水平。
  • 参与社区:积极参与社区讨论,分享和获取经验。

附录:常用函数和方法速查表

字符串方法

方法描述示例
str.upper()将字符串转换为大写"hello".upper() => "HELLO"
str.lower()将字符串转换为小写"HELLO".lower() => "hello"
str.strip()去除两端空白符" hello ".strip() => "hello"
str.split()分割字符串为列表"a,b,c".split(",") => ['a','b','c']
str.replace(old, new)替换子字符串"hello".replace("l", "x") => "hexxo"

列表方法

方法描述示例
list.append(x)在末尾添加元素lst.append(4)
list.insert(i, x)在指定位置插入元素lst.insert(1, 'a')
list.pop(i)移除并返回指定位置的元素lst.pop(2)
list.sort()排序列表lst.sort()
list.reverse()反转列表lst.reverse()

字典方法

方法描述示例
dict.keys()返回所有键d.keys()
dict.values()返回所有值d.values()
dict.items()返回所有键值对d.items()
dict.get(key, default)获取键对应的值d.get('a', 0)
dict.update(other_dict)更新字典d.update({'b':2})

希望本篇文章能帮助您顺利入门Python编程的世界,开启新的学习之旅!92f23f18cbda462593419fd63956c57f.webp

 

 

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

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

相关文章

酒店智能插座有什么用途

作为提升住宿体验的关键一环&#xff0c;酒店智能插座正以其独特的功能和便捷性&#xff0c;悄然改变着旅客的居住体验。本文将深入探讨酒店智能插座的多种用途。 一、能源管理与节能减排 酒店智能插座首要的功能之一在于其强大的能源管理能力。通过内置的传感器和智能算法&…

低成本搭建企业专属云电脑 贝锐向日葵推出私有化云电脑服务

作为一种硬件虚拟化技术&#xff0c;云电脑的优势是十分显著的&#xff0c;比如可以随时随地访问&#xff0c;拥有较高的性能、无需我们购买昂贵的实体硬件、计算资源可以按需灵活拓展等等。 如今&#xff0c;越来越多的企业也开始认识到云电脑所带来的优势&#xff0c;将云电…

软考(9.22)

1 在浏览器的地址栏中输入xxxyftp.abc.can.cn&#xff0c;在该URL中( )是要访问的主机名。 A.xxxyftp B.abc C.can D.cn 协议://主机名.域名.域名后缀或IP地址(:端口号)/目录/文件名。 本题xxxyftp是主机名&#xff0c;选择A选项。 2 假设磁盘块与缓冲区大小相同&#xff0c;…

DAMODEL丹摩智算平台实践CogVideoX

文章目录 前言 一、平台账号注册并登录 二、部署CogVideoX &#xff08;一&#xff09;简介 &#xff08;二&#xff09;部署 1. 创建实例 2. 配置环境和依赖 3.预制模型与配置文件 三、开始运行 总结 前言 该文章主要记录DAMODEL丹摩智算平台实践过程与心得体会&…

【自动化测试】Appium Server如何安装和Appium Server安装困难的原因和解决方法以及常见的一些安装失败的错误和解决方法

引言 Appium Server安装过程时常出现问题&#xff0c;以下是安装Appium Server过程一些原因、常见错误和解决方法 文章目录 引言一、Appium Server如何安装1.1 Node.js 安装1.2 使用NPM安装Appium1.3 验证Appium安装1.4 运行Appium Server1.5 使用Appium Desktop&#xff08;可…

QT C++ 自学积累 『非技术文』

QT C 自学积累 『非技术文』 最近一段时间参与了一个 QT 项目的开发&#xff0c;使用的是 C 语法&#xff0c;很遗憾的是我之前从来没有接触过 C &#xff0c;大学没有开过这堂课&#xff0c;也没用自己学习过&#xff0c;所有说上手贼慢&#xff0c;到现在为止其实也不是很清楚…

经纬恒润全冗余R-EPS助力L4级自动驾驶落地

随着L4级别自动驾驶技术的逐步成熟与商业化进程加速&#xff0c;行业对车辆安全性的要求达到了新的高度。为了确保自动驾驶车辆全天候、全路况下安全运行&#xff0c;冗余系统的研发与应用成为关键。在这一背景下&#xff0c;经纬恒润开发了齿条式全冗余电动助力转向系统R-EPS&…

Spring Boot 进阶- Spring Boot入门程序详解

在上篇文章中,我们创建了一个RESTFul风格的接口项目,并且分析了它的相关依赖,这里我们就来看一下这个项目还有什么值得我们分析的地方。前面提到的,在SpringBoot的场景启动器中,我们提供了一些自动配置的功能,那么在之前我们也说过,这些自动配置,除了可以自动配置之外,…

基于springboot在线点餐系统

基于springbootvue实现的点餐系统 &#xff08;源码L文ppt&#xff09;4-077 第4章 系统设计 4.1 总体功能设计 一般个人用户和管理者都需要登录才能进入点餐系统&#xff0c;使用者登录时会在后台判断使用的权限类型&#xff0c;包括一般使用者和管理者,一般使用…

【C++】stack和queue的使用及模拟实现

stack就是栈的意思&#xff0c;这个结构遵循后进先出(LIFO)的原则&#xff0c;可以将栈想象为一个子弹夹&#xff0c;先进去的子弹后出来。 queue就是队列的意思&#xff0c;这个结构遵循先进先出(FIFO)的原则&#xff0c;可以将对列想象成我们排队买饭的场景&#xff0c;先排…

Java Web应用升级故障案例解析

在一次Java Web应用程序的优化升级过程中&#xff0c;从Tomcat 7.0.109版本升级至8.5.93版本后&#xff0c;尽管在预发布环境中验证无误&#xff0c;但在灰度环境中却发现了一个令人困惑的问题&#xff1a;新日志记录神秘“失踪”。本文深入探讨了这一问题的排查与解决过程&…

一份在阿里内网悄悄流传的大模型面试真题!(2024年最新)

随着人工智能技术的迅猛发展&#xff0c;计算机视觉&#xff08;CV&#xff09;、自然语言处理&#xff08;NLP&#xff09;、搜索、推荐、广告推送和风险控制等领域的岗位越来越受欢迎&#xff0c;而对于大型模型技术的掌握成为了这些岗位的标配。 但目前公开的大模型资源还是…

FAT32取证分析

前言&#xff1a; 在正常工作中经常会有数据恢复或者取证分析的场景&#xff0c;数据是否能被恢复&#xff0c;主要还是看数据是否被覆盖&#xff0c;正常情况下文件虽然被删除&#xff0c;只是修对应的标志位&#xff0c;文件本身数据并不会被破坏&#xff0c;所以我们就可以…

Chrome截取网页全屏

1.使用Chrome开发者工具 Chrome自带的开发者工具&#xff0c;可以进行网页整页截图&#xff0c; 首先打开你想截图的网页&#xff0c; 然后按下 F12,调出开发者工具&#xff0c; 接着按Ctrl Shift P。 紧接着输入指令 capture&#xff0c; 它会提示有三个选项&#xff0c;如…

应用层 IV(万维网WWW)【★★】

&#xff08;★★&#xff09;代表非常重要的知识点&#xff0c;&#xff08;★&#xff09;代表重要的知识点。 一、WWW 的概念与组成结构 1. 万维网的概念 万维网 WWW&#xff08;World Wide Web&#xff09;并非某种特殊的计算机网络。万维网是一个大规模的、联机式的信息…

echarts y轴滚动(react版本)

目录 效果图如下&#xff0c;代码见下方 代码可以直接复制&#xff0c;图片和css也要复制 tsx代码 css代码 代码里用到的图片&#xff0c;可以换成自己项目的图 效果图如下&#xff0c;代码见下方 代码可以直接复制&#xff0c;图片和css也要复制 tsx代码 import React,…

Leetcode 1396. 设计地铁系统

1.题目基本信息 1.1.题目描述 地铁系统跟踪不同车站之间的乘客出行时间&#xff0c;并使用这一数据来计算从一站到另一站的平均时间。 实现 UndergroundSystem 类&#xff1a; void checkIn(int id, string stationName, int t) 通行卡 ID 等于 id 的乘客&#xff0c;在时间…

自动化测试常用函数:元素定位、操作与窗口管理

目录 一、元素的定位 1. cssSelector 2. xpath 2.1 获取HTML页面所有的节点 2.2 获取HTML页面指定的节点 2.3 获取一个节点中的直接子节点 2.4 获取一个节点的父节点 2.5 实现节点属性的匹配 2.6 使用指定索引的方式获取对应的节点内容 二、操作测试对象 1. 点击/提交…

多个ECU测试方案-IP地址相同-DoIP刷新-环境测试耐久测试

情况1&#xff1a;只有一个ECU进行测试 - 接口模块只需要使用一个车载以太网转换器&#xff1b; 情况2&#xff1a;多ECU同时测试&#xff0c;但ECU IP地址不一样&#xff0c;上位机多个网口 - 上位机测试软件&#xff0c;需要通过PC的不同网卡&#xff0c;访问各个ECU&#…

基于 RealSense D435相机实现手部姿态检测

基于 RealSense D435i相机进行手部姿态检测&#xff0c;其中采用 Mediapipe 进行手部检测&#xff0c;以下是详细步骤&#xff1a; Mediapipe 是一个由 Google开发的开源框架&#xff0c;专门用于构建多媒体处理管道&#xff0c;特别是计算机视觉和机器学习任务。它提供了一系列…