900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 《Python零基础快乐学习之旅》学习笔记3——Python的基本数据类型

《Python零基础快乐学习之旅》学习笔记3——Python的基本数据类型

时间:2024-01-03 03:19:59

相关推荐

《Python零基础快乐学习之旅》学习笔记3——Python的基本数据类型

第3章 Python的基本数据类型

1. 数值数据类型1.1 整数与浮点数的运算1.2 强制数据类型的转换1.3 数值运算常用的函数2. 布尔值数据类型3. 字符串数据类型3.1 字符串的连接3.2 处理多于一行的字符串3.3 逸出字符3.4 强制转换为字符串str()3.5 字符数据的转换3.6 使用字符串加法和换行字符\n3.7 格式化输出3.8 字符串切片3.9 字符串常用操作之查找3.10 字符串常用操作之修改3.11 字符串常用操作之判断

Python的基本数据类型有下列几种:

数值数据类型(numeric type)。常见的数值数据可分为整数(int)类型、浮点数(float)类型,不论是整数或浮点数都可以是任意大小。布尔值(boolean)数据类型。也可归为数值数据类型。文字序列类型(text sequence type)。即字符串(string)数据类型。序列类型(sequence type)。list、tuple。对映类型(mapping type)。dict。集合类型(set type)。集合set。

由于变量在使用前不需要声明,同时程序设计过程中,变量的数据类型会改变,通常需要使用type()函数判断目前的变量数据类型。type()函数可列出变量的数据类型类别。

列出数值变量的数据类型:

>>> x = 10>>> y = x / 3>>> print(x)10>>> print(type(x))<class 'int'>>>> print(y)3.3333333333333335>>> print(type(y))<class 'float'>>>>

1. 数值数据类型

Python在声明变量时可以不用设置这个变量的数据类型,未来如果这个变量内容是存放整数,这个变量就是整数(int)数据类型;如果这个变量内容是存放浮点数,这个变量就是浮点数数据类型。整数与浮点数最大的区别是:整数不含小数点,浮点数含小数点。

1.1 整数与浮点数的运算

Python程序设计时不相同数据类型也可以执行运算,程序设计时,常会发生整数与浮点数之间的数据运算。Python具有简单的自动转换能力,在计算时会将整数转换为浮点数再执行运算。

不同数据类型的运算实例:

>>> x = 10>>> y = x + 5.5>>> print(x, type(x), y, type(y))10 <class 'int'> 15.5 <class 'float'>

此外,如果某一个变量是整数,如果最后所存储的值是浮点数,Python也会将此变量转换成浮点数。

>>> x = 10>>> print(x, type(x))10 <class 'int'>>>> x += 5.5>>> print(x, type(x))15.5 <class 'float'>>>>

1.2 强制数据类型的转换

有时设计程序时,可自行强制使用下列函数,转换变量的数据类型。

int():将数据类型强制转换成整数。float():将数据类型强制转换为浮点数。

将浮点数强制转换为整数的运算。

# ch3_4.pyx = 10.5print(x, type(x)) # 加法前列出x数据类型y = int(x) + 5print(y, type(y)) # 加法后列出y数据类型z = float(y) + 5print(z, type(z)) # 加法后列出z数据类型

执行结果:

============================== RESTART: E:/Python-Files/ch3/ch3_4.py =============================10.5 <class 'float'>15 <class 'int'>20.0 <class 'float'>>>>

1.3 数值运算常用的函数

下列是数值运算时常用的函数:

abs():计算绝对值。

pow(x,y):返回x的y次方。

round(x,n):x为要处理的数字,n是小数字数。如果省略n,则表示取整数忽略小数字数;若n不为空,则表示需保留n位小数。*处理整数时,如果处理位数左边是奇数,则四舍五入;如果处理位数左边是偶数,则五舍六入。*例如:round(1.5)=2,round(2.5)=2。

>>> x, y = round(1.5), round(2.5)>>> print(x, y)2 2>>>

处理小数时,采用下一小数字数采用“5”以下舍去,“51”以上进位的处理方式。例如:

>>> round(2.15,1)2.1>>> round(2.25,1)2.2>>> round(2.151,1)2.2>>> round(2.251,1)2.3>>> round(2.152,2)2.15>>> round(2.155,2)2.15>>> round(2.156,2)2.16>>> round(2.149,2)2.15>>>

abs()、pow()、round()函数的应用。

