第2章 变量和简单类型

查看关键字、函数、帮助信息

查看所有内置关键字:

import keyword
keyword.kwlist

查看内置函数下的内容(函数、方法、类、变量等),其中,以双下划线为首尾的为私有方法

>>> dir(str)

查看某方法的具体用法

>>> help(str.title)

2.1 注释

常用于调试。单行:#;多行:3个单/双引号括起来。

# 2.2 变量

命名规则

以字母(包括中日字符等)、下划线开头,由字母、下划线、数字组成,区分大小写

注意:不能用内置的关键字,会报错;不能用内置的函数名,会覆盖原函数

查看变量类型 type()

输出变量 print()

完整参数:print(a,b,…, sep = ‘|’, end = ‘’, file = ‘’)

多个变量用逗号分隔

sep:分隔符,默认值是空格

end:末位,默认为换行符\n

file:输出位置,默认为屏幕输出,也可指定文件,如f = open(‘123.txt’,‘w’)

# 2.3 数值类型

整型 Int 支持None值,允许为数值增加下划线作为分隔符,不影响值本身

浮点型 float 带小数点的值 带小数点的科学计数即使等于整数,也算float

例:5.12e2表示5.12*10²,等于512,
type(5.12e2)
>>><class 'float'>

复数:底部用j/J表示,例:a = 3 + 2j
复杂计算:import cmath——内置模块,可用于计算平方根等

# 2.4 字符串

标示

用一对单/双引号括起来,如果字符串含单/双引号,需要特殊处理:用不同的引号;用反斜线\对引号进行转义

拼接

  1. 挨着写直接输出,例:a = ‘a’ ‘b’
  2. 用拼接运算符+,例:a = ‘a’ + ‘b’

数值转字符串

  1. 内置的类型:str()
  2. 函数:repr()
    区别:当内容本来就是字符串时,repr()依然转换,而str()不会
>>> a = 'a'
>>> str(a)
'a'
>>> repr(a)
"'a'"

input()

向用户生成提示——获取用户输入——存储为字符串

长字符串

三个单/双引号括起来;用【\】对换行符进行转义

原始字符串

格式:【r’字符串】

不会把【\】当成特殊字符,常用于输入文件地址

局限性:

  1. 要用【\】处理引号,输出时【\】也会输出
  2. 末尾不能是【\】——会把末位的引号转义
    解决方法:拼接字符串

字符集

计算机并不能保存字符串,只能保存每个字符的编号。字符与编号的对照表称为字符集

发展

ASCII:256个编号,1字节,包含英文字符 + 数字 + 标点

Unicode:65535个编号,2字节,包含世界上所有书面语的字符

UTF-8属于Unicode字符集,各国也编有自己的字符集

应用

由字符串创建字节串对象的三种方法

  1. 对ASCII字符串,直接在前面加【b】
  2. python内置的bytes()方法
  3. 字符串的encode()方法
>>> b'abc'
>>> bytes('abc', encoding = 'utf-8')  #此方法的encoding不可省略
>>> 'abc'.encode('utf-8')
结果都是:b'abc'

decode():将字节串解码成字符串

>>> b'abc'.decode()
'abc'

输出字节对应的编码

>>> b'abc'[0]
97

2.5 深入使用字符串

转义字符

退格符\b、换行符\n、回车符\r、制表符\t

字符串格式化

由三个部分构成:

  1. 包含占位符%s的格式化字符串
  2. 分隔符%
  3. 变量或表达式
  • 有多个变量时,要用圆括号括起来,且占位符的数量要与变量的数量一致
    例:
>>> a = 10
>>> "price = %s" % a
'price = 10'

常见的占位符(百分号+字母)

带符号的十进制整数:d,i

十进制的浮点数:f,F

repr():r

str():s

通过占位符设置变量输出时的格式

  1. 最小宽度:默认在变量左方/右方补空格,也可设置补0(仅对数值有效)
  2. 对齐方式:默认右对齐,也可设置左对齐
  3. 符号(仅对数值有效):默认不带符号,也可设置带符号
  • 字符串输出时不补0,也不会带符号
    三种设置可同时存在,例:【%-06i】

【%】为参数化符号,【i】表示变量为带符号的十进制整数

格式设置:【-】——左对齐,【0】——达不到最小宽度时,补0;【6】——最小宽度为6

在最小宽度后用【.】分隔,可设置浮点数的小数位数【%6.3f】或字符串的字符数【%6.3f】

>>> a = 10
>>> "price = %-06.1s" % a
'price = 1     '

2.5.3 索引 [ ]

