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

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

字符串类型

字符串

  • 存储和处理文本信息在计算机应用中十分常见
  • 程序中字符串类型用于表示文本信息,是字符的序列表示
  • 在Python中,字符串中的文本要用界限符英文的单引号、双引号或三引号 括起来,如:"Python语言"、"您好"等。
>>> print(“《我和我的祖国》”)
《我和我的祖国》
>>> print(“《平凡的世界》”,”路遥”)
《平凡的世界》   路遥
>>> print(‘abc123@163.com’)
abc123@163.com
>>>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 "<pyshell#1>", line 1, in <module>
    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)
<class ‘int’>                 #返回整数100的数据类型为int整数
>>> type(20.3*5)
<class ‘float’>          #返回表达式20.3*5的数据类型为float浮点数
>>> type("hello world")
<class ‘str’>     #返回字符串“hello world”的数据类型为字符串str
>>> type(True)
<class ‘bool’>   #返回True的数据类型为布尔型bool

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

>>> int(5.9)    # 将浮点数5.9转换为整数(截断取整) ,不四舍五入
5
>>> int(‘123’)       # 将字符串(必须是不包含小数点的数字串)转换为整数
123
>>> int('1.23') # 转换的数字串中不可以包含小数点
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
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 "<stdin>", line 1, in <module>
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语言支持多种类型的运算符:数值(算术)运算符、关系(比较)运算符、逻辑运算符、成员运算符、位运算符、身份运算符等。
  • 实际应用中, 多种运算符经常混合使用,表达式也由多种运算混合而成,每种运算符之间有优先级顺序,而不同类型运算符间也存在优先级顺序,总体上的优先级顺序为:
    逻辑运算符 → 关系运算符 → 算数运算符
    (各种类型运算符优先级 ,由低→高)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容