数据类型的内置方法

打印 上一主题 下一主题

主题 882|帖子 882|积分 2646

数据类型的内置方法

数据类型的内置方法简介

数据类型的内置方法相当于数据类型所拥有的独特的功能,可能这些功能相似也可能不相似,好比个人的特长是可能不一样的。
  1. 数据类型内置方法基本方式:
  2.         数据类型.(点)方法名()
复制代码
数据类型的内置方法

整型(int)
  1. 1.整型就是,整数,数字一般是用于算术运算,整型没有内置方法。
  2. 2.类型转换:int(要转换的变量名或数据)
  3. 3.int可进行类型转换,当输入字符串时只能是纯数字且为整数才可以转换
  4.         # 类型转换
  5.     print(type(int('222')))  # <class 'int'>
  6.     print(type(int('-222')))  # <class 'int'>
  7.     print(type(int('22.2')))  # 报错
  8.     print(type(int('222w')))  # 报错
  9. 4.进制转换
  10. 可以将整型的数值进行进制转换,整型中的整数本身就是十进制,可转换为二进制、八进制、十六进制。
  11.         bin()        将十进制(整数)转二进制
  12.         oct()        将十进制(整数)转八进制
  13.         hex()        将十进制(整数)转十六进制
  14.     # 进制转换
  15.     print(bin(213))  # 0b11010101         0b开头的为二进制
  16.         print(oct(213))  # 0o325              0o开头的为八进制
  17.         print(hex(213))  # 0xd5               0x开头的为十六进制
  18.     # 默认十进制前没有任何标志
  19.     # python可自动识别进制数
  20.     print(int(0b11010101))  # 213
  21.         print(int(0o325))       # 213
  22.         print(int(0xd5))        # 213
  23.     # 可指定进制数转化
  24.     print(int('0b11010101', 2))     # 213
  25.         print(int('0o325', 8))          # 213
  26.         print(int('0xd5', 16))          # 213
  27.    
  28. 5.针对布尔值
  29. 可将布尔值转换为对应的数值
  30.     print(int(True))        # 1
  31.     print(int(False))       # 0
复制代码
浮点型(float)
  1. 1.类型转换
  2. 输入的字符型为整数可转换为为浮点型,后面加了.0;只能转换含有一个小数点的数值。
  3.     print(float('222'))               # 222.0
  4.     print(float('-222'))              # -222.0
  5.     print(float('22.2'))              # 22.2
  6.     print(float('222w'))              # 报错
  7.     print(float('222.222.222'))       # 报错
  8.    
  9. 2.针对布尔值
  10. 可将布尔值转换为对应的数值后面加.0
  11.     print(float(True))      # 1.0
  12.     print(float(False))     # 0.0
  13.    
  14. 3.补充说明
  15. python对数字的敏感度不高,有些数值进行计算时会出错。
  16.         print(23.0 * 3.2)       # 73.60000000000001