左起:0,1,…

右起:-1,-2,…

提取单个字符:str[a]

提取多个字符:str[a:b],省略a或者b,可以截取到开头或结尾

in 判断字符串是否在另一字符串中

>>> 'a' in 'abc'
True

len() 获取字符串长度
min(),max() 提取最大、最小字符——判断依据为字符集中的编码顺序

2.5.4 大小写

str.title() 每个单词的首字母大写

str.lower() 全小写

str.upper() 全大写

2.5.5 删除空白

strip(),lstrip(),rstrip()依次为删除两侧空白、删除左侧空白、删除右侧空白

删除指定字符——当参数不为空时,不再删除空白,改为删除参数内的字符

注意:是删除参数内的每个字符,不是字符串

>>> 'i like dog'.strip('igo')
' like d'

2.5.6 查找与替换

查找:startswith(),endswith(),find()找不到返回【-1】;index()找不到引发ValueError错误

替换:replace(),maketrans()

replace(’原字符串‘, ‘目标字符串’, 替换次数),若省略次数参数,则替换全部字符串

maketrans(’原字符串‘, ‘目标字符串’) :创建翻译映射表(把字符串转化成编码并配对成字典)

>>> str.maketrans('ab','cd')
{97: 99, 98: 100}

2.5.7 分割与连接

分割split():可设置分割符(默认为空格)、分割次数(默认为分割所有)。输出结果为列表

>>> 'a / b / c d'.split('/',1)
['a ', ' b / c d']

连接join():可设置连接符号。参数是列表,输出字符串

>>> a = ['1','2']
>>> '&'.join(a)
'1&2'

连接运算符【*】

>>> 'ab'*3
'ababab'

2.6 运算符

赋值运算符【=】

弱类型语言python的变量有两个特点:无需声明即可使用——可直接赋值;数据类型随时可变

可连续赋值:a = b = c = 2

算术运算符

+-*///**%
整除乘方求余数

【+】和【*】也可用作字符串连接符

【-】也可用作求负运算符

【%】支持浮点数(存在精度丢失问题)——逻辑:被除数 - 除数的整数倍

运算逻辑:(-2.9) * (-2) = 5.8,5.2 - 5.8 = -0.6,由于精度丢失,只能获得近似值

>>> 5.2 % -2.9
-0.5999999999999996

【**】也可用于求开方

>>> 27**(1/3)
3.0

2.6.3 位运算符

涉及计算机底层存储(0与1),学用于底层开发,此处只介绍基本符号

&|^~<<>>
按位与按位或按位异或按位取反左位移右位移

2.6.4 扩展后的赋值运算符

算术运算符 + 赋值运算符:【+=】【-=】【*=】【/=】【//=】【%=】【**=】

位运算符 + 赋值运算符:【&=】,【|=】,【^=】,【<<=】,【>>=】

2.6.5 索引运算符 [ ]

参数设置:单个字符、索引范围、索引范围 + 步长(相隔n个字符)

>>> a = 'abcdefg'
>>> a[1]
'b'
>>> a[1:6]
'bcdef'
>>> a[1:6:2]
'bdf'

2.6.6 比较运算符

【>】【<】【>=】【<=】【==】【!=】【is】,返回结果为bool类型:True(1),False(0)

【==】:比较两个变量的值是否相等

【is】:通过id()函数,比较两个对象的内存地址——同一块内存在同一时刻只能放一个对象

2.6.7 逻辑运算符

操作对象和返回值都是bool类型。对组合逻辑,可用圆括号保证运算顺序,并提高可读性

and:两个对象,两Ture为True,否则为False

or:两个对象,两False为False,否则为True

not:一个对象,not True为False,not False为True

2.6.8 三目运算符

【True结果】 if 【表达式】 else 【False结果】

True或False结果中均可包含多条语句,用【,】分隔,用圆括号括起来,输出结果为元组

>>> 'a' if 5<3 else 'b'
'b'
>>> ('a','b') if 5<3 else ('c','d')
('c', 'd')

此语句支持嵌套:A结果 if 表达式1 else ( B结果 if 表达式2 else C结果 )

2.6.9 in与not in

用于判断字符串是否包含特定子字符串,序列是否包含特定子序列

2.6.10 运算符的结合性、优先级

结合性:大多从左向右结合

特殊地:单目运算符(仅一个变量)、三目运算符、赋值运算符从右向左结合

优先级:不用考虑,用圆括号控制,不要将表达式写得过于复杂即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Ailsa2019

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

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

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

打赏作者

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

抵扣说明:

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

余额充值