# ch3_5.pyx = -10print("以下输出abs()函数的应用")print(x) # 输出变量xprint(abs(x)) # 输出abs(x)x, y = 5, 3print("以下输出pow()函数的应用")print(pow(x, y))x = 47.5print(round(x))x = 48.5print(round(x))x = 49.5print(round(x))print("以下输出round(x,n)函数的应用")x = 2.15print(round(x,1))x = 2.25print(round(x,1))x = 2.151print(round(x,1))x = 2.251print(round(x,1))

============================== RESTART: E:/Python-Files/ch3/ch3_5.py =============================以下输出abs()函数的应用-1010以下输出pow()函数的应用125484850以下输出round(x,n)函数的应用2.12.22.22.3>>>

2. 布尔值数据类型

Python的布尔值(boolean)数据类型有两种,True(真)或False(伪),它的数据类型代号为bool。一般应用于程序流程的控制中,特别是条件语句中,程序可根据该布尔值判断应该如何执行工作。

>>> x = True>>> print(x,type(x))True <class 'bool'>>>> y = False>>> print(y,type(y))False <class 'bool'>>>>

3. 字符串数据类型

字符串(string)数据是指两个单引号(‘’)或双引号(“”)之间任意个数符号的数据,其数据类型代号为str。在英文字符串的使用中,通常会出现字符串中间出现单引号(单引号也属于字符串中的一部分),这种情况下,可以使用双引号或转义字符处理。

>>> x = 'This is Tom's book!'SyntaxError: invalid syntax>>> x = "This is Tom's book!">>> print(x)This is Tom's book!>>> x = 'This is Tom\'s book!'>>> print(x)This is Tom's book!>>>

# 1.一对引号字符串name1 = 'Tom'name2 = "David"# 字符串跨行str1 = 'hello'\'world'print(str1)# 2.三引号字符串name3 = 'Judy'# 三引号形式的字符串支持换行name4 = """Lily"""a = '''I am Jacky,nice to meet you!'''print(a)b = """I am Jacky,nice to meet you!"""print(b)# 转义字符c = 'I\'m Lihua, coming from Shanghai'print(c)

3.1 字符串的连接

数学的运算符“+”,可以执行两个字符串相加,产生新的字符串。

x = 123y = 456z = x + yprint("数值相加:",z)str1 = "123"str2 = "456"str3 = str1 + str2print("由数值组成的字符串相加:",str3)str4 = str1 + " " + str2print("由数值组成的字符串相加,同时中间加上一个空格:",str4)str5 = "Hello"str6 = "World!"str7 = str5 + str6print("一般字符串相加:",str7)

数值相加: 579由数值组成的字符串相加: 123456由数值组成的字符串相加,同时中间加上一个空格: 123 456一般字符串相加: HelloWorld!

3.2 处理多于一行的字符串

如果字符串长度多于一行,可以使用3个单引号(或3个双引号)将字符串包括即可。(与注释的处理方式类似)

str1 = '''天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能。'''print(str1)str2 = """北冥有鱼,其名为鲲。鲲之大,不知其几千里也;化而为鸟,其名为鹏。鹏之背,不知其几千里也;怒而飞,其翼若垂天之云。是鸟也,海运则将徙于南冥。南冥者,天池也。"""print(str2)

天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能。北冥有鱼,其名为鲲。鲲之大,不知其几千里也;化而为鸟,其名为鹏。鹏之背,不知其几千里也;怒而飞,其翼若垂天之云。是鸟也,海运则将徙于南冥。南冥者,天池也。

3.3 逸出字符

在字符串使用中,如果字符串内有一些特殊字符,例如:单引号、双引号等,必须在特殊符号前加上反斜杠(“\”)进行转义,才能正常使用,这种含有“\”符号的字符叫做逸出字符

字符串使用过程中,尤其是碰到字符串含有单引号时,如果是使用单引号定义这个字符串,必须使用逸出字符;如果使用的是双引号定义该字符串,则可以不使用逸出字符。

# 以下输出使用单引号设置的字符串,需使用\'str1 = 'I can\'t stop loving you.'print(str1)# 以下输出使用双引号设置的字符串,不需使用\'str2 = "I can't stop loving you."print(str2)# 以下输出有\t和\n字符str3 = "I \tcan't stop \nloving you."print(str3)

I can't stop loving you.I can't stop loving you.I can't stop loving you.

3.4 强制转换为字符串str()

str()函数可以强制将数值数据转换为字符串数据。

