Python 基础 (1)

Python 基础 (1)

· 简介

Python 是一种解释型、面向对象的语言。由吉多·范罗苏姆(Guido van Rossum)于

1989 年发明,1991 年正式公布。官网:www.python.org

Python 单词是"大蟒蛇"的意思。作者因为正在追剧<<蒙提·派森.....>>遂起名python.

 

Python特点

  1. 可读性强

可读性远比听上去重要的多得多。一个程序会被反复的修改,可读性强意味着让你可以在更短时间内学习和记忆,直接提高生产率。

  1. 简洁,简洁,简洁

研究证明,程序员每天可编写的有效代码数是有限的。完成同样功能只用一半的代码,其实就是提高了一倍的生产率。

Python 是由 C 语言开发,但是不再有 C 语言中指针等复杂数据类型,Python 的简洁性让开发难度和代码幅度大幅降低,开发任务大大简化。程序员再也不需要关注复杂的语法,而是关注任务本身.

使用python输入以下代码:(查看绘图效果)

import turtle

t = turtle.Pen()

for x in range(360):

t.forward(x)

t.left(59)

同时python的特点还有:

面向对象

免费和开源

可移植性和跨平台

Python 会被编译成与操作系统相关的二进制代码,然后再解释执行。这种方式和 java 类似,大大提高了执行速度,也实现了跨平台。

丰富的库(丰富的标准库, 多种多样的扩展库)

可扩展性。    可嵌入到 C 和 C++语言。    胶水式语言

 

python应用范围:

  1. 科学计算
  2. 人工智能
  3. WEB 服务端和大型网站后端。

    YouTube、gmail 等应用基于 python 开发。

  4. GUI 开发(图形用户界面开发)
  5. 游戏开发
  6. 移动设备
  7. 嵌入式设备
  8. 系统运维
  9. 大数据
  10. 云计算

python解释器:
Python 程序的执行依赖于 Python 解释器。常用的 Python 解释器有:

  1. CPython

    使用 c 语言实现的解释器,最常用的解释器。通常说的解释器指的就是它。

  2. Jython

使用 java 语言实现的解释器。Jython 可以直接调用 java 类库,适合在 java 平台上开发

  1. IronPython

    .NET 平台上使用的解释器。可直接调用.NET 平台的类,适合.NET 平台上开发

  2. PyPy

    使用 Python 语言实现的解释器

python下载安装:

www.python.org/downloads/

 

 

后期工作开发代码较多时,使用编辑工具pycharm.进行书写代码事半功倍.

下载及激活请自行百度(自己激活较麻烦,很多方法也是随时失效...)

可以使用python下载自带的开发环境:IDLE:

IDLE 是 Python 的官方标准开发环境,Python 安装完后同时就安装了 IDLE。

IDLE常用快捷键:

快捷键

 

说明

Alt+N

Alt+P

查看历史命令上一条、下一条

Ctrl+F6

 

重启 shell,以前定义的变量全部失效

F1

 

打开帮助文档

Alt+/

 

自动补全前面曾经出现过的单词

Ctrl + [

Ctrl + ]

缩进代码和取消缩进

Alt+M

 

打开模块代码,先选中模块,然后按下此快捷键,会帮你打开改模块的 py 源码供浏览

Alt+C

 

打开类浏览器,方便在源码文件中的各个方法体之间切换

F5

运行程序

 

