Day2

Python赋值方法

  1. 链式赋值
    用于同一个对象赋值给多个变量

    x=y=123
    
  2. 系列解包赋值
    系列数据赋值给对应相同个数的变量(个数保持一致)

    a,b,c=4,5,6
    

    系列解包赋值实现变量互换

    a,b=1,2
    
    a,b=b,a
    
    print(a,b)
    
  3. 常变量
    python不支持常变量,通过逻辑上不对常变量的值进行修改。命名全大写

Python最基本内置数据类型介绍(type)

  1. 整数
  2. 浮点型 小数
  3. 布尔型 True、False
  4. 字符串型

数字类型运算

  • /浮点数除法
  • //整数除法
  • %模(取余)
  • **幂

除数为0,会报错
divmod(a,b)得到商和余数

其他类型转化成整数类型

常用其他进制

-0b 或 0B,二进制 0 1

-0o 或 0O,八进制0 1 2 3 4 5 6 7

-0x 或 0X, 十六进制0-9 a b c d e f

这三种进制可以非常方便的进行“位运算”操作。

【操作】测试不同进制

0b101

0o10

0xff

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

  1. 浮点数舍去小数部分

  2. 布尔值Ture转为1 False转为0

  3. 字符串(整数可以转化,其他不行)

    自动转型:整数和浮点数混合运算,结果自动转型浮点数

整数可以多大?

googol=10**100

googol是google最初的名字,也是它的起源

Python3 int可以存储任意大小的整数,适合科学运算的特点

浮点数

浮点数,称为float

浮点数用科学计数法来表示,比如3.14表示成:314e-2

类型转化和四舍五入

  1. 类似于int(),float()

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

增强型赋值运算符

运算符+、-、*、/、//、**和%和赋值符=结合可以构成“增强型赋值运算符”
a=a+1等价于a+=1

时间的表示

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

python中可以通过time.time()获得当前时刻,返回值以秒为单位,带微秒精度的浮点值。

import time
time.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)
dis=math.sqrt((x1-x4)**2+(y1-y4)**2)
turtle.write(dis)

布尔值

True和False本质还是1和0,甚至可以和数字相加。

比较运算符

所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。

== 等于 比较对象的值是否相等

!=不等于 比较对象的值是否不相等

逻辑运算符

  1. or 或
  2. and 与
  3. not 非

同一运算符

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

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

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

is与 == 区别:

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

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

整数缓存问题

  • python仅对比较小的整数对象进行缓存,命令行中范围【-5,256】

  • Pycharm或保存为文件时,范围【-5,任何正整数】

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

字符串

字符串基本特点

本质:字符序列。Python的字符串不可变,但可以将字符串的一部分复制到新创建的字符串,达到“看起来修改”的效果。

Python不支持单字符,单字符也是作为一个字符串使用。

字符串的编码

Python3直接支持Unicode,国际通用,默认16位Unicode。ASCII码八位,仅表示数字和英文。

  • 使用内置函数ord(),字符转Unicode
  • 使用内置函数chr(),十进制转字符

引号创建字符串

  1. 单引号或双引号创建

  2. 连续三个单引号或三个双引号,创建多行字符串

空字符串和len()函数

Python允许空字符串,字符长度为0

转义字符

转义字符描述
\(在行尾时)续行符
\\反斜杠符号
\’单引导
\’’双引导
\b退格(Backspace)
\n换行
\t横向制表符
\r回车

字符串拼接

  1. 用+拼接
  2. 多个字符串直接放到一起

字符串复制

用*实现字符串复制

不换行打印

  • 前面调用print时,会自动打印一个换行符。

  • 有时不想换行时,可以通过end="任意字符串"实现末尾添加任何内容。

    print("sxt",end=' ')
    
    print("sxt",end='\t')
    

从控制台读取字符串

input()

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

使用[]提取字符

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

  • 反向搜索:最右侧第一个字符,偏移量(索引)是-1,倒数第二个偏移量-2,以此类推,直到-len(str)为止。

    	a='abcd'	
    	print(a[0])	
    	print(a[-1])
    

replace()实现字符串替换

字符串不可变,创新了新字符串

a=a.replace("c","高")

字符串切片slice操作

  • 标准格式为:[起始偏移量start: 终止偏移量end: 步长step] 包头不包尾
    在这里插入图片描述
  • [::-1] 逆序排列

split()分割和join()合并

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

  • join()用于将一系列子字符串连接起来。
    +会生成新的字符串对象。推荐使用join函数,因为join在拼接字符串之前会计算所有字符串的长度,逐一拷贝仅新建一次对象

  • 测试join和+效率

    import time
    
    time01=time.time() #起始时刻
    a=''
    for i in range(1000000):
        a +='sct'
    time02=time.time() #终止时刻
    print(str(time02-time01))
    
    time03=time.time() #起始时刻
    li=[]
    for i in range(1000000):
        li.append('sxt')
    a=''.join(li)
    time04=time.time() #终止时刻
    print(str(time04-time03))
    

字符串驻留机制和字符串比较

  • 字符串驻留:仅保存一份相同且不可变字符串的方法,不同值被存放在字符串驻留池中。(仅包含下划线、字母和数字会启用字符串驻留机制)
字符串比较和同一性
  • 可以用==,!=进行字符串比较

  • 使用is/ not is,判断两个对象是否同一个对象,比较的是对象的地址

成员操作符

in /not in 关键字,判断某个字符是否存在字符串中

字符串常用方法汇总

常用查找方法
  • len(a) 计算字符串长度

  • a.startswith(‘字符串’) 是不是以指定字符串开头

  • a.endswith(‘字符串’) 是不是以指定字符串结尾

  • a.find(‘字符串’) 第一次出现指定字符串的位置

  • a.rfind(‘字符串’) 最后一次出现指定字符串的位置

  • a.count(‘字符串’) 指定字符串出现了几次

  • a.isalnum() 判断所有字符串全是字母或数字

  • a.isalpha() 判断所有字符串全是字母(含汉字)

去除首尾信息
  • strip() 去除首尾指定信息

  • lstrip() 去除首指定信息

  • rstrip() 去除尾指定信息

大小写转换
  • a.capitalize() 产生新的字符串,首字母大写

  • a.title() 产生新的字符串,每个单词都首字母大写

  • a.upper() 产生新的字符串,所有字符全转成大写

  • a.lower() 产生新的字符串,所有字符全转成小写

  • a.swapcase() 产生新的字符串,所有字母大小写转换

格式排版
  • a.center(10,’*’) 居中

  • a.ljust(10,’*’) 左对齐

  • a.rjust(10,’*’) 右对齐

字符串的格式化

format()基本用法

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

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

print(b.format('小王',18))
填充与对齐

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

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

print('我是{0},我喜欢数字{1:*^8}'.format('小李','666'))
数字格式化

浮点数通过f,整数通过d进行需要的格式化
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值