• Python 基础三


    Python基础三(基础数据类型)

    一、引子

    1.什么是数据?

      x = 10, 10就是我们要存储的数据

    2.为何数据要分不同的类型

      数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示

    3.数据类型

    不可变:int str bool tuple

    可变:   list dict set

    二、基础数据类型

    2.1数字int.

    数字主要是用于计算的,使用方法并不是很多,就记住一种就可以:

     1 #bit_length 2 v = 10 3 data = v.bit_length 4 print (data) 

    2.2布尔值bool

    布尔值就两种: True,False。就是反应条件的正确与否

    真 1 True

    假 0 False

    2.3 字符串str

    2.3.1、字符串的索引与切片

    索引即下标,就是字符串组成的元素从第一个开始,初识索引为0以此类推。

    1 a = 'ABCDEFGHIJK'
    2 print(a[0])
    3 print(a[3])
    4 print(a[5])
    5 print(a[7])

    切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。

    1 a = 'ABCDEFGHIJK'
    2 
    3 print (a[0:3])
    4 print (a[2:5])
    5 print (a[0:]) #默认到最后
    6 print (a[0:-1]) #-1就是最后一个
    7 print (a[0:5:2]) #加步长
    8 print (a[5:0:-2]) #反向加步长

    2.3.2、字符串常用方法。

     1 #captalize,swapcase,title
     2 print(name.capitalize()) #首字母大写
     3 print(name.swapcase()) #大小写翻转
     4 msg='egon say hi'
     5 print(msg.title()) #每个单词的首字母大写
     6 
     7 # 内同居中,总长度,空白处填充
     8 ret2 = a1.center(20,"*")  
     9 print(ret2)
    10 
    11 #数字符串中的元素出现的个数。
    12 # ret3 = a1.count("a",0,4) # 可切片
    13 # print(ret3)
    14 
    15 a2 = "hqw	"
    16 #	前面的补全
    17 # 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
    18 ret4 = a2.expandtabs()
    19 print(ret4)
    20 
    21 a4 = "dkfjdkfasf54"
    22 #startswith 判断是否以...开头
    23 #endswith 判断是否以...结尾
    24 # ret4 = a4.endswith('jdk',3,6)  # 顾头不顾腚
    25 # print(ret4)  # 返回的是布尔值
    26 # ret5 = a4.startswith("kfj",1,4)
    27 # print(ret5)
    28 
    29 #寻找字符串中的元素是否存在
    30 # ret6 = a4.find("fjdk",1,6)
    31 # print(ret6)  # 返回的找到的元素的索引,如果找不到返回-1
    32 
    33 # ret61 = a4.index("fjdk",4,6)
    34 # print(ret61) # 返回的找到的元素的索引,找不到报错。
    35 
    36 #split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。
    37 # ret9 = 'title,Tilte,atre,'.split('t')
    38 # print(ret9)
    39 # ret91 = 'title,Tilte,atre,'.rsplit('t',1)
    40 # print(ret91)
    41 
    42 #format的三种玩法 格式化输出
    43 res='{} {} {}'.format('egon',18,'male')
    44 res='{1} {0} {1}'.format('egon',18,'male')
    45 res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)
    46 
    47 #strip
    48 name='*egon**'
    49 print(name.strip('*')) 
    50 print(name.lstrip('*'))
    51 print(name.rstrip('*'))
    52 
    53 #replace
    54 name='alex say :i have one tesla,my name is alex'
    55 print(name.replace('alex','SB',1))
    56 
    57 #####is系列
    58 name='jinxin123'
    59 print(name.isalnum()) #字符串由字母或数字组成
    60 print(name.isalpha()) #字符串只由字母组成
    61 print(name.isdigit()) #字符串只由数字组成
    View Code

    2.3.3、字符串补充

     1 #join
     2 s = 'alexwusir'
     3 s1 = '_'.join(s)
     4 print(s1)
     5 #while while else break continue
     6 for i in s:
     7     print(i)
     8     if i == 'e':
     9         break
    10 for i in s:
    11     if i == 'e':
    12         continue
    13     print(i)
    View Code

     2.4 元组tuple。

    元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。

    例: (1,2,3)  ('a','b','c')

     1 #tuple
     2 tu = (1,2,'wusir','taibai',[2,3,4],True)
     3 for i in tu:
     4     print(i)
     5 print(tu[2:])
     6 #儿子不能更改,但是孙子有可能更改
     7 tu1 = (1,2,'wusir',[1,2,3],(2,3,4),'taibai,True')
     8 tu1[3].pop(1)
     9 print(tu1)
    10 tu1[3].append('taibai')
    11 print(tu1)
    12 print(len(tu1))
    13 print(tu.count(1)) #True 默认是1
    14 print(tu.index('wusir'))
    View Code

     2.5 列表list。

    列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且它里面可以存放各种数据类型比如:

    li = ['alex',123,True,(1,2,3,'wusir'),[1,2,3,'小明'],{'name':'alex'}]

    列表相比于字符串,不仅可以存储不同的数据类型,而且可以存储大量数据,32位python的限制是536870912个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

    2.5.1、增。

     1 li = [1,'a','b',2,3,'a']
     2 # li.insert(0,55) #按照索引去增加
     3 # print(li)
     4 #
     5 # li.append('aaa') #增加到最后
     6 # li.append([1,2,3]) #增加到最后
     7 # print(li)
     8 #
     9 # li.extend(['q,a,w']) #迭代的去增
    10 # li.extend(['q,a,w','aaa'])
    11 # li.extend('a')
    12 # li.extend('abc')
    13 # li.extend('a,b,c')
    14 # print(li)
    15 
    16 列表的增
    View Code

     2.5.2、删。

     1 # l1 = li.pop(1) #按照位置去删除,有返回值
     2 # print(l1)
     3 
     4 # del li[1:3] #按照位置去删除,也可切片删除没有返回值。
     5 # print(li)
     6 
     7 # li.remove('a') #按照元素去删除
     8 # print(li)
     9 
    10 # li.clear() #清空列表
    11 
    12 列表的删
    View Code

     2,5.3、改。

    #
    # li = [1,'a','b',2,3,'a']
    # li[1] = 'dfasdfas'
    # print(li)
    # li[1:3] = ['a','b']
    # print(li)
    
    列表的改

     2.5.4、查。

    1 l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,]
    2 #按切片、索引查
    3 l1[0]
    4 l1[0:3]
    5 
    6 #for 循环查
    7 for i in l1:
    8     print(i)
    View Code

    2.5.5、其他操作。

     1 l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,]
     2 l2 = [1,3,6,8,7,4,2,9,10]
     3 #len 长度
     4 print(len(l1))
     5 #count 出现次数
     6 ret = l1.count(True)
     7 print(ret)
     8 #index 通过元素找索引
     9 print(l1.index('taibai'))
    10 #sort 从小到大
    11 l2.sort()
    12 print(l2)
    13 #sort(reverse)  从大到小
    14 l2.sort(reverse=True)
    15 print(l2)
    16 #倒叙
    17 l2.reverse()
    18 print(l2)
    View Code

    2.5.6、列表的嵌套。

     1 l1 = ['小新','egon','wusir',[99,'tiabai','ritian',[,2,3]],2]
     2 a = l1[1].capitalize()
     3 l1[1] = a
     4 l1[1] = l1[1].capitalize()
     5 l1[1] = 'Alex'
     6 print(l1)
     7 print(l1[0])
     8 print(l1[3])
     9 l = l1[3]
    10 s = l[1].upper()
    11 l1[3][1] = s
    12 l1[3][1] = l1[3][1].upper()
    13 print(l1)
    14 l1[3][0] = '100'
    15 print(l1)
    16 l1[3][0] = str(l1[3][0] + 1)
    17 print(l1)
    View Code

    2.6 字典dict。

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

      字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    2.6.1 增。

     1 dic = {"name":"jin","age":18,"sex":"male"}
     2 #有key则覆盖,没有追加
     3 '''
     4 dic['name'] = 'tai'
     5 print(dic)
     6 dic['name2'] = 'tai'
     7 print(dic)
     8 '''
     9 #有key,原来的不变,没key,有参数写参数,没参数,None
    10 '''
    11 dic.setdefault('hobby')#没参数 none
    12 print(dic)
    13 dic.setdefault('hobby','aaa')#有参数,写参数
    14 print(dic)
    15 dic.setdefault('name','taibai')#有key,原来的不变
    16 print(dic)
    17 '''

    2.6.2 删除。

     1 dic = {"name":"jin","age":18,"sex":"male"}
     2 '''
     3 #pop有返回值,没key不报错
     4 dic.pop('name')
     5 print(dic)
     6 dic.pop('name2',None)
     7 print(dic)
     8 #clear清空字典
     9 dic.clear()
    10 print(dic)
    11 #del 按照key删value
    12 del dic['name']
    13 print(dic)
    14 '''
    View Code

    2.6.3 改。

     1 '''
     2 #dic 不变,dic2有则覆盖,没有则追加
     3 dic = {"name":"jin","age":18,"sex":"male"}
     4 dic2 = {"name":"aaa","yy":'zzz',"sex":"male"}
     5 dic2.update(dic)
     6 print(dic2)
     7 #覆盖
     8 dic['name'] = 'tai'
     9 print(dic)
    10 '''

    2.6.4 查

     1 dic = {"name":"jin","age":18,"sex":"male"}
     2 #print(dic['name'])
     3 #print(dic['name2']) #没key报错
     4 
     5 #print(dic.get('name'))
     6 #print(dic.get('name2'))
     7 #print(dic.get('name2','没有键值对'))
     8 '''
     9 for i in dic: #打印key
    10     print(key)
    11 for i in dic.values(): #打印values
    12     print(i)
    13 for i in dic.items(): #打印键值对
    14     print(i)
    15 '''
    View Code

    2.6.5 字典的嵌套

     1 dic = {
     2     'name':'金鑫',
     3     'name_list':[1,2,3,'李杰'],
     4     1:{
     5         'python10':['小黑','萌哥'],
     6        '老男孩':{'name':'oldboy','age':56}
     7     }
     8 }
     9 '''
    10 #1,[1,2,3,'李杰']追加'wusir'
    11 dic['name_list'].append('wusir')
    12 print(dic)
    13 #2, ['小黑','萌哥'] 小黑 萌哥中间 插入一个花哥
    14 dic[1]['python10'].insert(1,'华哥')
    15 print(dic)
    16 #3, {'name':'oldboy','age':56} 添加一个键值对,hobby:男人
    17 dic[1]['老男孩'].setdefault('hobby','man')
    18 print(dic)
    19 '''
    View Code

    三,其他(for,enumerate,range)。

    for循环:用户按照顺序循环可迭代对象的内容。

    msg = '老男孩python是全国范围内最好的python培训机构'
    for item in msg:
        print(item)
    
    li = ['alex','银角','女神','egon','太白']
    for i in li:
        print(i)
    
    dic = {'name':'太白','age':18,'sex':'man'}
    for k,v in dic.items():
        print(k,v)

     range:指定范围,生成指定数字。

     1 #range当做:范围列表[],列表中的元素是数字,且可控的有效数字范围
     2 #一般与for 配合使用
     3 for i in range(1,10):  #[1,2,3,4...9]
     4     print(i)
     5 for i in range(1,101):  #
     6     print(i)
     7 for i in range(11):  #
     8     print(i)
     9 for i in range(1,10,2):  # [1,3,5,7,9]
    10     print(i)
    11 for i in range(10,0,-1):
    12     print(i)
    13 for i in range(10,-2,-1):
    14     print(i)
    15 
    16 l1 = [1,2,3,'alex',[2,3,'wusir'],7]
    17 for i in l1:
    18     if type(i) == list:
    19         for j in i:
    20             print(j)
    21     else:
    22         print(i)    
    View Code
  • 相关阅读:
    剑指offer:合并两个排序的链表
    剑指offer:调整数组顺序使奇数位于偶数前面
    剑指offer:链表中倒数第K个结点
    牛客网在线编程:末尾0的个数
    剑指offer7:数值的整数次方
    牛客网在线编程:计算糖果
    牛客网在线编程:求数列的和
    牛客网在线编程:公共字符
    剑指offer7:斐波那契数列
    Qt入门之常用qt控件认知之Button系列
  • 原文地址:https://www.cnblogs.com/xiaobin12126/p/8336192.html
Copyright © 2020-2023  润新知