Python第1章复习笔记

本文介绍了Python的基础概念,包括交互式解释器(如Python和Anaconda)、算法与数据结构、数值运算、变量、语句、函数、模块的使用、字符串处理、字符编码转换以及Python程序的编译和执行原理。
摘要由CSDN通过智能技术生成

1.1 交互式解释器

两种方式
1、直接下载安装包:Python交互式解释器
2、虚拟发布平台:Anaconda

1.2 算法是什么

程序=算法+数据结构

1.3 数和表达式

整数

浮点

+ - * / // % **

1//2
0
1//1
1
5.0//2.4
2.0
10//-3
-4
-10//3
-4
10%3
1
10%-3
-2
-10%3
2
-10%-3
-1

1、整除运算,重点是向下圆整结果。
2、在结果为负数的情况下,圆整后将离0更远。
3、这意味着对于-10 // 3,将向下圆整到-4,而不是向上圆整到-3。

2**3
8
-3**2
-9
(-3)**2
9

乘方运算符的优先级比负号高(单目减)。

十六进制(0x)、八进制(0o)和二进制(0b)

1.4 变量

变量是表示(或指向)特定值的名称。
1、使用变量前不用指定类型,因为它是一种动态语言。
2、使用Python变量前必须给它赋值,因为Python变量没有默认值。
3、在Python中,名称(标识符)只能由数字、字母和下划线组成,且不能以数字打头。

1.5 语句

赋值语句X=2

1、变量就像是临时存储区
2、值并非存储在变量中,而是存储在变量指向的计算机内存中
3、多个变量可指向同一个值

对象:当创建数据对象时,内存中会保存对象的值,这个值就是对象自己
引用:对象保存在内存空间,外部想要使用对象的值,需要使用引用
内存中会保存对象的引用数量,当某个对象引用数量为0时,对象会被回收

a=10
b=a
id(a)
140723966960712
id(b)
140723966960712
a=20
id(a)
140723966961032
id(b)
140723966960712

id()是python的内置函数,用于返回对象的身份,即对象的内存地址

1.6 获取用户输入

x=input("x:")
x:10
y=input("y:")
y:11
x+y
'1011'
int(x)+int(y)
21

接受一个标准输入数据,返回为 string 类型

1.7 函数

函数犹如小型程序,可用来执行特定的操作。
pow(a,b)
abs()
round()
round圆整到最接近的整数,并在两个整数一样近时圆整到偶数。

1.8 模块

可将模块视为扩展,通过将其导入可以扩展Python功能。要导入模块,可使用特殊命令import。

import math
math.floor(32.9)
32

通过使用命令import的变种from module import function,可在调用函数时不指定模块前缀。

cmath和复数

Python标准库提供了一个专门用于处理复数的模块。

import cmath
cmath.sqrt(-1)
1j
x=3+1j
x.real
3.0
x.imag
1.0
x.conjugate()
(3-1j)

1、实数部分和虚数部分都是浮点数
2、虚数部分必须有j或J
3、复数拥有数据属性,分别为该复数的实数和虚数部分。复数还有conjugate方法,调用它可以返回该复数的共轭复数对象

1.9 保存并执行程序

1、切换到源文件所在目录下,运行源文件:python hello.py
2、Notepad++ / Anaconda –Spyder (IDE)

1.10 字符串

单引号
双引号
转义\
长字符串(三单引号)

print('Hello,\nworld')
Hello,
world

原始字符串用前缀r表示

print(r'c:\Program Files\fnord\foo\bar\baz')
c:\Program Files\fnord\foo\bar\baz

原始字符串不以特殊方式处理反斜杠,它们根本不会对反斜杠做特殊处理,而是让字符串包含的每个字符都保持原样 。
函数repr()

print(repr('Hello,\nworld'))
'Hello,\nworld'

1.11 字符编码

Unicode (Python默认)
ASCII 00000000-01111111(0-127)

stra = '\U0001F60D\N{butterfly}'
print(stra)
😍🦋

Python使用Unicode编码
通用机制:运用16进制(之前加\U)或字符的Unicode名称(\N{name})来表示Unicode的码点。

不同编码之间的转换

如果必须使用ASCII编码,可向encode提供另一个实参,告诉它如何处理错误。这个参数默认为strict,但可将其指定为其他值,以忽略或替换不在ASCII表中的字符。

str = '\U0001F60AHello World\N{Cat}'
print(str.encode('ASCII','ignore'))
b'Hello World'
print(str.encode('ASCII','replace'))
b'?Hello World?'
print(str.encode('ASCII','backslashreplace'))
b'\\U0001f60aHello World\\U0001f408'
print(str.encode('ASCII','xmlcharrefreplace'))
b'😊Hello World🐈'

bytes和bytearray

bytes:字节数组(元素,长度等不可变,效率更高)
bytearray:字节数组(可变)

b1 = bytes('helloPython',encoding='utf-8')
b2 = bytearray(b1)
print(b1)
b'helloPython'
print(b2)
bytearray(b'helloPython')

b’helloPython’:b表示这是一个不可变的字节数组,以字符来体现了数组中每个元素的值,而数组中实际存储的是字符的编码

b1 = bytes('hello',encoding='ascii')
print(b1)
b'hello'
print(b1[0])
104

注:不能给b1中的元素赋值。

b2 = bytearray(b1)
print(b2)
bytearray(b'hello')
b2[0]=108
print(b2)
bytearray(b'lello')

可以给bytearray中的元素赋值。

Python程序运行的原理:

1、当程序执行时,Python内部会先将源代码编译成字节码的形式。这些字节码可以提高执行速度。
2、一旦程序编译成字节码(或字节码已从存在的.pyc文件中载入),之后的字节码会发送到Python虚拟机上来执行。PVM是Python的运行引擎,它是实际运行脚本的组件,从技术上讲,它是Python解释器的最后一步。
3、Python字节码不是机器的二进制代码,字节码是特定于python的一种表现形式。这就是Python无法运行的像C代码一样快的原因,PVM仍然需要解释字节码。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The square of H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值