2020年3月12日 第二章 基本数据类型、运算符和表达式 -2

第二章 基本数据类型、运算符和表达式 -2

字符串类型

字符串

  • 存储和处理文本信息在计算机应用中十分常见
  • 程序中字符串类型用于表示文本信息,是字符的序列表示
  • 在Python中,字符串中的文本要用界限符英文的单引号、双引号或三引号 括起来,如:"Python语言"、"您好"等。
>>> print(“《我和我的祖国》”)
《我和我的祖国》
>>> print(“《平凡的世界》”,”路遥”)
《平凡的世界》   路遥
>>> print(‘[email protected]’)
[email protected]
>>>print('950618',"190123112")
950618  190123112  
>>> print("210121197906256510")
210121197906266517
>>> print("'蒹葭苍苍,白露为霜。
所谓伊人,在水一方。
溯洄从之,道阻且长。
溯游从之,宛在水中央。"')
蒹葭苍苍,白露为霜。
所谓伊人,在水一方。
溯洄从之,道阻且长。
溯游从之,宛在水中央。

字符串

  • 作为同一字符串中的界限符,单引号和双引号不能混用
  • 当使用单引号作为界限符时,双引号可以作为字符串的一部分;当使用双引号作为界限符时,单引号可以作为字符串的一部分
>>> print("abc')
SyntaxError: EOL while 
scanning string literal 
>>> print("I’m Lily")
I’m Lily 
>>> print('She said: “good”')
She said: “good”

字符串操作符

操作符 描述
x+y 连接两个字符串x与y,如"a"+"b"返回"ab"
x*n或n*x 将字符串x复制n次,如"a"*3返回"aaa"
x in s(或x not in s) 如果x(不)是s的子串,返回True,否则返回False,如"bc"in"abc"返回True
x[i] 索引,返回字串符x中的第i个字符
x[start:end:step] 切片,返回索引从start到end中每step所取的子串,其中不包括end

in也称为成员运算符,即测试一个对象是否为另一个对象的元素;可进行序列(字符串,列表,元组),字典或集合的成员测试。

强调

  • 字符串类型数据是有长度的,其长度由字符串中包含的字符个数决定
  • Python中字符采用Unicode编码,每个中英文字符和符号长度都是1
  • 字符串正向递增序号(索引):最左侧字符序号为0,向右依次递增
  • 字符串索引 格式:
    <字符串或字符串变量>[索引]
>>> “温故而知新”[0]
‘温’
>>> s1= “温故而知新”
>>> s1[3]
‘知’
>>> s1[5]
Traceback (most recent call last):
  File "", line 1, in 
    str1[4]
IndexError: string index out of range

字符串切片

格式:
<字符串或字符串变量>[start:end:step]

>>> s1= “温故而知新”
>>> s1[0:4:1]
‘温故而知’
>>> s1[0:4:2]
‘温而’

【例2-4】基本的字符串操作符举例

>>> print(“蒹葭苍苍,”+’白露为霜’  )    #将两个字符串相连,返回一个新的字符串
蒹葭苍苍,白露为霜
>>> n=“加油!”
>>> print(n*3)         #将“加油”复制3次,返回一个新的字符串
加油!加油!加油!
>>> “油”     in n    #判断“油”是否是n的子串
True
>>> name=“王小雷”
>>> print(name[0])      #返回字符串name索引为0的字符
王
>>> sj="蒹葭苍苍,白露为霜"
>>> print(sj[0:4])        #返回字符串sj的切片,从第0个字符到第4个字符,不包括第4                           个字符的子串
蒹葭苍苍

布尔类型

布尔类型

  • 布尔类型数据只有True和False两个值,用来表示逻辑真和逻辑假
>>> x=True
>>> x
True
>>> 5>3
True
>>> 3<5<2
False
>>> “Mike”<”Tom”
True

逻辑运算符

运算符 描述 实例
and True and False 结果是 Flase
or True or False 结果是 True
not not True 结果是 Flase

【例2-5】求以下表达式的值

>>> 3<4 and 5<7
True
>>> x=10.2
>>> y=7.8
>>> not x >y
False
>>> 3>5 and a>3     #注意,此时并没有定义变量a
False
>>> 3>5 or a>3      #3>5的值为False,所以需要计算后面表达式
NameError: name 'a' is not defined
>>> 3<5 or a>3      #3<5的值为True,不需要计算后面表达式
True

强调:如右框图内例子,逻辑运算有一个称之为短路逻辑的特性:逻辑运算符右侧的表达式有时会被“短路”,实际是为了避免无用地执行代码

【例2-6】写出下列条件。

(1)判断ch是否为小写字母。
(2)判断ch既不是字母也不是数字字符。
答案:
(1)ch>='a' and ch<='z'
(2)not((ch>='A' and ch<='Z') or (ch>='a' and ch<='z') or (ch>='0' and ch<='9'))

类型转换函数

函数 说明
type(x) 返回x的数据类型
int(x) 将x表示的浮点数、字符串或布尔型转换为一个整数,若x为字符串,则必须是只包含数字的字符串,如"123"才能转换
float(x) 将x表示的整数、字符串或布尔型转换为一个浮点数
str(x) 将x表示的整数、浮点数或布尔型转换为字符串
bool(x) 将x表示的整数、浮点数或字符串转换为布尔值,当x为0、空字符串、空值(None)时返回False,否则返回True

【例2-7】type( )函数应用举例

>>> type(100)
                 #返回整数100的数据类型为int整数
>>> type(20.3*5)
          #返回表达式20.3*5的数据类型为float浮点数
>>> type("hello world")
     #返回字符串“hello world”的数据类型为字符串str
>>> type(True)
   #返回True的数据类型为布尔型bool

【例2-8】常用类型转换函数int( )应用举例

>>> int(5.9)    # 将浮点数5.9转换为整数(截断取整) ,不四舍五入
5
>>> int(‘123’)       # 将字符串(必须是不包含小数点的数字串)转换为整数
123
>>> int('1.23') # 转换的数字串中不可以包含小数点
Traceback (most recent call last):
  File "", line 1, in 
ValueError: invalid literal for int( ) with base 10: '1.23‘
>>> int(True)   # 将布尔型True转换为整数1
1
>>>int(False)   #将布尔型False转换为整数0
0

【例2-9】常用类型转换函数float( )应用举例

>>> float(1)    # 将整数1转换为浮点数
1.0
>>> float('123')    # 将字符串'123'转换为浮点数
123.0
>>> float(‘a’)           # 转换的字符串必须是数字串
Traceback (most recent call last):
  File "", line 1, in 
ValueError: could not convert string to float: 'a‘
>>> float(True)     # 将布尔型True转换为浮点数1.0
1.0
>>>float(False)     #将布尔型False转换为浮点数0.0
0.0

【例2-10】常用类型转换函数str( )应用举例

>>> str(520)    # 将整数520转换为字符串’520’
'520‘
>>> str(520.6)  # 将浮点数520.6转换为字符串’520.6’
'520.6‘
 >>> str(123e5)      # 将浮点数123e5转换为字符串
'12300000.0‘
>>> str(True)   # 将布尔型True转换为字符串’True’
'True‘
>>>str(False)   #将布尔型False转换为字符串’False’
'False'

【例2-11】常用类型转换函数bool( )应用举例

>>> bool(0)
False
>>> bool(1)
True
>>> bool(10)
True
>>> bool(0.0)
False
>>> bool(0.1)
True
>>> bool(5.21)
True
>>> bool("")
False
>>> bool("abc")
True
>>> bool()
False
>>> bool(None)
False

当其他类型数据转换为布尔类型时,值为0的整数、浮点数、空字符串、空值(None)等被看作是False,其他值均被看作是True

关系运算符

在解决问题时常常需要比较两个对象的大小,Python中的关系运算符如表所示

运算符 描述 实例
== 等于 5==4 返回 False
!= 不等于 5!=4 返回 True
<> 不等于 5<>4 返回 True
> 大于 4>5 返回 False
< 小于 4<5 返回 True
> 大于等于 9>=10 返回 False
<= 小于等于 9<=10 返回 True

【例2-12】求以下表达式的值

>>>"acc"<"b"
True
>>>"sunck"=="sunck"
True
>>>"acc"<"bcc"
True
>>>"zaa">"azz"
True

【例2-13】求以下表达式的值

>>> 1<2<3
True
>>> 1<2>3
False
>>> 1<3>2
True

强调:数值比较时按值的大小进行比较,字符串的比较则按ASCII码值的大小进行比较,按照关系运算符左右两边的字符串从第1个字符开始依次对对应位置的字符进行比较

运算符优先级

  • Python语言支持多种类型的运算符:数值(算术)运算符、关系(比较)运算符、逻辑运算符、成员运算符、位运算符、身份运算符等。
  • 实际应用中, 多种运算符经常混合使用,表达式也由多种运算混合而成,每种运算符之间有优先级顺序,而不同类型运算符间也存在优先级顺序,总体上的优先级顺序为:
    逻辑运算符 → 关系运算符 → 算数运算符
    (各种类型运算符优先级 ,由低→高)

你可能感兴趣的:(2020年3月12日 第二章 基本数据类型、运算符和表达式 -2)