复制代码
字符型(str)
  1. 1.索引取值
  2. []中只有一个数值只能从左到右取单个字符,且空格也算一个字符,若带有符号则代表反向索取即从右往左
  3. s1 = 'hello word'
  4. print(s1[3])            # l
  5. print(s1[-3])           # o
  6. 2.切片取值
  7. [:]中有两个数值且用:隔开,左边数字代表第一个索引的字符,右边的数值代表最后一个索引的字符,若两个数值都为负数代表反向取值,但是还是从左往右切,且负数小的在左负数大的在右。
  8. s1 = 'hello word'
  9. print(s1[2:6])          # llo
  10. print(s1[-2:-6])        # 无
  11. print(s1[-6:-2])        # o wo
  12. [::]中三个数值且用:隔开,左边数字代表第一个索引的字符,中间的数值代表最后一个索引的字符,右边的数值代表可差/隔几个取值,从左向右取值。
  13. s1 = 'hello word'
  14. print(s1[1:10:2])       # el od
  15. '''[::],若想反向取值必须要三个数值都为负数,且从右往左取值'''
  16. s1 = 'hello word'
  17. print(s1[1:3:-1])       # 无
  18. print(s1[-1:-3:1])      # 无
  19. print(s1[-1:-3:-1])     # dr
  20. 3.间隔方向
  21. [:]代表取字符串内所有的值
  22. [::]左边数字代表第一个索引的字符,中间的数值代表最后一个索引的字符,最右边的数值代表间隔数也叫差数,若要反向取值时,都要为负数,且负数大的在左负数小的在右。
  23. s1 = 'hello word'
  24. print(s1[:])            # hello word
  25. print(s1[::3])          # hlwd
  26. print(s1[1:8:1])        # ello wo
  27. print(s1[1:8:2])        # el o
  28. print(s1[1:8:-1])       # 无
  29. print(s1[-1:-8:-1])     # drow ol
  30. print(s1[-8:-1:-1])     # 无
  31. 4.统计字符串中的个数
  32. len(要统计的变量名或字符串)
  33. 字符串(引号)内的空格、标点符号、特殊符号都算一个字符
  34. s1 = 'In the future, you will thank you for your efforts'
  35. print(len(s1))  # 50
  36. 5.移除字符串首尾字符的个数
  37. 字符串或变量名.strip(要移除的字符)                        # 移除首尾的字符
  38. 字符串或变量名.lstrip(要移除的字符)                        # 移除左边的字符
  39. 字符串或变量名.rstrip(要移除的字符)                        # 移除右边的字符
  40. '''注意的是只能移除首尾,中间不可移除'''
  41. s1 = '   hello word   '
  42. print(s1, len(s1))                  #    hello word    16
  43. print(s1.strip(), len(s1.strip()))  # hello word 10
  44. s2 = '$$$hahahha$wowowo$$$'
  45. print(s2.lstrip('$'))                 # hahahha$wowowo$$$
  46. print(s2.rstrip('$'))                 # $$$hahahha$wowowo
  47. '''字符串调用内置方法,不是改变原数据值,而是产生了新的数据值'''
  48. s2 = '$$$hahahha$wowowo$$$'
  49. s2.strip('$')
  50. print(s2)                             # $$$hahahha$wowowo$$$
  51. print(s2.strip('$'))                  # hahahha$wowowo
  52. 应用eg:
  53. # username = input('username>>>:')
  54. # username = username.strip()  # 等同于 username = input('username>>>:').strip()  先获取用户输入,然后移除首尾空格,再赋值给变量名
  55. # if username == 'orange':  # '  orange  ' == 'orange'
  56. #     print('登录成功')
  57. # else:
  58. #     print('登录失败')
  59. 6.按照指定的字符切割字符串
  60. 按照指定的字符将字符串切割成几个字符串,以列表的方式输出
  61. 字符串或变量名.split(要切割的字符)                                        # 要切割所有的字符
  62. 字符串或变量名.split(要切割的字符, maxsplit=整数)           # 要切割从左到右的第几个的字符
  63. 字符串或变量名.rsplit(要切割的字符, maxsplit=整数)           # 要切割从右到左的第几个的字符
  64. '''切割字符串后打印输出的就列表'''
  65. s1 = '今天下雨了*我不喜欢下雨*但是我又讨厌热'
  66. print(s1.split('*'))                    # ['今天下雨了', '我不喜欢下雨', '但是我又讨厌热']
  67. print(type(s1.split('*')))              # <class 'list'>
  68. info1, info2, info3 = s1.split('*')        # info1, info2, info3 = ['今天下雨了', '我不喜欢下雨', '但是我又讨厌热']
  69. print(info1, info2, info3)              # 今天下雨了 我不喜欢下雨 但是我又讨厌热
  70. print(s1.split('*', maxsplit=1))    # ['今天下雨了', '我不喜欢下雨*但是我又讨厌热']
  71. print(s1.rsplit('*', maxsplit=1))   # ['今天下雨了*我不喜欢下雨', '但是我又讨厌热']
  72. 7.字符串大小写
  73. 可以判断字符串中的字母是否大小写,只能对字母有效果,应用字母验证码
  74. 字符串或变量名.lower()                        # 将字母都转换成小写
  75. 字符串或变量名.upper()                        # 将字母都转换成大写
  76. 字符串或变量名.islowwer()                # 判断字母是否小写
  77. 字符串或变量名.upper()                        # 判断字母是否大写
  78. s1 = 'HELLO WORD 8888'
  79. s2 = 'hello word 8888'
  80. s3 = 'Hello word 8888'
  81. print(s1.lower())   # hello word 8888
  82. print(s2.upper())   # HELLO WORD 8888
  83. print(s3.lower())   # hello word 8888
  84. print(s3.upper())   # HELLO WORD 8888
  85. print(s1.isupper())     # True
  86. print(s1.islower())     # False
  87. print(s2.isupper())     # False
  88. print(s2.islower())     # True
  89. print(s3.islower())     # False
  90. print(s3.isupper())     # False
  91. 应用eg:
  92. # code = 'XwQc198'
  93. # print('随机验证码:%s' % code)
  94. # confirm_code = input('请输入验证码:')
  95. # code_upper = code.upper()  # 将验证码转大写
  96. # confirm_code_upper = confirm_code.upper()  # 将输入的验证码转大写
  97. # if code_upper == confirm_code_upper:  # 统一转换大写或者小写。再判断是否相同
  98. #     if confirm_code.upper() == code.upper():  # 统一转换大写或者小写,再判断
  99. #         print('验证码正确')
  100. #     else:
  101. #         print('验证码错误')
  102. 8.格式化输出
  103. format()
  104. 方式1:等价于%s占位,利用{}
  105. s1 = 'my name is {}, my age is {}'
  106. print(s1.format('orange', 22))      # my name is orange, my age is 22
  107. 方式2:支持索引取值,并可重复使用,利用{索引值}
  108. s2 = '{0} {1} my name is {0}, my age is {1} {0} {1}'
  109. print(s2.format('orange', 22))      # orange 22 my name is orange, my age is 22 orange 22
  110. 方式3:支持关键字取值,相当于按K取值,并且支持重复使用,利用{变量名},用赋值的方式给值
  111. s3 = '{name} {age} my name is {name}, my age is {age} {name} {age}'
  112. print(s3.format(name='orange', age=22))     # orange 22 my name is orange, my age is 22 orange 22
  113. 方式4:先定义好变量然后用{变量名}占位(必记,重点!!!)
  114. 字符串的外面要加上'f',首先要定义好变量,利用{变量名}
  115. name = 'orange'
  116. age = 18
  117. print(f'{name} {age} my name is {name}, my age is {age} {name} {age}')  # orange 22 my name is orange, my age is 22 orange 22
  118. 9.统计字符串中指定字符出现的次数
  119. count()
  120. 字符串或变量名.count(指定的字符)
  121. 相当于利用循环查询指定字符的次数
  122. s1 = 'I want to See Sea'
  123. print(s1.count('e'))  # 3
  124. 10.判断字符串的开头或者结尾
  125. 字符串或变量名.startswith(指定的字符)     # 判断指定字符是否在开头
  126. 字符串或变量名.endswith(指定的字符)       # 判断指定字符是否在结尾
  127. s1 = 'I want to See Sea'
  128. print(s1.startswith('I'))   # True
  129. print(s1.startswith('a'))   # False
  130. print(s1.endswith('I'))     # False
  131. print(s1.endswith('a'))     # True
  132. 11.字符串的替换
  133. 字符串或变量名.replace(原来的字符(老字符),指定的字符(新字符),数值)   # 将指定的字符替换成原来的字符,数值代表替换的个数
  134. 从左向右替换,没有从右向左替换
  135. s1 = 'I want to see sea sea sea'
  136. print(s1.replace('sea', '大海', 2))   # I want to see 大海 大海 sea
  137. 12.字符串的拼接
  138. 拼接的字符.join(要被拼接的字符)
  139. 可使用某些符号:+、*、|、$、@...用列表将要拼接的内容放入列表中,但是列表中的数据必须是字符串
  140. 使用加号在拼接字符串的量不大时使用,否则会消耗内存,如果字符串量大推荐使用join
  141. print('girl' + 'friend')                                    # girlfriend
  142. print('go' * 6)                                                    # gogogogogogo
  143. print(''.join(['girl', 'friend', 'you']))                          # girlfriendyou
  144. print('@'.join(['girl', 'friend', 'you']))                  # girl@friend@you
  145. print('$'.join(['girl', 'friend', 'you']))                  # girl$friend$you
  146. print('$'.join(['girl', 'friend', 'you', 8888]))     # 报错
  147. 13.判断字符串中是否是纯数字
  148. 字符串或变量名.isdigit()
  149. print('123'.isdigit())  # True
  150. print('123a'.isdigit())  # False
  151. print(''.isdigit())  # False
  152. 14.查找某个字符对应的索引值
  153. index(查找字符,首索引,尾索引)
  154. find(查找字符,首索引,尾索引)
  155. index在进行索引查找时,从左向右找,如果没有查找到对应的索引值则会报错
  156. find在进行索引查找时,从左向右找,如果没有查找到对应的索引值则会返回数值-1
  157. s1 = 'I want to See'
  158. print(s1.index('s'))                # 10
  159. print(s1.find('s'))                        # 10
  160. print(s1.index('s', 0, 6))         # 报错  从索引0找到索引6
  161. print(s1.find('s', 0, 6))         # -1
  162. 15.正文相关操作
  163. 字符串或变量名.title()
  164. 将字符串的中单词的首字母大写,针对英文单词,对中文无效
  165. s1 = 'i want to see'
  166. print(s1.title())   # I Want To See
  167. s2 = '我想要回家'
  168. print(s2.title())   # 我想要回家
