前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python基础数据类型----整数 ,

python基础数据类型----整数 ,

作者头像
py3study
发布2020-01-16 12:42:29
7660
发布2020-01-16 12:42:29
举报
文章被收录于专栏:python3python3

Python基础数据类型

  • bool str int 三者之间的转换
  • str索引切片,常用操作方法
  • for循环(大量的练习题)
1.基础数类型总览
  • 整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set).
    • 10203 123 3340 int 主要用于计算+- * / 等等
    • '今天吃了没?' str 存储少量的数据,并进行相应的操作。str1 + str2, str *int , 索引,切片, 其他操作方法
    • True False bool 判断真假
    • [12, True, 'alex', [1,2,3 ]] list 存储大量有序数据。列表内部数据可任意改动
    • (12, True, 'alex', [1,2,3 ]) tuple 存储大量的数据,元组不可改变里面的元素。只读,不能更改。
    • {'name': '太白金星'} dict 字典存储大量的关联性比较强的数据,查询速度非常快。
    • set 集合
2.数字int
  • 十进制二进制转换 #二进制转换成十进制 0001 1010 ------> 26 b = 1 * 2**4 + 1 * 2**3 + 0 * 2**2 + 1 * 2**1 + 0 * 2**0 print(b) # 26 #十进制整数转换成二进制整数 42 -----> 0010 1010 除2取余,逆序排列 #十进制小数转换成二进制小数 乘2取整,顺序排列:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。 0.625 = (0.101)B 0.625 * 2 = 1.25 ---->1 0.25 * 2 =0.5 ---->0 0.50 * 2 =1.0 ---->1
  • bit_lenth 十进制转化成二进制的有效长度【bit_length()计算整数在内存中占用的二进制码的长度.】 # bit_lenth 有效的二进制的长度 i = 4 print(i.bit_length()) # 3 i = 5 print(i.bit_length()) # 3 i = 42 print(i.bit_length()) # 4
3.布尔值bool:True False
  • bool str int 三者之间的转换 数据类型之间的转换: ##### bool <---> int ####### #bool-->int :True 1 False 0 print(int(True)) # 1 print(int(False)) # 0 #int-->bool :非零即True ,0 为 False i = 0 print(bool(i)) 【重点】##### str <---> int ##### # str ---> int : 只能是纯数字组成的字符串可以转化成数字类型 s1 = '1088' print(int(s1)) # 字符串引号内必须是数字组成 print(int(' 22 '))#22 仅由数字和空白组成的字符串,通过int进行数据类型转换时,自动去除空格 print(int(' \n 22\t'))#22 仅由数字和空白组成的字符串,通过int进行数据类型转换时,自动去除空格 #应用:两个整数相加 while 1: content = input('请输入内容:') l1 = content.split('+') result = int(l1[0]) + int(l1[1]) print(result) # int ----> str 所有数字都能转化成字符串 i = 100 print(str(i),type(str(i))) 【重点】###### str <---> bool ##### # str--->bool :非空即True s1 = ' ' #空格,不是空 print(bool(s1)) #True s1 = '' # 空字符串,为False print(bool(s1)) #False # bool ---> str 无意义 print(str(True), type(str(True))) # 运行结果:True <class 'str'>
    • 应用:

    s = input('输入内容') #input输入的为字符串类型 if s: #(字符串作为布尔值进行判断) print('有内容') else: print('没有输入任何内容') #直接回车,显示“没有输入任何内容” #先空格,再回车,显示“有内容”