x = 123y = 456z = x + yprint("数值相加:",z,type(z))str1 = str(x) + str(y)print("强制转换为字符串相加:",str1,type(str1))

数值相加: 579 <class 'int'>强制转换为字符串相加: 123456 <class 'str'>

3.5 字符数据的转换

如果字符串含一个字符或一个文字时,可以使用下列函数执行数据的转换。

chr(x):可以返回函数x值的字符,x是ASCII码值。ord(x):可以返回函数字符参数x的Unicode码值(返回值是对应的十进制整数),如果是中文字也可返回Unicode码值。如果是英文字符,Unicode码值与ASCII码值是一样的。

ch1 = 97ch2 = chr(ch1)print(ch2) # 输出数值97的字符ch3 = ord(ch2)print(ch3) # 输出字符ch3的Unicode码值ch4 = '中'print(ord(ch4)) # 输出字符‘中’的Unicode码值

a9720013

3.6 使用字符串加法和换行字符\n

设计程序时,若想将字符串分行输出,可以使用字符串加法功能,在加法过程中加上换行字符“\n”,即可产生字符串分行输出的结果。

str1 = "天行健,君子以自强不息"str2 = "地势坤,君子以厚德载物"str3 = str1 + "\n" + str2 + "\n"print(str3)

天行健,君子以自强不息地势坤,君子以厚德载物

3.7 格式化输出

# 格式化输出"""1.准备数据2.格式化符号输出数据"""age = 19name = 'Monkey D. Luffy'gender = 'male'weight = 80.5height = 174reward = 30occupation = '海贼'tag = "我是要成为海贼王的男人!海贼王,我当定了!"# 1.我今年x岁 -- 整数 %dprint('我今年%d岁' % age) # 我今年19岁# 2.我叫x -- 字符串 %sprint('我叫%s' % name) # 我叫Monkey D. Luffy# 3.我的体重是x公斤 -- 浮点型 %fprint('我的体重是%.1f公斤' % weight) # 我的体重是80.5公斤# 4.我的身高是x厘米 -- 整数 %dprint('我的身高是%d' % height) # 我的身高是174# 5.目前我的赏金是x亿贝利 -- 整数 %dprint('目前我的赏金是%d亿贝利' % reward) # 目前我的赏金是30亿贝利# 6.我的职业是x -- 字符串 %sprint('我的职业是%s' % occupation) # 我的职业是海贼# 7.我的口头禅是x -- 字符串 %sprint('我的口头禅是:%s' % tag) # 我的口头禅是:我是要成为海贼王的男人!海贼王,我当定了!# 8.我叫x,性别是x,今年x岁,身高x,体重x公斤,职业是x,目前的赏金是x亿贝利。我的口头禅是xprint("我叫%s,性别是%s,今年%d岁,身高%d,体重%.2f公斤,职业是%s,目前的赏金是%d亿贝利。我的口头禅是:%s" % (name, gender, age, height, weight, occupation, reward, tag))# 我叫Monkey D. Luffy,性别是male,今年19岁,身高174,体重80.50公斤,职业是海贼,目前的赏金是30亿贝利。我的口头禅是:我是要成为海贼王的男人!海贼王,我当定了!# 语法 f'{表达式}'print(f'我叫{name},性别是{gender},今年{age}岁,身高{height},体重{weight}公斤,职业是{occupation},目前的赏金是{reward}亿贝利。我的口头禅是:{tag}')# 我叫Monkey D. Luffy,性别是male,今年19岁,身高174,体重80.5公斤,职业是海贼,目前的赏金是30亿贝利。我的口头禅是:我是要成为海贼王的男人!海贼王,我当定了!# format()print("我叫{},性别是{},今年{}岁,身高{},体重{}公斤,职业是{},目前的赏金是{}亿贝利。我的口头禅是:{}".format(name, gender, age, height, weight, occupation, reward, tag))# 我叫Monkey D. Luffy,性别是male,今年19岁,身高174,体重80.5公斤,职业是海贼,目前的赏金是30亿贝利。我的口头禅是:我是要成为海贼王的男人!海贼王,我当定了!

3.8 字符串切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