复制代码
列表相关方法list()
  1. 1.类型转换
  2. 能够被for循环的数据类型都可以转换成列表,比如字典,元组,集合,字符串
  3. print(list('222aaa'))
  4. print(list({'name': 'orange', 'age': 22}))
  5. 这里我误以为整型可以循环,数和集合是两个概念,可以遍历集合但是不能遍历整数,因为整型是不可重复反馈的活动的对象,即不是可迭代对象。如整型和字符型。
  6. 2.索引取值
  7. 若索引为整数表示从左往右取,若索引为负数,代表反向取从右往左
  8. s1 = ['name', 'age', 22, 33]
  9. print(s1[1])    # age
  10. print(s1[-2])   # 22
  11. 3.切片操作
  12. list[左:右],左边的数值代表第一个索引,右边的数值代表最后一个索引,可去这之间的数据值,若想反向取值可加符号,但是负数小的在左边负数大的在右边。
  13. s1 = ['name', 'age', 22, 33]
  14. print(s1[1:3])      # ['age', 22]
  15. print(s1[:])        # ['name', 'age', 22, 33]
  16. print(s1[-1:-2])    # [] 取不到
  17. print(s1[-2:-1])    # [22]
  18. 4.间隔/方向
  19. list[左:中:右],左边的数值代表第一个索引,中边的数值代表最后一个索引,右边的数值代表间隔几索取的值,若为负数则代表反向取值,且负数小的在左负数大的在右,但是从左向右取值。
  20. s1 = ['name', 'age', 22, 33]
  21. print(s1[0:3:2])    # ['name', 22]
  22. print(s1[-1:-3:1])  # [] 无
  23. print(s1[-3:-1:1])   # ['age', 22]
  24. 5.统计列表个数
  25. 统计列表个数是以统计列表中逗号隔开数据值的个数
  26. s1 = ['name', 'age', 22, 33]
  27. print(len(s1))      # 4
