当前位置: 首页 > news >正文

Python 基础入门

给我家憨憨写的python教程

——雁丘

Python解释器Pycharm的安装部署

  • 关于本专栏
  • 一 Python简介
    • 1.1 Python优点
    • 1.2 支持的编程方式
    • 1.3 版本兼容问题
    • 1.4 Python的开发环境
      • 1.4.1 常用的 Python 编辑器
      • 1.4.2 常用的 Python IDE
      • 1.4.3 Python IDLE
      • 1.4.4 第三方库安装
    • 1.5 Python 的运行方式
      • 1.5.1 Shell 交互方式
      • 1.5.2 文件执行方式
  • 二 Python 基础语法
    • 2.1 Python 的基本构成
    • 2.2 变量
      • 2.2.1 对象的属性
      • 2.2.3 变量名的命名规则
      • 2.2.4 变量的使用
      • 2.2.4 对象的管理
    • 2.3 Python 的语句风格
      • 2.3.1 行与缩进
      • 2.3.2 赋值
    • 2.4 注释
  • 三 Python 数据类型基础
    • 3.1 数据类型总表
    • 3.2 非二进制数的表示
    • 3.3 数字类型Number
      • 3.3.1 整型(int)
      • 3.3.2 布尔型(bool)
      • 3.3.3 浮点型(float)
      • 3.3.4 复数型(complex)
    • 3.4 序列(Array)
      • 3.4.1 字符串(String)
      • 3.4.2 列表(List)
      • 3.4.3 元组(Tuple)
      • 3.4.4 对象(Range)
    • 3.5 映射(Mapping)/字典(Dictionary)
    • 3.6 数据类型转换

关于本专栏

关于Python安装与环境变量配置请查看本专栏文章Python安装与环境变量配置傻瓜式教程(2023年9月)

关于Pycharm的安装部署和基本使用请查看本专栏文章Python解释器和Pycharm的傻瓜式安装部署

一 Python简介

1.1 Python优点

适用面广、简单易学、开发效率高

1.2 支持的编程方式

支持面向对象、面向函数、函数式编程等多种编程方式,同时还是一种胶水语言,很容易与其他主流设计语言混合编程

1.3 版本兼容问题

  1. Python3不兼容Python2,因为有重要的修正。比如Python3中3/4=0.75而不是0,所有的字符串都是Unicode字符串等
  2. Python 3.9+版本不能在Windows 7或更早版本上使用。

1.4 Python的开发环境

Python 开发环境通常包括两类:Python 编辑器集成开发环境(integrated development environment.IDE)

1.4.1 常用的 Python 编辑器

常用的 Python 编辑器有 Sublime TextVisual Studio Code等,它们首先需要安装好基本的 Python 运行环境,一般都具有自动补全和智能提示等编辑和调试功能。
小巧,定制方便,但功能相对简单。

1.4.2 常用的 Python IDE

Python IDE 如 PyCharmAnaconda 等则功能更丰富,不仅包含基本的 Python 运行环境和编辑器,一般还具有项目管理和版本控制等功能,通常还预装了某些扩展库、文档和教程,可省去安装模块和寻找使用帮助的麻烦。

Anaconda集成了大量流行的科学计算和数据分析第三方库,推荐新手和专供数据处理的人使用

1.4.3 Python IDLE

IDLE是 Python 官方内置的一个简单小巧的 IDE。它包含了编辑器、交互式命令行和调试器等基本组件,可以应付大多数 Python 的简单应用开发。在 Python 官网提供了多个操作系统下的IDLE 安装包。

1.4.4 第三方库安装

可以在 PyPI 页面上搜索和安装、发布 Python 第三方库(模块)
安装其中的第三方库官方推荐使用Python 库管理工具 pip,只要将第三方库下载到本地然后进行安装即可。
举例
安装安卓自动测试库atx,步骤为:

  1. Python 官网下载文件 get-pip.py(目前 Python IDE 中一般都预装了 pip,不需要另外载和安装,直接使用第3步安装即可)
  2. 在命令提示符方式下运行如下命令安装 pip。
python get-pip. py

3 使用 pip 安装 atx 第三方库。

pip install atx

在这里插入图片描述

1.5 Python 的运行方式

无论哪种方式,实质上都是解释执行,代码较短或较多交互操作优先 Shell 交互方式 ;代码较长优先文件执行方式

1.5.1 Shell 交互方式

每输入一条命令就执行,常见于命令提示符和 Python 编辑器
在这里插入图片描述

1.5.2 文件执行方式

创建一个扩展名为.py的文件,每次保存后整体运行
在这里插入图片描述