"""语法:序列[开始位置下标:结束位置下标:步长]注意:1.不包含结束位置下标对应的数据,正负整数均可;2.步长是选取间隔,正负整数均可,默认步长为1"""str1 = '生活就像海洋,只有意志坚强的人才能到达彼岸'print(str1[4:6]) # 海洋# 不写结束,表示选取到最后print(str1[4:]) # 海洋,只有意志坚强的人才能到达彼岸# 不写开始,默认从0开始print(str1[:4]) # 生活就像# 不写开始和结束,表示选取所有print(str1[:]) # 生活就像海洋,只有意志坚强的人才能到达彼岸print(str1[::2]) # 生就海,有志强人能达岸# 步长默认为1print(str1[::1]) # 生活就像海洋,只有意志坚强的人才能到达彼岸print(str1[1:8:3]) # 活海只# 负数测试# 步长为负数,表示倒序选取print(str1[::-2]) # 岸达能人强志有,海就生print(str1[-4:-1]) # 到达彼# 不能选取数据:从-4开始到-1结束,选取方向为从左到右,但是步长为-1,从右向左选取print(str1[-4:-1:-1]) # 如果选取方向(下标开始到结束的方向)和步长的方向冲突,则无法选取数据print(str1[-4:-1:1]) # 到达彼print(str1[-1:-4:-1]) # 岸彼达

3.9 字符串常用操作之查找

字符串查找方法即查找子串在字符串中的位置或出现的次数

find():检测某个子串是否包含在这个字符串中,包含则返回该子串开始的位置下标,否则返回-1

语法:字符串序列.find(子串,开始位置下标,结束位置下标)index():检测某个子串是否包含在这个字符串中,存在则返回该子串开始的位置下标,否则报异常

语法:字符串序列.index(子串,开始位置下标,结束位置下标)rfind():和find()功能相同,但查找方向从右侧开始rindex():和index()功能相同,但查找方向从右侧开始count():返回某个子串在字符串中出现的次数

语法:字符串序列.count(子串,开始位置下标,结束位置下标)

"""字符串常用的操作方法有查找、修改和判断三大类""""""1.查找字符串查找方法即查找子串在字符串中的位置或出现的次数- find():检测某个子串是否包含在这个字符串中,包含则返回该子串开始的位置下标,否则返回-1语法:字符串序列.find(子串,开始位置下标,结束位置下标)- index():检测某个子串是否包含在这个字符串中,存在则返回该子串开始的位置下标,否则报异常语法:字符串序列.index(子串,开始位置下标,结束位置下标)- rfind():和find()功能相同,但查找方向从右侧开始- rindex():和index()功能相同,但查找方向从右侧开始- count():返回某个子串在字符串中出现的次数语法:字符串序列.count(子串,开始位置下标,结束位置下标)"""str1 = 'In some fields, such as music and art, ' \'it is necessary for a person to have som natural ability.'print(str1.find('n')) # 1print(str1.find('s', 1, 16)) # 3print(str1.find('person')) # 61print(str1.find('music')) # 24print(str1.find('flow')) # -1print(str1.index('music')) # 24print(str1.index('m', 1, 16)) # 5print(str1.rfind('person')) # 61print(str1.rfind('music')) # 24print(str1.rfind('n')) # 80print(str1.rindex('music')) # 24print(str1.rindex('n')) # 80print(str1.count('s')) # 10print(str1.count('s', 4, 24)) # 3print(str1.count('sas', 4, 24)) # 0print(str1.count('sa')) # 1

3.10 字符串常用操作之修改

replace():替换

语法:

字符串序列.replace(旧子串,新子串,替换次数)

返回值为修改后的字符串,不会修改原字符串split():按照指定字符分割字符串,返回一个列表

语法:字符串序列.split(分割字符,num)

num表示分割字符出现的次数,返回数据个数为num+1个capitalize():将字符串第一个字符转换成大写,其他字符全为小写title():将字符串每个单词首字母转换成大写lower():将字符串中大写转小写upper():将字符串中小写转大写strip():删除字符串两侧空白字符lstrip():删除字符串左侧空白字符rstrip():删除字符串右侧空白字符ljust():返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串rjust():返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的字符串,语法和ljust()相同center():返回一个原字符串居中对齐,并使用指定字符(默认空格)填充至指定长度的新字符串,语法和ljust()相同