4.字符串str(重点)
  • Python中凡是用引号引起来的数据可以称为字符串类型,组成字符串的每个元素称之为字符,将这些字符一个一个连接起来,然后在用引号起来就是字符串。
  • 索引:索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推
  • 切片:切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串
  • 对字符串进行索引和切片,出来的数据都是字符串类型
  • 常用操作方法:字符串的常用操作方法,不会对原字符串进行任何操作,都是产生一个新的字符串
    • 索引切片步长

    #字符从左至右有顺序,依次为0,1,2....。从右往左以次为-1,-2,-3,.... s1 = 'python全栈22期' # 按照索引取值,每次取一个字符。索引即下标index s2 = s1[0] print(s2) #p print(s2,type(s2)) #p <class 'str'> s3 = s1[2] print(s3) #t s4 = s1[-1] print(s4) #期 # 按照切片取值。按照切片取值,原则:顾头不顾腚 s5 = s1[0:6] s5 = s1[:6] #从开头开始取,0可以默认不写 print(s5) #python s6 = s1[6:] print(s6) #全栈22期 print(s1[:-1] #python全栈22 #-1 是列表中最后一个元素的索引,但是要满足顾头不顾腚的原则,所以取不到'期'元素 # 切片步长 s7 = s1[:5:2] #加步长 print(s7) #pto print(s1[:]) ##开头到最后,python全栈22期 # 倒序: s8 = s1[-1:-6:-1] ##反向加步长 print(s8) #期22栈全 # 倒序全部取出来 s9 = s1[-1::-1] print(s9) #期22栈全nohtyp s9 = s1[::-1] print(s9) #期22栈全nohtyp s9 = s1[-1:0:-1] #错误 print(s9) #期22栈全nohty 没有字母p 按索引:s1[index] 注释:index下标 按照切片取值: s1[start_index: end_index+1] 按照切片步长取值: s1[start_index: end_index+1: step] 反向按照切片步长取值: s1[start_index: end_index后延一位: step]

  • 练习题 ''' 有字符串s = "123a4b5c" 通过对s切片形成新的字符串s1,s1 = "123" 通过对s切片形成新的字符串s2,s2 = "a4b" 通过对s切片形成新的字符串s3,s3 = "1345" 通过对s切片形成字符串s4,s4 = "2ab" 通过对s切片形成字符串s5,s5 = "c" 通过对s切片形成字符串s6,s6 = "ba2" ''' s = "123a4b5c" s1 = s[0:3] s1 = s[:3] print(s1) s2 = s[3:6] s2 = s[-5:-2] print(s2) s3 = s[0:-1:2] print(s3) s4 = s[1:6:2] print(s4) s5 = s[-1] print(s5) s6 = s[-3:0:-2] print(s6)
    • 常用操作方法【重点】

    字符串的常用操作方法,不会对原字符串进行任何操作,都是产生一个新的字符串 upper lower #例 s = 'taiBAifdsa' s1 = s.upper() #字符串s中字符全部大写(不会对原字符串进行任何操作,都是产生一个新的字符串 print(s1,type(s1)) #TAIBAICBR s2 = s.lower() #字符串s中字符全部小写 print(s2,type(s2)) #taibaicbr # 应用: username = input('用户名') password = input('密码') code = 'QweA' print(code) your_code = input('请输入验证码:不区分大小写') if your_code.upper() == code.upper(): if username == '太白' and password == '123': print('登录成功') else: print('用户名密码错误') else: print('验证码错误') startswith endswith #startswith 判断是否以...开头 s = 'taiBAifdsa' print(s.startswith('t')) #True ***【重点】 判断是否以单个字符开头 print(s.startswith('taiBAi')) #True ***【重点】 判断是否以多个字符开头 print(s.startswith(' ')) #False 判断是否以空格开头 #endswith 判断是否以...结尾 s = 'taiBAIcBr' s1 = s.endswith('t') print(s1) #False,返回的是布尔值 s2 = s.endswith('Br') print(s2) #True # 了解 s = 'taiBAifdsa' print(s.startswith('B',3,6)) #True 括号内的字符串必须加引号'B' #切片,顾头不顾腚。判断'BAi'是否以B开头。下标3,6,不包括6对应的f。 s = 'taiBAifdsa' print(s.endswith('f',3,6)) #False replace(old,new,count) #讲 msg = 'alex 很nb,alex是老男孩教育的创始人之一,alex长得很帅' msg1 = msg.replace('alex','太白') # 默认全部替换,用'太白'替换'alex' msg1 = msg.replace('alex','太白',2) #用'太白'替换'alex',2表示只替换前两个字符串 print(msg) #alex 很nb,alex是老男孩教育的创始人之一,alex长得很帅 print(msg1) #太白 很nb,太白是老男孩教育的创始人之一,alex长得很帅 #自 msg = '小明生病了,小明没去上学,小明在家休息' msg1 = msg.replace('小明','小红') print(msg1) #小红生病了,小红没去上学,小红在家休息 msg2 = msg.replace('小明','小红',2) print(msg2) #小红生病了,小红没去上学,小明在家休息 #自:比如某个字母小写变大写,大写边小写 s = ' qw sertyu eqtrti ' s1 = s.replace('t','T',2) print(s1)# qw serTyu eqTrti strip:去除空白,如空格,\t制表符, \n换行符。 # \n(换行符-将光标移动到下一行的开头) # \t(水平制表符-将光标向右移动一个制表符位) #默认去除字符串两边的空格,换行符,制表符 s4 = ' \n太白\t' print(s4) s5 = s4.strip() print(s5) #修改测试 s4 = ' \n太 白 tai \tbai\t' print(s4) s5 = s4.strip() print(s5)#太 白 tai bai #只能去掉两边的空白,内部的去不掉 name='*barr*y**' print(name.strip('*')) # barry print(name.lstrip('*')) # barry** print(name.rstrip('*')) # *barry #修改测试 name='*barr*y**' print(name.strip('*')) # barr*y #只把两边的*去掉了,内部的*去不了。 print(name.lstrip('*')) # barr*y** print(name.rstrip('*')) # *barr*y # 了解:可以去除指定的字符 s4 = 'rre太r白qsd' s5 = s4.strip('qrsed') #括号内字符串加引号,字符顺序无所谓 print(s5) #太r白 #只能去两头的对应字符 split 【非常重要】以什么分割,最终形成一个列表,此列表不含有这个分割的元素。 # str ---> list 字符串类型转换为列表类型,- 默认按照空格分隔,可以指定分隔符。 # 默认按照空字符串(空格,换行,制表符)分隔,返回一个列表 s6 = '太白 女神 吴超' l = s6.split() print(l) #['太白', '女神', '吴超'] # 指定分隔符 s6 = '太白:女神:吴超' l = s6.split(':') # :作为分隔符 print(l) #['太白', '女神', '吴超'] ret9 = 'title,Tilte,atre,'.split('t') # t作为分隔符 print(ret9) #['', 'i', 'le,Til', 'e,a', 're,'] ''空字符 #rsplit ret91 = 'title,Tilte,atre,'.rsplit('t',2) print(ret91)#['title,Til', 'e,a', 're,'] # 了解: s6 = ':barry:nvshen:wu' print(s6.split(':')) #['', 'barry', 'nvshen', 'wu'] 注:''空字符串 print(s6.split(":",2)) #['', 'barry', 'nvshen:wu'] #2表示前两个:有效 #自-实验 s1 = ' .haha.heihei.hehe.123' s2 = s1.split('.') # .作为分隔符 s3 = s1.split('.',3) print(s2) #[' ', 'haha', 'heihei', 'hehe', '123'] 注:' ' 引号内为空格 print(s3) #[' ', 'haha', 'heihei', 'hehe.123'] join(iterable):联合,连接,可以操作任何可迭代对象(可迭代:这个数据由多个元素组成,如字符串,列表), s1 = 'alex' s2 = '+'.join(s1) #'设置连接符'.join(iterable) iterable可迭代 用+作为连接符 print(s2) # a+l+e+x(字符串类型) print(s2,type(s2)) # a+l+e+x <class 'str'> #list ---> str 前提:列表里面的元素必须都是str类型才行 l1 = ['太白', '女神', '吴超'] s3 = ':'.join(l1) #用:作为连接符 print(s3) # 太白:女神:吴超(字符串类型) print(s3,type(s3)) #太白:女神:吴超 <class 'str'> s3 = ' '.join(l1) #用空格作为连接符 count #count数出字符串中的元素出现的个数。 s8 = 'sdfsdagsfdagfdhgfhgfhfghfdagsaa' print(s8.count('a')) #5,5是数字类型 s9 = s8.count("a",0,11) # 可切片,索引0,11不包含11 print(s9) #2 format: 格式化输出 # 第一种用法: msg = '我叫{}今年{}性别{}'.format('大壮',25,'男') # 第二种用法: msg = '我叫{0}今年{1}性别{2}我依然叫{0}'.format('大壮', 25,'男') print(msg) # 第三种用法: a = 100 msg = '我叫{name}今年{age}性别{sex}'.format(age=a,sex='男',name='大壮') #此处format()内可以不按顺序 print(msg) is 系列: 返回布尔值 #name = '100①' name = 'taibai123' print(name.isalnum()) #字符串由字母或数字组成 True print(name.isalpha()) #字符串只由字母组成 False s1 = '123' print(s1.isdecimal()) #字符串只由十进制组成 True print(s1.isdigit()) # 如果字符串中的所有字符都是数字,并且至少有一个字符,则返回True。 True s1 = b'123' # print(s1.isdecimal()) #报错:AttributeError: 'bytes' object has no attribute 'isdecimal' print(s1.isdigit()) # 如果字符串中的所有字符都是数字,并且至少有一个字符,则返回True。 True。 #应用 s1 = input('请输入您的金额:') if s1.isdecimal(): print(int(s1)) else: print('输入有误') 补充: #寻找字符串中的元素是否存在 find :通过元素找索引,找到第一个就返回,找不到 返回-1 index:通过元素找索引,找到第一个就返回,找不到 报错 a4 = "dkfjdkfasf54" ret1 = a4.find("fjdk",1,6) print(ret1) #2 返回的找到的元素的索引,如果找不到返回-1 ret2 = a4.index("fjdk",2,6) print(ret2) #2 返回的找到的元素的索引,找不到报错。 ret2 = a4.index("fjdk",4,6) print(ret2)#报错 #capitalize,swapcase,title name='taiBAIhi123' print(name.capitalize()) #Taibaihi123 首字母大写,其余变小写 print(name.swapcase()) #TAIbaiHI123 大小写翻转 msg='taibai say hi' print(msg.title()) #Taibai Say Hi 每个单词的首字母大写 # 内同居中,总长度,空白处填充 ret3 = a4.center(22,"*") print(ret3)#*****dkfjdkfasf54***** #python内置函数 1.len() #len():获取可迭代对象的元素总个数,是内置函数。不是字符串专用的 2.ord() #以一个字符(长度为1的字符串)作为参数,返回单个字符的 ASCII 数值(0-255),或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。 print(ord('a'))#97 print(ord('A'))#65 3.chr() #chr()函数是输入一个整数(0-255),返回其对应的ASCII字符 print(chr(65))#A print(chr(97))#a