python基本格式:

 

  1. 恰当的空格,缩进问题
    1. 逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。
    2. 语句从新行的第一列开始。
    3. 缩进风格统一:每个缩进层次使用 单个制表符 或四个空格(IDE 会自动将制表符设置成 4 个空格Python 用缩进而不是{}表示程序块
  2. Python 区分大小写
  3. 注释
    1. 行注释

      每行注释前加#号。当解释器看到#,则忽略这一行#后面的内容

    2. 段注释

    使用三个连续单引号(''')。当解释看到''',则会扫描到下一个''',然后忽略他们之间的内容。

     

     

    python程序组成:

    1. Python 程序由模块组成。一个模块对应 python 源文件,一般后缀名是:.py。
    2. 模块由语句组成。运行 Python 程序时,按照模块中语句的顺序依次执行。
    3. 语句是 Python 程序的构造单元,用于创建对象、变量赋值、调用函数、控制语句等。

 

在 IDLE 环境中,我们可以通过 File-->new 创建 Python 文件,并可以编辑该文件内容。我们也可以通过 File-->save/save as 保存文件。一般保存成扩展名为 py 的文件。

需要执行编辑好的文件,可以用快捷键 F5 或者点击 Run-->Run module。

 

: 很多编程语言通过字符(例如:花括号{})、关键字(例如:begain/end)来划分代码块。同时,在配合代码的缩进增加可读性。"龟叔"设计 Python 语言时,直接通过缩进来组织代码块。"缩进"成为了 Python 语法强制的规定。缩进时,几个空格都是允许的,但是数目必须统一。我们通常采用"四个空格"表示一个缩进。

同时,也要避免将"tab 制表符"或者 tab 与空格混合的缩进风格。目前,常用的编辑器一般设置成:tab 制表符就是 4 个空格。

 

Python 中,一切皆对象。每个对象由:标识(identity)、类型(type)、value(值)组成。

  1. 标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数 id(obj) 可返回对象 obj 的标识。
  2. 类型用于表示对象存储的"数据"的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用 type(obj)获得对象的所属类型。
  3. 值表示对象所存储的数据的信息。使用 print(obj)可以直接打印出值。对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作

 

变量不需要显式声明类型。根据变量引用的对象,Python 解释器自动确定数据类型。

每个对象都有数据类型,只支持该类型支持的操作。

 

标识符:用于变量、函数、类、模块等的名称。标识符有如下特定的规则:

  1. 区分大小写。如:sxt 和 SXT 是不同的
  2. 第一个字符必须是字母、下划线。其后的字符是:字母、数字、下划线
  3. 不能使用关键字。比如:if、or、while 等。
  4. 以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法。比如:__init__是类的构造函数。

 

可以通过 del 语句删除不在使用的变量

赋值:用于同一个对象赋值给多个变量。

x=y=123    相当于:x=123; y=123

或者a,b,c=4,5,6    相当于:a=4;b=5;c=6

Python 不支持常量,即没有语法规则限制改变一个常量的值。我们只能约定常量的命名规则,以及在程序的逻辑上不对常量的值作出修改

每个对象都有类型,python 中最基本的内置数据类型:

  1. 整型

    整数,2345,10,50

  2. 浮点型

    小数,3.14 或者科学计数法 314e-2

  3. 布尔型

    表示真假,仅包含:True、False

  4. 字符串型

由字符组成的序列:'abc23',"博客园"

运算符

说明

示例

结果

+

加法

3+2

5

-

减法

30-5

25

*

乘法

3*6

18

/

浮点数除法

8/2

4.0

//

整数除法

7//2

3

%

模(取余)

7%4

3

**

2**3

8

 

使用 int()实现类型转换:

  1. 浮点数直接舍去小数部分。如:int(9.9)结果是:9
  2. 布尔值 True 转为 1,False 转为 0。    如:int(True)结果是 1
  3. 字符串符合整数格式(浮点数格式不行)则直接转成对应整数,否则报错。

自动转型:

整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:2+8.0 的结果是 10.0

Python2 中,int 是 32 位,可以存储从-2147483648 到 2147483647 的整数

(约±21 亿)。Long 类型是 64 位,可以存储:-2^63--2^63-1 之间的数值。

Python3 中,int 可以存储任意大小的整数,long 被取消。

 

  1. 类似于 int(),我们也可以使用 float()将其他类型转化成浮点数。
  2. 整数和浮点数混合运算时,表达式结果自动转型成浮点数。比如:2+8.0 的结果是 10.0
  3. round(value)可以返回四舍五入的值

    注:但不会改变原有值,而是产生新的值

 

时间计算:

计算机中时间的表示是从"1970 年 1 月 1 日 00:00:00"开始,以毫秒(1/1000 秒)进行计算。我们也把 1970 年这个时刻成为"unix 时间点"。

这样,我们就把时间全部用数字来表示了。

 

Python2 中没有布尔值,直接用数字 0 表示 False,用数字 1 表示 True。

Python3 中,把 True 和 False 定义成了关键字,但他们的本质还是 1 和 0,甚至可以和数字相加。

 

同一运算符:

运算符

描述

is

is 是判断两个标识符是不是引用同一个对象

is not

is not 是判断两个标识符是不是引用不同对象

 

  1. is 比较两个对象的 id 值是否相等,是否指向同一个内存地址;
  2. == 比较的是两个对象的内容是否相等,值是否相等;
  3. 小整数对象[-5,256]在全局解释器范围内被放入缓存供重复使用;
  4. is 运算符比 == 效率高,在变量和 None 进行比较时,应该使用 is。

字符串: python3 直接支持 Unicode,可以表示世界上任何书面语言的字符。Python3 的字符默认就是 16 位 Unicode 编码,ASCII 码是 Unicode 编码的子集。

使用内置函数 ord()可以把字符转换成对应的 Unicode 码;使用内置函数 chr()可以把十进制数字转换成对应的字符

可以通过单引号或双引号创建字符串。例如:a='abc';    b="sxt"

使用两种引号的好处是可以创建本身就包含引号的字符串,而不用使用转义字符。连续三个单引号或三个双引号,可以帮助我们创建多行字符串

Python 允许空字符串的存在,不包含任何字符且长度为 0

 

转义字符:

我们可以使用"\+特殊字符",实现某些难以用字符表示的效果。比如:换行等。常见的转义字符有这些:

转义字符

描述

 

\(在行尾时)

 

续行符

\\

反斜杠符号

\'

单引号

\"

双引号

\b

退格(Backspace)

\n

换行

\t

横向制表符

\r

回车

 

字符串拼接:

  1. 可以使用+将多个字符串拼接起来。例如:'aa'+ 'bb' ==>'aabb'。
    1. 如果+两边都是字符串,则拼接。
    2. 如果+两边都是数字,则加法运算。
    3. 如果+两边类型不同,则抛出异常。
  2. 可以将多个字面字符串直接放到一起实现拼接。例如:'aa''bb'==>'aabb'

使用*可以实现字符串复制。

 

我们前面调用 print 时,会自动打印一个换行符。有时,我们不想换行,不想自动添加换行

符。我们可以自己通过参数 end = "任意字符串"。实现末尾添加任何内容

print("sxt",end=' ')

print("sxt",end='##')

print("sxt")

运行结果:

sxt sxt##sxt

我们可以使用 input()从控制台读取键盘输入的内容:

myname = input("请输入名字:")

str()可以帮助我们将其他数据类型转换为字符串。例如:

str(5.20) ==> '5.20'    str(3.14e2)==>'314.0'    str(True) ==> 'True'

 

字符串的本质就是字符序列,我们可以通过在字符串后面添加[],在[]里面指定偏移量,可以提取该位置的单个字符。

正向搜索:

最左侧第一个字符,偏移量是 0,第二个偏移量是 1,以此类推。直到 len(str)-1为止。

反向搜索:

最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推,直到-len(str)为止

字符串是"不可改变"的,我们通过[]可以获取字符串指定位置的字符,但是我们不能改变字符串。

可以通过replace()实现替换指定字符

切片 slice 操作可以让我们快速的提取子字符串。标准格式为:

[起始偏移量 start:终止偏移量 end:步长 step]

典型操作(三个量为正数的情况)如下:

操作和说明

示例

结果

[:]    提取整个字符串

"abcdef"[:]

"abcdef"

[start:]从 start 索引开始到结尾

"abcdef"[2:]

"cdef"

[:end]从头开始知道 end-1

"abcdef"[:2]

"ab"

[start:end]从 start 到 end-1

"abcdef"[2:4]

"cd"

[start:end:step]从 start 提取到 end-1,步长是 step

"abcdef"[1:5:3]

"bd"

split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。

>>>a = "to be or not to be"

>>>a.split()

['to', 'be', 'or', 'not', 'to', 'be']

join()的作用和 split()作用刚好相反,用于将一系列子字符串连接起来

>>> a = ['sxt','sxt100','sxt200']

>>> '*'.join(a)

'sxt*sxt100*sxt200'

可以通过 strip()去除字符串首尾指定信息。通过 lstrip()去除字符串左边指定信息, rstrip()去除字符串右边指定信息。

关于字符串大小写转换的情况:

示例

说明

结果

a.capitalize()

产生新的字符串,首字母大写

'Gaoqi    love    programming, love    sxt'

a.title()

产生新的字符串,每个单词都首字母大写

'Gaoqi    Love    Programming, Love    Sxt'

a.upper()

产生新的字符串,所有字符全转成大写

'GAOQI    LOVE    PROGRAMMING, LOVE

SXT'

a.lower()

产生新的字符串,所有字符全转成小写

'gaoqi    love    programming, love    sxt'

a.swapcase()

产生新的,所有字母大小写转换

'GAOQI

sxt'

LOVE

PROGRAMMING, LOVE

 

center()、ljust()、rjust()这三个函数用于对字符串实现排版。示例如下:

>>> a="SXT"

>>> a.center(10,"*")

'***SXT****'

>>> a.center(10)

'    SXT    '

>>> a.ljust(10,"*") 'SXT*******'

其他方法:

1. isalnum() 是否为字母或数字

2. isalpha() 检测字符串是否只由字母组成(含汉字)。

  1. isdigit()    检测字符串是否只由数字组成。
  2. isspace() 检测是否为空白符
  3. isupper() 是否为大写字母
  4. islower() 是否为小写字母

 

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能

基本语法是通过 {} 和 : 来代替以前的 % 。

format 函数可以接受不限个参数,位置可以不按顺序。

我们通过示例进行格式化的学习。

 

>>> a = "名字是:{0},年龄是:{1}"

>>> a.format("高淇",18)

'名字是:高淇,年龄是:18'

>>> a.format("高希希",6)

'名字是:高希希,年龄是:6'

>>> b = "名字是:{0},年龄是{1}。{0}是个好小伙"

>>> b.format("高淇",18)

'名字是:高淇,年龄是 18。高淇是个好小伙'

>>> c = "名字是{name},年龄是{age}"

>>> c.format(age=19,name='高淇')

'名字是高淇,年龄是 19'

 

我们可以通过{索引}/{参数名},直接映射参数值,实现对字符串的格式化,非常方便。

填充常跟对齐一起使用

^、<、>分别是居中、左对齐、右对齐,后面带宽度

:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

>>> "{:*>8}".format("245")

'*****245'

>>> "我是{0},我喜欢数字{1:*^8}".format("高淇","666")

'我是高淇,我喜欢数字**666***'

浮点数通过 f,整数通过 d 进行需要的格式化:

数字

格式

输出

描述

3.1415926

{:.2f}

3.14

保留小数点后两位

3.1415926

{:+.2f}

3.14

带符号保留小数点后两位

2.71828

{:.0f}

3

不带小数

5

{:0>2d}

05

数字补零 (填充左边, 宽度为 2)

5

{:x<4d}

5xxx

数字补 x (填充右边, 宽度为 4)

10

{:x<4d}

10xx

数字补 x (填充右边, 宽度为 4)

1000000

{:,}

1,000,000

以逗号分隔的数字格式

0.25

{:.2%}

25.00%

百分比格式

1000000000

{:.2e}

1.00E+09

指数记法

13

{:10d}

13

右对齐 (默认, 宽度为 10)

13

{:<10d}

13

左对齐 (宽度为 10)

13

{:^10d}

13

中间对齐 (宽度为 10)

 

在 Python 中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,智能创建新的字符串对象。但是,经常我们确实需要原地修改字符串,可以使用 io.StringIO 对象或 array 模块

>>> import io

>>> s = "hello, sxt"

>>> sio = io.StringIO(s)

>>> sio

<_io.StringIO object at 0x02F462B0>

>>> sio.getvalue()

'hello, sxt'

>>> sio.seek(7)

7

>>> sio.write("g")

1

>>> sio.getvalue()

'hello, gxt'

 

 

 

 

 

 

 

posted @   wang-a  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示