"""2.修改修改字符串指的是通过函数的形式修改字符串中的数据- replace():替换语法:字符串序列.replace(旧子串,新子串,替换次数)返回值为修改后的字符串,不会修改原字符串"""str2 = 'qfeqrjfodfjaosdflsfjsd'new_str = str2.replace('s', 'k')print(new_str) # qfeqrjfodfjaokdflkfjkdprint(str2) # qfeqrjfodfjaosdflsfjsd"""字符串是不可变数据类型"""""" split():按照指定字符分割字符串,返回一个列表语法:字符串序列.split(分割字符,num)num表示分割字符出现的次数,返回数据个数为num+1个"""list1 = str2.split('s')print(list1) # ['qfeqrjfodfjao', 'dfl', 'fj', 'd']list2 = str2.split('f', 3)print(list2) # ['q', 'eqrj', 'od', 'jaosdflsfjsd']# join():合并列表里面的字符串数据为一个大字符串mylist = ['a', 'p', 'p', 'l', 'e']mystr = '...'.join(mylist)print(mystr) # a...p...p...l...estr3 = 'i am Jackson, a singer from Japan'# capitalize():将字符串第一个字符转换成大写,其他字符全为小写print(str3.capitalize()) # I am jackson, a singer from japan# title():将字符串每个单词首字母转换成大写print(str3.title()) # I Am Jackson, A Singer From Japan# lower():将字符串中大写转小写print(str3.lower()) # i am jackson, a singer from japan# upper():将字符串中小写转大写print(str3.upper()) # I AM JACKSON, A SINGER FROM JAPAN# lstrip():删除字符串左侧空白字符mystr = ' shadow in my face happy new year 'print(mystr.lstrip()) # shadow in my face happy new year# rstrip():删除字符串右侧空白字符print(mystr.rstrip()) # shadow in my face happy new year# strip():删除字符串两侧空白字符print(mystr.strip()) # shadow in my face happy new year# ljust():返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串# 语法:字符串序列.ljust(长度,填充字符)str_1 = 'loading'print(str_1.ljust(13, '.')) # loading......# rjust():返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的字符串,语法和ljust()相同print(str_1.rjust(13, '.')) # ......loading# center():返回一个原字符串居中对齐,并使用指定字符(默认空格)填充至指定长度的新字符串,语法和ljust()相同print(str_1.center(13, '.')) # ...loading...

3.11 字符串常用操作之判断

所谓判断即判断真假,返回的结果为布尔型数据类型True/False

startswith():检查字符串是否以指定子串开头,是则返回True,否则返回False。若设置了开始和结束位置下标,则在指定范围内检查。

语法:字符串序列.startswith(子串,开始位置下标,结束位置下标)endswith():判断字符串是否以某个子串结尾isalpha():如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回Falseisdigit():如果字符串只包含数字则返回True,否则返回Falseisspace():如果字符串中只包含空格,则返回True,否则返回Falseisalnum():数字或字母或组合

"""所谓判断即判断真假,返回的结果为布尔型数据类型True/False- startswith():检查字符串是否以指定子串开头,是则返回True,否则返回False。若设置了开始和结束位置下标,则在指定范围内检查。语法:字符串序列.startswith(子串,开始位置下标,结束位置下标)"""mystr = "hello everybody i am fine thank you what the hell happy new year"# startswith():判断字符串是否以某个子串开头print(mystr.startswith('he')) # Trueprint(mystr.startswith('hel')) # Trueprint(mystr.startswith('help')) # False# endswith():判断字符串是否以某个子串结尾print(mystr.endswith('ye')) # Falseprint(mystr.endswith('year')) # True# isalpha():如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回Falsestr_1 = 'pine'str_2 = '14343'str_3 = ' 'str_4 = '143af43 a afds'str_5 = '143af43afds'print(str_1.isalpha()) # Trueprint(str_2.isalpha()) # Falseprint(str_3.isalpha()) # Falseprint(str_4.isalpha()) # True# isdigit():如果字符串只包含数字则返回True,否则返回Falseprint(str_1.isdigit()) # Falseprint(str_2.isdigit()) # Trueprint(str_3.isdigit()) # Falseprint(str_4.isdigit()) # False# isspace():如果字符串中只包含空格,则返回True,否则返回Falseprint(str_1.isspace()) # Falseprint(str_2.isspace()) # Falseprint(str_3.isspace()) # Trueprint(str_4.isspace()) # False# isalnum():数字或字母或组合print(str_1.isalnum()) # Trueprint(str_2.isalnum()) # Trueprint(str_3.isalnum()) # Falseprint(str_4.isalnum()) # Falseprint(str_5.isalnum()) # True

往期文章:

《Python零基础快乐学习之旅》学习笔记2——认识变量与基本数学运算

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。