5.for循环:有限循环
代码语言:javascript
复制
s1 = '老男孩edu'
print('老' in s1)   #True   成员运算符
print('老男' in s1)   #True
print('老ed' in s1)   #False
print('老ed' not in s1)  #True

s1 = '老男孩教育最好的讲师:太白'

输出:
'''
老      s1[0]
男      s1[1]
孩      s1[2]
教      s1[3]
育      ....
最
...
'''

s1 = '老男孩教育最好的讲师:太白'
print(len(s1))   #13

#while循环代码(利用while循环打印可迭代对象的每个元素)
s1 = '老男孩教育最好的讲师:太白'
index = 0
while index < len(s1):   # len() :获取可迭代对象的元素总个数,是内置函数。不是字符串专用的
     print(s1[index])
     index += 1


# for 循环

'''
有限循环
for 变量 in iterable:
    pass
'''

#for循环代码
s1 = '老男孩教育最好的讲师:太白'
for i in s1:
     print(i)

        #
for i in s1:
    print(i)
    if i == '好':
        break

# break continue
# for else: while else:用法一样。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python基础数据类型
    • 1.基础数类型总览
      • 2.数字int
        • 3.布尔值bool:True False
          • 4.字符串str(重点)
            • 5.for循环:有限循环
            相关产品与服务
            验证码
            腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档