python基础第二节

链式赋值

同一个对象赋值给多个变量

x=y=123

系列解包赋值

a,b,c = 4,5,6

a = 10 b = 20    a,b = b,a

python不支持常量

只能通过逻辑上来控制常量

内置数据类型

每个对象都有类型,最基本的数据类型

(1)整型

(2)浮点型

(3)布尔型

(4)字符串型

数字

+ - *

/     浮点数除法  8/2=4.0

//    整数除法   7//2 = 3

% 模(取余)   7%4 = 3

** 幂

divmond() 同时得到商和余数,返回的是一个元组

整数

0B 二进制

0O 八进制

0X 十六进制

进行位运算

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

(1)浮点数直接舍去小数部分

(2)布尔值True转为1 False转为0

(3)字符串符合整数格式直接转成对应整数,否则报错  init("12312")  可以转换  init("12qrq")报错

自动转型:整数和浮点数混合运算时,表达式结果自动转型成浮点数

整数可以有多大 int可以存储任意大小的整数 long被取消   python可以做超大数的计算,不会造成“整数溢出”

浮点数

float  在内存中以科学计数法来存储

类型转换和四舍五入

(1)类似于int(), 可以使用float()讲其他类型转换成浮点数

(2)自动转型

(3)round(value)可以返回四舍五入的值,产生新的值,不会改变原有值

增强型赋值运算符

运算符和赋值符结合构成   a += 1

布尔值

布尔值True False 本质还是1和0 可以和数字相加

时间的表示

从1970年1月1日00:00:00开始,以毫秒(1/1000)进行计算  unix时间点

python中通过time.time()获得当前时刻   import time

练习:定义多点坐标,绘出这点,并计算起始点和终点距离

import turtle
import math

#定义坐标
x1,y1 = 100, 100
x2, y2 = 100, -100
x3, y3 = -100, -100
x4, y4 = -100,100


#绘制折线
turtle.penup()
turtle.goto(x1,y1)
turtle.pendown()

turtle.goto(x2,y2)
turtle.goto(x3,y3)
turtle.goto(x4,y4)

distance = math.sqrt((x1-x4)**2 + (y1-y4)**2)
turtle.write(distance)

比较运算符

==   !=  >  <   <=  >=

逻辑运算符

or and not

同一运算符

同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址

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

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

is 用于判断两个变量引用对象是否为同一个,即比较对象的地址。

==用于判断引用变量引用对象的值是否相等,默认调用对象的__eq()方法

整数缓存问题,python仅仅对比较小的整数对象进行缓存,[-5,256]

在命令行中:c = 10   d=10  c is d输出结果为True  如果是1000则为false

在pycharm或者保存为文件执行,结果是不一样的,解释器做了优化缓存范围为[-5,任意正整数]

is运算符比==效率高,在变量和None进行比较适合,应该使用is

字符串

字符串的本质是字符序列,python的字符串是不可变的,我们无法对源字符串做任何修改,但可以将字符串的一部分赋值到新创建的字符串,达到”看起来修改“的效果

python不支持单字符类型,单字符也是作为一个字符串使用的

字符串的编码

unicode python直接支持,国际通用unicode 可以表示世界上任何书面语言字符,

python3字符默认是16位unicode编码,ASCII码是unicode编码的子集

使用内置函数ord()可以吧字符转换成对应的unicode码

chr() 把十进制数字转换成对应的字符

三种创建字符串的方式

引号创建字符串  通过单引号或双引号

连续三个单引号或连续三个双引号可以帮助我们创建多行字符串

空字符串 

长度为0 

len()  计算字符串含有多少个字符

转义字符

\ +特殊字符   实现某些难以用字符标识的效果,比如换行

\(在行尾时) 续航符

\\  反斜杠符号

\ *    \"    

\b  退格

\n 换行

\t 横向制表符

\r 回车

字符串拼接

(1)使用加号   加号两边类型不同抛出异常

(2)可以将多个字面字符串直接放到一起实现拼接

b = 'abc''yfz'   print(b)  :   'abcyfz'

拼接形成一个新的对象

字符串复制

使用乘号

不换行打印

print中可以通过参数end = ”任意字符串“ 来指定末尾   默认是用换行符结尾

 从控制台读取字符串

input() 从控制台读取键盘数据的内容

str()函数实现数字转型字符串

调用print()时,解释器自动调用str()将非字符串的类型转为字符串

使用[]提取字符

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

正向搜索还可以反向搜索  从最右侧搜索偏移量是-1,直到-len()为止

replace() 实现字符串替换

字符串是不可改变的,可以是用replace(‘c’,'替换后')替换某些字符 ,返回一个新的字符串,源字符串不变

字符串切片slice操作

快速提取子字符串  [其实偏移量:终止字符串:步长]

分割和合并

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

使用字符串拼接符+,会生成新的字符串对象,因此不推荐使用+来拼接字符串。推荐使用 join 函数,因为 join 函数在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝, 仅新建一次对象。

故使用join()函数拼接字符串效率更高

字符串驻留

仅保存一份相同切不可变字符串的方法,仅包含下划线、字母和数字的符合标识符规则,会启用字符串驻留机制。

字符串比较

直接使用==  !=比较字符串 

is/not is 判断两个对象是否是同一个对象,比较的是对象的地址,即比较id(obj1)和id(obj2)是否相等。

去除首尾信息

通过strip()去除字符串首尾的制定信息,

通过 lstrip()去除字符串左边指定信息,

rstrip()去除字符串右边指定信息。

格式排版

center()、ljust()、rjust()这三个函数用于对字符串实现排版

字符串的格式化

format()   通过{}和: 来代替%

可以接受不限个参数,{}相当于一个占位符的角色, 调用format函数时填充新的字符值

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

填充与对齐

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

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

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

用法需要的时候再查表

你可能感兴趣的:(python基础,python)