复制代码
作业
  1. 1.基于字符串充当数据库完成用户登录(基础练习)
  2. data_source = 'jason|123'  # 一个用户数据
  3. 获取用户用户名和密码 将上述数据拆分校验用户信息是否正确
  4. # 1.先将字符串进行切割,切割除去‘|’并绑
  5. # 2.字符串切割后是列表
  6. # 3.可索引取列表中的值
  7. # 4.判断索引取值后的数据与用户登录所输入的数据是否相等
  8. data_source = 'jason|123'
  9. info = data_source.split('|')  # 切割除去'|'绑定给info
  10. username = info[0]  # 解压赋值,我理解为索引取值
  11. password = info[1]
  12. name = input('请输入你的用户名:')
  13. pwd = input('请输入你的密码:')
  14. if username == name and password == pwd:    # 判断用户名是否正确
  15.     print('登录成功')
  16. else:
  17.     print('登录失败')
复制代码
  1. 2.基于列表充当数据库完成用户登录(拔高练习)  # 多个用户数据
  2. data_source = ['jason|123', 'kevin|321','oscar|222']
  3. # 1.先循环列表,循环获取列表中的值,则按照索引可别分出各个数据值
  4. # 2.将循环取出的各个数据值进行切割,切割除去‘|’并绑定给info,info是列表
  5. # 3.将切割后的小列表进行索引取值
  6. # 4.将取出的值进行判断
  7. data_source = ['jason|123', 'kevin|321', 'oscar|222']
  8. name = input('请输入你的用户名:')
  9. pwd = input('请输入你的密码:')
  10. for i in data_source:       # 循环获取列表中的值
  11.     info = i.split('|')     # 切割小列表中的字符串
  12.     username = info[0]      # 解压赋值
  13.     password = info[1]
  14.     if username == name and password == pwd:
  15.         print('登录成功')
  16.         break
  17. else:       # 注意,这句的位置,先循环并判断列表中的用户名是否存在,然后不存在输出登录失败
  18.     print('登录失败')
  19. # 1.先循环列表,循环获取列表中的值,则按照索引可别分出各个数据值
  20. # 2.将循环取出的各个数据值进行切割,切割除去‘|’并绑定给info,info是列表
  21. # 3.将切割后的小列表循环进行索引取值
  22. # 4.将取出的值进行判断
  23. data_source = ['jason|123', 'kevin|321', 'oscar|222']
  24. name = input('请输入你的用户名:')
  25. pwd = input('请输入你的密码:')
  26. for i in data_source:       # 循环获取列表中的值
  27.     info = i.split('|')
  28.     for v in info:          # 循环获取每个小列表中的值,其实不用循环,多余的一步
  29.         username = info[0]
  30.         password = info[1]
  31.     if username == name and password == pwd:
  32.         print('登录成功')
  33.         break
  34. else:       # 注意,这句的位置
  35.     print('登录失败')
  36.    
  37. 这题作业我的问题首先多用了一个循环,无论是否写循环都不会影响最后的结果,写上多余,并且我一直把最后登录失败打印'登录失败'的语句位置放错,这个是我最大的问题,并且我是问了同学才知道'登录失败'应该放在哪里,对循环语句先后执行还是模糊。
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

玛卡巴卡的卡巴卡玛

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表