二 Python 基础语法

2.1 Python 的基本构成

变量表达式语句是 Python 程序的基本要素

2.2 变量

Python 中的变量(variable)是用来标识对象或引用对象的。Python 作为一种面向对象的编程语言,它的实例、函数、方法、类都是对象。

2.2.1 对象的属性

所有的 Python 对象都拥有三个属性,即身份类型

  1. 对象有唯一的身份用于标识自己,可以使用内建函数 id(指向对象的变量)来得到这个身份标识。
  2. 类型决定了该对象可以保存什么类型的值和进行怎样的操作等,可以用内建函数type()查看Python 对象的类型。

2.2.3 变量名的命名规则

Python 中变量名的命名规则也与大多数程序设计语言一样遵循标识符命名规则:

  • 首字符必须字母或下划线
  • 其余字符可以是字母、下划线或是数字
  • 区分大小写

2.2.4 变量的使用

Python 无需声明变量的类型,在第一次赋值由值自动确定变量的类型在这里插入图片描述
在这里插入图片描述

2.2.4 对象的管理

对于内存中的对象 Python 会采用一种称为“引用计数”的方式进行管理
当对象被赋给某个变量时,该变量计数器+1
当计数器为0时,该对象的内存空间被回收

a = 1.2 ; b = 1.2 # 此时a ,b 的id不同
a = 1.2 ; b = a # 此时a ,b 的id相同

但注意,对于小整数[ -5 , 256 ]和仅包含数字、字母和下划线的常量字符串 Python 会缓存和重用,即上述两种情况id均相同
一个函数内部相同的不可变对象id也相同

2.3 Python 的语句风格

2.3.1 行与缩进

  1. 语句出现缩进表示语句块的开始,退出缩进表示语句块的结束
for number in numprog = prog * number
print ('the prog is:',prog)
  1. Python 可以把多个语句写在一行,但需要用分号;隔开,或者换行
  2. 一行长语句可以换行写,但需加上续行符\
  3. 小括号、中括号、花括号、三引号内部可以多行书写且无需续行符

2.3.2 赋值

1.+-*/常规赋值
2. +=-=*=/=%=**=<<=>>=&=^=|=增量赋值

m /= 5   # 相当 m = m / 5
  1. 支持链式赋值
b = a = a + 1  # 相当 a = a + 1 ,b = a
  1. 支持多重复制
a , b =1 , 2
( a , b ) = ( 1 , 2 )

2.4 注释

