zoukankan      html  css  js  c++  java
  • python基础篇2~数据类型

    数据类型

    数据类型:数字、字符串、列表、元组、字典、集合

    数字int

    i = 3
    print(i.bit_length())
    i = 6
    print(i.bit_length())

    字符串str

    索引、切片

    # 1.索引和切片[起始位置:结束为止:步长]
    # s1 = 'python全栈8期'
    # print(len(s1))
    # 索引从0开始【索引(下标,index)】
    # print(s1[0])
    # print(s1[5])
    # print(s1[-1])
    # 切片 顾头不顾尾(索引部分超出部分不会报错)
    # print(s1[0:6])
    # print(s1[6:10])
    # print(s1[6:1000])
    # print(s1[6:])
    # 切片
    # print(s1[1:5:2])
    # print(s1[3:0])   #不会报错
    # 倒取值:加步长
    # print(s1[3::-1])
    # print(s1[5::-2])
    # print(s1)  #s1不变
    # s2 = s1[0:6]
    # print(s2)
    # s = 'python全栈8期'
    # print(s[5:0:-1])
    # print(s[-1:-4])
    # print(s[-1:-4:-1])
    # print(s[-4:-1])
    字符串方法
    # capitalize首字母大写,其他的全部小写
    ret = 'alex'
    # print(ret.capitalize())
    ret1 = 'alexS'
    # print(ret1.capitalize())
    
    # upper,lower
    # ret2 = ret.upper()
    # ret3 = ret.lower()
    # print(ret2,ret3)
    # ret4 = ret.swapcase()
    # print(ret4)
    #
    # # 以特殊符号或者空格隔开,每一个字符串首字母大写
    # ret11 = 'alex jin wu'
    # # print(ret11.title())
    
    # 居中
    # ret = 'alexS'
    # print(ret.center(20))
    # print(ret.center(20,'*'))  #*******alexS********
    
    ret = 'alexS'
    # ret5 = ret.startswith('a')
    # ret5 = ret.startswith('ale')
    # ret5 = ret.startswith('alexS')
    # ret5 = ret.startswith('l',1,3)  #切片
    # print(ret5)
    # ret6 = ret.endswith('xS')
    # print(ret6)
    
    #count
    ret22 = 'alex,aeaeQ'
    # ret7 = ret22.count('Q')
    # ret7 = ret22.count('ale') #整体与个体‘ale'相当于是一个整体
    # ret7 = ret22.count('W') #当不存在时就会返回0
    # print(ret7)
    
    #	前面的补全
    #默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则会补全8个,如果tab键前面的字符长度超过8个,则会补全16个,以此类推
    # a2 = "hqw	"
    # ret4 = a2.expandtabs()
    # print(ret4,len(ret4))
    # b = "lsajdlajlkja	"
    # ret8 = b.expandtabs()
    # print(ret8,len(ret8))
    
    
    # index 和 find 用法一模一样,找不到元素,就会报错
    # ret = 'alexS'
    # ret10 = ret.index('w')
    # print(ret10)
    #
    
    #strip去除字符串前后的空格
    # ret23 = '  alex  '.strip()
    # print(ret23)
    # ret = 'dww zjj'
    # ret2 = ret.strip()
    # print(ret2)
    
    # name = 'alex'
    # username = input('请输入你的姓名:')
    # if username.strip() == name:
    #     print('登录成功')
    
    # ret = '***alex***'.strip('*')
    # print(ret)
    # ret1 = '***alex***'.lstrip('*')
    # ret2 = '***alex***'.rstrip('*')
    # print(ret1)
    # print(ret2)
    #
    # ret13 = '***asldfkjafa**'.strip('*')
    # ret14 = 'asldfkjafa'.strip('salf')
    # ret15 = 'asldfkajafa'.strip('salf')
    # ret16 = 'asldfkajafa'.strip('saWlf')
    # print(ret13)
    # print(ret14)
    # print(ret15)
    # print(ret16)
    
    # ret16 = 'jinxin alex musir'
    # # ret17 = ret16.split()
    # print(ret17)
    # ret18 = 'title tle tlie'
    # ret19 = ret18.split('t')
    # ret20 = ret18.split('t',2)
    # print(ret20)
    # print(ret19)   #--->['', 'i', 'le ', 'le ', 'lie']
    
    #replace
    # ret21 = 'dwwisverygoodwsw'
    # ret22 = ret21.replace('dww','zjj')
    # ret23 = ret21.replace('w','m',3)
    # print(ret22)
    # print(ret23)
    
    # 格式化输出 format
    # 通过索引的方法
    # ret20 = 'name:{0},sex:{1},high:{2}'.format('alex','male',180)
    # 通过键值对的方法
    # ret20 = 'name:{name},sex:{sex},high:{high}'.format(name='alex',sex='male',high=180)
    # print(ret20)
    
    # name = '123'
    # print(name.isalnum())  #字符串由字母或数字组成
    # print(name.isalpha()) #字符串只由字母组成
    # print(name.isdigit()) #字符串只由数字组成
    
    # s = 'aseldki'
    # print(len(s))
    # print(s[0])
    # index = 0
    # while index < len(s):
    #     print(s[index])
    #     index += 1
    #     # if index == len(s):break
    
    # for 变量in可迭代对象
    # for i in s:
    #     print(i)
    
    
    # s = 'kasjdlfjal12jfal3jla4'
    # count = 0
    # for i in s:
    #     if i.isdigit():
    #         count +=1
    #     else:
    #         print(666)
    # print(count)
    View Code

     布尔类型

    # 字符串转化成bool值,bool(str)
    # 非空字符串转化成bool true
    # ''空字符串转化成bool false
    # s1 = 'afs'
    # s2 = 'a'
    # s3 = '1'
    # s4 = ''
    # print(bool(s1))
    # print(bool(s2))
    # print(bool(s3))
    # print(bool(s4))
    # bool  -》str 值
    # a = str(True)
    # b = str(False)
    # print(a,type(a))
    # print(b,type(b))
    a = str(2<1)
    print(a,type(a))

     列表

    索引及切片

    # #索引和切片
    # 索引  返回的是列表中的一个元素
    # l = [1,2,3]
    # print(l[0])
    # print(l[3])
    # print(l[-1])
    # 切片  返回的是一个列表
    # l = [1,2,3,'af','re','re',4,'24']
    # print(l[0:3])
    # print(l[0:5:2])
    # print(l[-2::-2])
    # print(l[5:0:-2])

    列表方法

    # insert 插入
    # li = ['taibai','alex','wusir']
    # # li.insert(1,'dww')
    # li.insert(4,'dww')
    # print(li)
    
    # extend 迭代的添加
    # li = ['taibai','alex','wusir']
    # li.extend('dww')
    # li.extend(['dww',1,2,3])
    # li.append(['dww',1,2,3])
    # print(li)
    
    # 删除pop按照索引去删除,有返回值
    # li = ['taibai','alex','wusir']
    # name = li.pop(1)
    # print(name)
    # print(li)
    
    # remove 按照元素去删除,没有返回值
    # li = ['taibai','alex','wusir']
    # name = li.remove('alex')
    # print(name)
    # print(li)
    
    # clear清空列表
    # li = ['taibai','alex','wusir']
    # li.clear()
    # print(li)
    
    # del可根据索引删除,也可根据切片(加步长)删除
    # li = ['taibai','alex','wusir','egon','dww']
    # del li[0]
    # del li[0:3]
    # del li[0:4:2]
    # print(li)
    
    # 改 切片先删除,迭代着添加
    li = ['taibai','alex','wusir','egon','dww','tianmao']
    # li[0] = 'haoren'
    # li[0:3] = '黑人'
    # li[0:5] = '都是黑人'
    # li[0:2] = ['aa','bb','cc','dd',123]
    # print(li)
    
    #
    li = ['taibai','alex','wusir','egon','dww','tianmao']
    # print(li[1:4])
    # for i in li:
    #     print(i)
    View Code

    列表的其他方法

    # count 计数
    # li = [1,2,3,4,'a',1,'4']
    # print(li.count(1))
    
    # sort正序排序
    # li = [2,3,5,4,6,8,7,1,9]
    # li.sort()
    # li.sort(reverse=True)  -->倒叙排序
    # print(li)
    
    # reverse反转
    # li = [2,3,5,4,6,8,7,1,9]
    # li.reverse()
    # print(li)

     列表的嵌套

    # li = [1,2,5,'taibai','yuanhao',[1,'alex',3],True]
    # print(li[3])
    # print(li[3][3])
    # s = li[4].capitalize()
    # li[4] = s
    # print(li)
    # li[4] = 'Yuanhao'
    # print(li)
    # s2 = li[4].replace('hao','日天')
    # li[4] = s2
    # li[4] = li[4][0:4] + '日天' #--->字符串的拼接
    # print(li)
    # li[5][1] = 'ALEX'
    # li[5][1] = li[5][1].upper()
    # print(li)

    元祖

    #元祖type()
    t = (1,2,3,'adsf',True,[12,3,'日天','taibai'],('fdsa',2,3))
    # print(t[4])
    # print(t[1:4])
    # for i in t:
    #     print(i)
    
    # t[4] = False -->元祖中的儿子不能修改
    # print(t)
    # t[5][2] = 'dww'
    # print(t)

    range

    #range范围,相当于可迭代对象
    # for i in range(1,10):
    #     print(i)
    
    # for i in range(1,10,2): #加步长
    #     print(i)
    
    # for i in range(10,1,-2): #加步长
    #     print(i)

     字典dict

    1.字典无序 2.数据关联性强,3,是以键值对的方式成对出现的,唯一一个映射的数据类型
    # dic = {'name':'jinxin','age':20}
    # print(dic['name']) 
    # 字典的键必须是可哈希的(不可变的数据类型:字符串,数字,布尔值,元祖)并且键是唯一的
    # 不可哈希的(可变的数据类型:列表,字典,set(集合)
    # dic = {'name':'alex','age':18,'job':'teacher'}
    # print(dic)
    
    

    # 方式一:
    # dic = {'name':'alex','age':18,'job':'teacher'}
    # dic['sex'] = 'male'
    # dic['name'] = '日天'  -->如果字典中有这个键则直接覆盖该键的值,如果没有则是添加键值对
    # print(dic)
    # 方式二:
    # setdefault()有键值对不做任何改变,如果没有键值对才添加
    # dic = {'name':'alex','age':18,'job':'teacher'}
    # dic.setdefault('k')
    # dic.setdefault('k','v')  #-->k在这里指的是键,v指的是值
    # print(dic)

    # 删 pop
    # dic = {'name':'alex','age':18,'job':'teacher'}
    # print(dic.pop('name'))
    # print(dic.pop('ajsdlf',None))#-->如果删除的键不是该字典中的键,执行时会有报错,可以指定一个返回值None,也可以是其他的,例如‘输错了’
    
    # popitem()随机的删除一个键值对
    # dic = {'name':'alex','age':18,'job':'teacher','high':159}
    # dic.popitem()
    # print(dic)
    
    # clear()清空
    # dic = {'name':'alex','age':18,'job':'teacher','high':159}
    # dic.clear()
    # print(dic)
    
    # del
    # dic = {'name':'alex','age':18,'job':'teacher','high':159}
    # del dic['name']
    # del dic['jdaj'] #如果该键不是该字典中的键,就会有报错
    # print(dic)
    
    
    

    # 方法一:
    # dic = {'name':'alex','age':18,'job':'teacher','high':159}
    # dic['name'] = '日天'
    # print(dic)
    # 方法二:
    # update():将dic1所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic中
    # dic = {'name':'alex','age':18,'job':'teacher','high':159}
    # dic1 = {'name':'barry','hobby':'oldwoman'}
    # dic.update(dic1)
    # print(dic)
    # print(dic1)

    # 方法一:通过键查值
    # dic = {'name':'alex','age':18,'job':'teacher','high':159}
    # print(dic['name'])
    # print(dic['djakj']) #差不到时会报错
    
    # 方法二:get()
    # dic = {'name':'alex','age':18,'job':'teacher','high':159}
    # print(dic.get('name'))
    # print(dic.get('slkjd'))
    # print(dic.get('slkjd','sb,没有这个键'))  #-->对于没有查到的内容可以指定返回值
    其他操作
    # dic = {'name':'alex','age':18,'job':'teacher','high':159}
    # item = dic.items()
    # print(item,type(item)) -->#这个类型就是dict_items类型,可迭代的
    #
    # keys = dic.keys()
    # print(keys,type(keys))
    #
    # values = dic.values()
    # print(values,type(values))
    
    
    
    for循环
    # for循环:用户按照顺序循环可迭代对象的内容
    dic = {'name':'alex','age':18,'job':'teacher','high':159}
    #---->返回的是键
    # for item in dic:
    #     print(item)
    
    # for i in dic:
    #     print(i)
    
    # for key in dic.keys():
    #     print(key)
    
    #---->返回的是值
    # for values in dic.values():
    #     print(values)
    
    #---->把键和值返回成一个个的元祖
    # for item in dic.items():
    #     print(item)
    
    # --->返回键和值
    for key,value in dic.items():
        print(key,value)
    
    
    
     

    习题

    7,有如下列表li = [1,3,4’,alex’,[3,7,8,’taibai’],5,’ritian’] 循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。
    我想要的结果是(用三种方法实现):
    # 1
    # 3
    # 4
    # ‘alex’
    # 3
    # 7,
    # 8
    # ‘taibai’
    # 5
    # ritian
    # 方法一:
    # li = [1,3,4,'alex',[3,7,8,'taibai'],5,'ritian']
    # for i in range(0,len(li)):
    #     if i ==4:
    #         for j in li[i]:
    #             print(j)
    #     else:
    #         print(li[i])
    # 方法二:
    # li = [1,3,4,'alex',[3,7,8,'taibai'],5,'ritian']
    # for i in li:
    #     if type(i) == list:
    #         for j in i:
    #             print(j)
    #     else:print(i)
    # 方法三:
    # li = [1,3,4,'alex',[3,7,8,'taibai'],5,'ritian']
    # index = 0
    # while index < len(li):
    #     if index == 4:
    #         for i in li[4]:
    #             print(i)
    #     else:print(li[index])
    #     index += 1
    View Code
  • 相关阅读:
    openldap
    Java实现 洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…
    Java实现 洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P2141 珠心算测验
    Java实现 洛谷 P1567 统计天数
    Java实现 洛谷 P1567 统计天数
  • 原文地址:https://www.cnblogs.com/dwenwen/p/7725484.html
Copyright © 2011-2022 走看看