# 单行注释'''
这是多行注释
'''
  1. #号和注释内容一般建议以一个空格隔开,一般用于单行代码的注释
  2. 单行注释可以嵌套一行的多行注释
  3. 多行注释可以嵌套单行注释
#  ''' 多行注释''''''
# 单行注释
'''

三 Python 数据类型基础

变量没有类型,数据才有类型
如何查看数据类型,通过内置函数type()

type(变量名或数据)

3.1 数据类型总表

Python 数据类型
类型描述举例
数字Number整型(Int)10,-10
浮点型(Float)3.14159,-3.14159
复数型(Complex)5j,(6+3j)
布尔型(Bool)True,False
序列Array字符串String用以存储文本'yanqiu'、"ayu"、'''ahao'''
列表List有序的可变序列[ 1 , 'yanqiu' , 4 ]
元组Tuple有序的不可变数列( 1 , 'yanqiu' , 4 )
对象Range有规律的整数数列range(1,11)
集合Set无序的不重复集合set_a = {'apple', 'banana', 'cherry'}
映射Mapping字典Dictionary无序Key-Value集合favorite_language = { 'jen': 'python', 'phil': 'python'}

3.2 非二进制数的表示

非二进制数的表示
进制举例
二进制0b10
八进制0b10
十六进制0x10

3.3 数字类型Number

3.3.1 整型(int)

>>> a=3
>>>type(a)
<class'int'>
>>>type(-8)
<class'int'>

在 Python3之后,不再严格区分intlong(长整型)

3.3.2 布尔型(bool)

>>> a=True
>>>type(a)
<class'bool'>
>>>int(a)
1
>>>int(False)
0

bool实质是用0、1存储的,True对应1,False对应0,可以用内置函数int()返回布尔型变量的整型值
元素除了是 0、空、False、None外 都算 True;

3.3.3 浮点型(float)

>>> 3.22
3.22
>>>9.8e3
9800
>>> type(-0.48e-2)
<class'float'> 

3.3.4 复数型(complex)

>>> 3+5j
(3+5j)
>>>4j
4j
>>> type(3+5j)
<class'complex'> 

特别地,为了保证数是虚数,0j前的0不能省略

3.4 序列(Array)

这里仅简单介绍,详细的使用方法参见本系列下篇

3.4.1 字符串(String)

字符串(string)用引号引起来的字符集合。字符串创建后不可变,在 Python 中可以使用单引号、双引号、三引号表示字符串。例如:

>>> myStringl = 'Hello, World!'
>>> myString2 = "Hello, World!"
>>>> myString3 = '''Hello, World! '''  #用 print()函数输出这 3个字符串变量的结果都是
"Hello,World!"
"Hello,World!"
"Hello,World!"

单个元素通过索引来访问,索引值从0开始
多个字符通过切片操作来访问。

>>> myStringl[ 0]
'H'

3.4.2 列表(List)

列表是 Python 中有特色的经典数据类型。列表与字符串一样也是序列类型,但是列表是可变的容器。

与传统的数组相比,列表可以存储不同类型的数据对象

列表也同样支持索引和切片操作。

>>> aList = [ 1, 'Maths ', 88]
>>> aList
[1,'Maths',88]
>>> aList[2] = 90  # 改变了索引值为2的元素的值
>>>> aList
[1, ' Maths ',90]

3.4.3 元组(Tuple)

元组列表有很多相似的地方,它们都可以存储不同类型的数据对象,都支持索引和切片操作等。但元组是不可变的

>>> aTuple = (1,'Maths',88)
>>> aTuple
(1,'Maths',88)
>>> aTuple[2] = 90 # 在元组中试图改变元素值会报错Traceback ( most recent call last) :File " <pyshell#1>" , line 1, in <module>aTuple[2] = 90TypeError: 'tuple' object does not support item assignmen

3.4.4 对象(Range)

Python 中使用range()函数生成一个不可变的 range 对象,一个有规律的整数序列。例如

>>> list( range( 1, 11) )
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

range()函数常常用在 for 循环中

3.5 映射(Mapping)/字典(Dictionary)

字典是 Python 中唯一的一种映射类型。字典中每一个元素都由一个和一个构成的键值对组成。

使用不可变对象作为键,常见的是使用字符串作为键去索引一个值

>>> aDict = {'sine ': ' sin ', ' cosine ': ' cos ', ' PI': 3. 14159}

字典通过键来访问值

>>> aDict[' sine ']
'sin '
# 通过键'sine'得到值'sin'。

3.6 数据类型转换

数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等,由于 Python 是一种强类型的语言,所以在运算中变量类型不能自动转换

  1. 格式:语句(函数)
int(x)  # 将x转换为一个整数
float(x) # 将x转换为一个浮点数
str(x)   # 将x转换为字符串
  1. 浮点数转整数丢失小数部分

相关文章:

Python 基础入门

给我家憨憨写的python教程 ——雁丘 Python解释器Pycharm的安装部署 关于本专栏一 Python简介1.1 Python优点1.2 支持的编程方式1.3 版本兼容问题1.4 Python的开发环境1.4.1 常用的 Python 编辑器1.4.2 常用的 Python IDE1.4.3 Python IDLE1.4.4 第三方库安装 1.5 Python 的运…...

【跟小嘉学 Rust 编程】二十九、Rust 中的零拷贝序列化解决方案(rkyv)

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…...

路由器端口转发

什么是路由器端口转发 路由器端口转发是一种网络配置技术&#xff0c;用于将公共网络&#xff08;如互联网&#xff09;上的请求转发到私有网络中的特定设备或服务。它允许外部设备通过路由器访问内部网络中的设备或服务&#xff0c;实现网络上的通信和互动。 路由器端口转发…...

Redis模块一:缓存简介

目录 缓存的定义 应用 生活案例 程序中的缓存 缓存优点 缓存的定义 缓存是⼀个高速数据交换的存储器&#xff0c;使用它可以快速的访问和操作数据。 应用 1.CPU缓存&#xff1a;CPU缓存是位于CPU和内存之间的临时存储器&#xff0c;它的容量通常远小于内存&#xff0…...

【去除若依首页】有些小项目不需要首页,去除方法

第一步 // // // // // // // // // // // // // // // // // // 修改登录页 Login.vue 中 大概144行 &#xff0c;注释掉原有跳转。替换为自己的跳转路径 // // // // // // // // // // // // // this.$router.push({ path: this.redirect || …...

Ardupilot — EKF3使用光流室内定位代码梳理

文章目录 前言 1 Copter.cpp 1.1 void IRAM_ATTR Copter::fast_loop() 1.2 void Copter::read_AHRS(void) 1.3 对象ahrs说明 2 AP_AHRS_NavEKF.cpp 2.1 void AP_AHRS_NavEKF::update(bool skip_ins_update) 2.2 void AP_AHRS_NavEKF::update_EKF3(void) 2.3 对象EKF3说…...

【Linux】自动化构建工具 —— make/makefileLinux第一个小程序 - 进度条

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;Linux &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;Linux编译…...

tensorflow的unet模型

import tensorflow as tf from tensorflow.keras.layers import Input, Conv2D, MaxPooling2D, Dropout, UpSampling2D, concatenate# 定义 U-Net 模型 def unet(input_size(256, 256, 3)):inputs Input(input_size)# 编码器部分conv1 Conv2D(64, 3, activationrelu, padding…...

(2023 最新版)IntelliJ IDEA 下载安装及配置教程

IntelliJ IDEA下载安装教程&#xff08;图解&#xff09; IntelliJ IDEA 简称 IDEA&#xff0c;由 JetBrains 公司开发&#xff0c;是 Java 编程语言开发的集成环境&#xff0c;具有美观&#xff0c;高效等众多特点。在智能代码助手、代码自动提示、重构、J2EE 支持、各类版本…...

react 实现拖动元素

demo使用create-react-app脚手架创建 删除一些文件&#xff0c;创建一些文件后 结构目录如下截图com/index import Movable from ./move import { useMove } from ./move.hook import * as Operations from ./move.opMovable.useMove useMove Movable.Operations Operationse…...

【EI会议】第二届声学,流体力学与工程国际学术会议(AFME 2023)

第二届声学&#xff0c;流体力学与工程国际学术会议 2023 2nd International Conference on Acoustics, Fluid Mechanics and Engineering&#xff08;AFME 2023&#xff09; 声学、流体力学两个古老的学科发展至今&#xff0c;无时无刻都在影响着我们的生活。小到日常使用的耳…...

Android StringFog 字符串自动加密

一、StringFog 作用 一款自动对dex/aar/jar文件中的字符串进行加密Android插件工具&#xff0c;正如名字所言&#xff0c;给字符串加上一层雾霭&#xff0c;使人难以窥视其真面目。可以用于增加反编译难度&#xff0c;防止字符串代码重复。 支持java/kotlin。支持app打包生成…...

上四休三,未来的期许

近日“少上一天班&#xff0c;究竟香不香”引发关注&#xff0c;英国媒体2月21日报道&#xff0c;一项全世界目前为止参加人数最多的“四天工作制”试验&#xff0c;不久前在英国取得了成功。很多人表示上过四天班之后&#xff0c;给多少钱也回不去五天班的时代了。 来百度APP畅…...

怎么防止360安全卫士修改默认浏览器?

默认的浏览器 原先选项是360极速浏览器&#xff08;如果有安装的话&#xff09;&#xff0c;我这里改成了Chrome。 先解锁 才能修改。...

调整参数提高mysql读写速度

要提升MySQL的写入速度,您可以采取一些参数调整和优化措施,这些措施可以根据您的具体应用和环境进行调整。以下是一些常见的参数和优化建议: InnoDB存储引擎: 如果您使用的是InnoDB存储引擎,确保以下参数被设置得合理: innodb_buffer_pool_size:增加内存池大小,以便更多…...

第一届电子纸产业创新应用论坛-邀请函

...

Go expvar包

介绍与使用 expvar 是 exposed variable的简写 expvar包[1]是 Golang 官方为暴露Go应用内部指标数据所提供的标准对外接口&#xff0c;可以辅助获取和调试全局变量。 其通过init函数将内置的expvarHandler(一个标准http HandlerFunc)注册到http包ListenAndServe创建的默认Serve…...

Yolo v8代码逐行解读

train.py文件 1.FILE Path(__file__).resolve() __file__代表的是train.py文件&#xff0c;Path(__file__).resolve()结果是train.py文件的绝对路径。 2.ROOT FILE.parents[0] 获得train.py父目录的绝对路径 3.sys.path 是一个列表list&#xff0c;里面包含了已经添加到系…...

9.18号作业

完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&#xff0c;给定两个按钮…...

Spring源码阅读(spring-framework-5.2.24)

spring-aop spring-aspects spring-beans spring-context 等等 第一步&#xff1a; Tags spring-projects/spring-framework GitHub 找到相应的release版本 第二步&#xff1a; 下载相应版本的gardle&#xff0c;如何看版本 spring-framework/gradle/wrapper /gradl…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

Mysql故障排插与环境优化

前置知识点 最上层是一些客户端和连接服务&#xff0c;包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念&#xff0c;为通过安全认证接入的客户端提供线程。同样在该层上可…...