day2----python的基本类型

a 夏天 提交于 2021-01-13 19:04:07

本文档的大致内容:(python使用版本3.6.4)

1 数字--int

2 布尔--bool

3 字符串--str

4 元祖--()

5  列表---['a','b']

6 字典--{}

运算符:

算数:+ -  *  /   //(商的整数)   %(余数)  **(次幂)

比较:==  !=  >= <=  < >等

赋值:= += -= 

逻辑运算:not  and  or

成员运算:in   not in

一 数字                                                                                                                                                                                                                                                                                                                                                                                                               

数字一般在计算的时候用的多,运算后无理数的话,总共保留16位数字

例如:print(2/3)     结果:0.6666666666666666           print(80/9)     结果为:11.428571428571429

二 布尔                                                                                                                                                                                                                                                                                                                                                                                                               

其结果就两种 

True 或 1    --》表示真

False 或 0   ---》表示假

优先级的大小:()> not > and >or

三 字符串                                                                                                                                                                                                                                                                                                                                                                                                            

字符串一般使用 ’ ‘或 “ ”或 ’‘’ ‘’‘ 给括起来,其中’‘’ ‘’‘在多行字符串中使用

例如:

msg = '''
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
'''
print(msg)
View Code

字符串中含有 ’ 号时,其一般使用“”给括起来

例如: msg = "My name is 星辰, I'm 22 years old!"

3.1 字符串------增

  
str='hello world'
str1='!!!'
str2='oh'
print(str+str1)  #使用两种字符串拼接的方式,后拼接  结果 hello world!!!
print(str2,' '+str) #使用两种字符串拼接的方式,前拼接  结果为 oh  hello world
str=str * 3  #使用字符串乘法的方式,重复拼接  结果为 hello worldhello worldhello world
print(str)
View Code

3.2 字符串-------删

  3.2.1 使用strip的方式 

  
    strip() 的用法默认删除字符串前后的空格,换行符,制表符,加上参数就能删除相应的字符串

    例如:strip('h')  -->依次删除首尾处出现 h  的字符,strip使用删除多个字符的情况较复杂,这理先不研究

    str='hello world'   print(str.strip('h '))   其结果为ello world   
View Code

  3.2.2 strip的说明

 

strip 删除是字符串收尾的字符,中间不做考虑
例如:
str="hello ll "

print(str.strip("he")) #删除的字符可以从开头匹配:llo ll 注意最后的空格保留了
print(str.strip(' ll')) #最后的空格可以不匹配:hello 后面没有空格
print(str.strip("ll ")) #连着匹配后面的空格 :hello 后面没有空格
print(str.strip('ll')) #在中间,原字符串不变,中间空格不能省
print(str.strip('llo')) #在中间,字符串不变

 

 

 

3.3 字符串-------改

  3.3.1使用replace的方式替

  
    例如:

    s="xingchen 啊林凤娇辣椒粉 xingchen 啊链接发垃圾 xingchen"

    s8=s.replace("xingchen","hehe")  #默认全部替换  结果为:hehe 啊林凤娇辣椒粉 hehe 啊链接发垃圾 hehe

    s8=s.replace("xingchen","hehe",1) #替换的数量   结果为: hehe 啊林凤娇辣椒粉 xingchen 啊链接发垃圾 xingchen
View Code  

3.4 字符串-------查

  3.4.1 使用索引,索引默认是从0开始的

  
    例如:

    str='abc'   print(str[0])  其结果为 a

          print(str[-1])  结果为   c
View Code

  3.4.2 使用切片的方式,截取字符串的一段,(原则就是顾头不顾腚)s[起始索引:结束索引+1:步长]

    例如:

  
    str='abcdef'   print(str[0:3]) 或者 print(str[:3])  --> abc

          print(str[3:6]) 或者 print(str[3:100])  --->def

    采用步长的方式,默认步长是1,

          print(str[0:3:2])   ----》 ac

          print(str[-1:-4:-1]) --->fed  # -4<-1,步长使用 -

          print(str[-1:-4:-2]) --->fd
View Code

  3.4.3 使用split分割的方式,结果由 str ---> list

  
   s1 = 'alex wusir taibai ritian'  print(s1.split())   ---> ['alex', 'wusir', 'taibai', 'ritian']   #默认一空格分割

   s2 = 'alex,wusir,taibai,ritian‘  print(s2.split(,))  ----->同上                                        #指定以,分割

   s3 = 'alexwusirtaibairitian'     print(s3.split('i',2)) --->['alexwus', 'rta', 'bairitian']     #指定以 i 分割,并指定两个 i,则分成了三段,按照i 出现的位置依次分割

   s3 = 'alexwusirtaibairitian'     print(s3.split('i',100)) --》['alexwus', 'rta', 'ba', 'r', 't', 'an']  # i最多出现了5次,因此只能分成6 段
View Code

  3.4.4 让 list ---> str ,可以考虑使用join的方式

  
   l1=['alex','wusir','ritian']

   s10=' '.join(l1)          print(s10,type(s10))  ---> alex wusir ritian <class 'str'>

   s11='_'.join(l1)     print(s10,type(s10))  ---> alex_wusir_ritian <class 'str'>
View Code

  3.4.5-1 通过元素找字符串的索引 ---》find

  
   s = 'alexwausir'

   s1=s.find("a") print(s1)    --->   0       #找到a的索引

   s2=s.find("al") print(s2) --->   0       #找到的第一个索引作为结果

   s3=s.find("ax") print(s3)  ---> -1       #找不到,返回值是-1
View Code

  3.4.5-2 index 命令和find类似,但是找不到它会报错,而不是-1

   s = 'alexwausir'    s3=s.index("ax")  print(s3)   --》ValueError: substring not found

  3.4.6 startwith和endwith 以什么为开头或结尾   

 

  s = 'alexWUsir'
  # s6=s.startswith('a')
  # s6=s.startswith('alex')  #结果为True
  # s6=s.startswith('alexa')  #结果为False
  # s6=s.startswith('WU',4,) #验证WU是否在索引为4的位置,结果为True
  # s6=s.startswith('WU',4,5) #从索引4的位置到5,也即是W,查找WU的位置,结果为False 【4,5)
  #s6=s.startswith('WU',4,6) #从索引4的位置到6,也即是W,查找WU的位置,结果为True [4,6)
View Code

 

3.5 字符串的其他用法

  3.5.1 计算字符串的个数:s='abcdef'  print(len(s))  ---> 6  

     计算字符出现的个数:print(s.count('a'))

  3.5.2 判断字符串的组成

              isalnum:由数字或者字母组成

    isdigit:由数字组成

    isalpha:由字母组成

  3.5.3 将字符串填入相应的格式内----》format

  
              第一种用法:s = "我叫{},今年{},爱好{}"

           s12 = s.format('太白', '25', '女')   print(sl2) 

    第二种用法:s1 = "我叫{0},今年{1},爱好{2},我依然叫{0}"

          s13 = s1.format('太白', '25', '女')   print(sl3)

     第三种用法:s3 = "我叫{name},今年{age},爱好{hobby}"

          s14 = s3.format(age=25,hobby='girl',name='太白')   print(sl4)
View Code

  3.5.4 字符串的大小写转化

  
    s.capitalize()  # 首字母大写其余字母小写

    s.title()  #非字母隔开的每个单词首字母大写

      例如: s_s='2alex %wusjlfj**sjflj2%tian%2%'   print(s_s.title())  结果为: 2Alex %Wusjlfj**Sjflj2%Tian%2%

    s.swapcase()  #大小写反转,即大写变小写,小写变大写

    s.upper() 全部大写 

    s.lower() 全部小写
View Code

四 元组                                                                                                                                                                                  返回头部                                                                                                                                                                                                                

  元组:只读列表,使用(),里面的内容使用逗号隔开,里面的元素不可更改,但是如果里面嵌入列表或者字典时还是可以修改的

    支持count查找某个元素的数量,例如tu.count('name')

    注意: tu=(1,)  tu=(1,2)是元组,tu(1)不是元组,是int

  4.1 单纯的元组

    不支持增、删、改,主要讲查

    4.1.1 使用for循环遍历

  
 tu = (1, 2, 33, 'alex')

     for i in tu:

      print i
View Code

    4.1.2 支持索引查找

     print(tu[0])  ----> 1

    4.1.3 通过index查找    

s=('name','a','name','alex')
print(s.index('name',1)) #从‘a'开始查找
#支持index查找索引,不支持find
print(s.index('name',s.index('a'))) #从a的索引位置往后查找 name

  4.2 嵌入式元组

    元组中可以有列表,可以嵌入字典,元组中的列表适用列表的方法等等

五 列表                                                                                                                                                                                                                                                                                                                                                                                                                

  列表外面使用【】,中间元素使用逗号隔开,列表中可以嵌入列表和元组

  5.1 列表的---增

    5.1.1 append  其后面只能增加一个元素

      例如:s.append('nihao')   s.append(1)   s.append([1,2,3])  s.append((1,2,3))

    5.1.2 insert   insert(位置,元素)

      例如:s.insert(1,'name')

    5.1.3 extend  是可以迭代的

      例如:s=[]     s.extend('aaa')   s.extend([1,2,3])  s.extend((4,5,6))   ---->其结果为: ['a', 'a', 'a', 1, 2, 3, 4, 5, 6]
            5.1.4 extend扩展字典时,只保留key
                s=['abc']
                s.extend({'a':'alex'})
                print(s) #['abc', 'a']
View Code

  5.2 列表的---删

  
    5.2.1 pop 根据索引删除,不能根据元素删除

      例如:s.pop(1)

    5.2.2 remove 根据元素删除

      例如:s.remove('name')

    5.2.3 del 根据索引或者切片删除 del s[]

      例如:del s[1]    del s[0:3]

    5.2.4 clear清空列表内的所有元素,也即变成一个空列表

      例如:s.clear()

    5.2.5 直接使用切片的方式将一段内容清空

      例如: li = ['alex','wusir','eric','rain','alex']

         li[1:4]=''

           print(li)   ------>['alex','alex']
View Code

  5.3 列表的--改

  
    5.3.1 根据索引修改

      例如:s[0]='nihao'

    5.3.2 根据切片修改  

      按照切片修改时,将删除切片区域的元素,并将要增加的字符串以单个字符的方式分别加入列表

      例如:l=['ni','wo','ta','women']

          l[:3]='afdfgaggga %*gaga\tegtgcfjaj;fjinkjnfknk'

          print(l)                    -->结果:['a', 'f', 'd', 'f', 'g', 'a', 'g', 'g', 'g', 'a', ' ', '%', '*', 'g', 'a', 'g', 'a', '\t', 'e', 'g', 't', 'g', 'c', 'f', 'j', 'a', 'j', ';', 'f', 'j', 'i', 'n', 'k', 'j', 'n', 'f', 'k', 'n', 'k', 'women']

      另1:加步长的情况,替换前后的元素必须一样多

        例如:l=['ni','wo','ta','women']

           l[:3:2]='ab'

           print(l)   ----->结果为:['a', 'wo', 'b', 'women']

      另2:使用字典替换的情况,字典的键作为元素替换到列表中,值被抛弃

        例如:l=['ni','wo','ta','women']

            l[:3]={'username':'xingchen','hobby':'girl'}

          print(l)   --->结果为:['username', 'hobby', 'women']

      另3:使用列表替换元素时,列表的每个元素成为了它的新元素

        例如:l=['ni','wo','ta','women']

           l[:3]=[11,22,33,44,'abc']

           print(l)      ---> [11, 22, 33, 44, 'abc', 'women']
View Code

  5.4 列表的---查

  
   索引查  print(s[0])

   切片查  print(s[:3])

   切片加步长查 print(s[:3:2])

          for循环查  for i  in s:

         print i

   判断是否包含:print('a' in s)  -->显示True 或者 False

     当列表中嵌入列表时:print([1,2] in s)
View Code

  5.5列表的其他方式:  

  
    # print(len(l)) # 总个数

    # print(l.count('a')) # 某个元素出现的次数

    # l1 = [1, 9, 8, 4, 3, 2, 6,]

    # l1.sort() # 正序排序

    # l1.sort(reverse=True) # 倒叙排序

    # l1.reverse() # 翻转,前后换位置

    # print(l1)
View Code

 

六 字典                                                                                                                                                                                                                                                                                                                                                                                                                

  字典:key-values存储,字典的键 必须是唯一的,不可重复,value 可以为任意数据类型或者对象。

    字典的键可以使用的数据类型:int str tuple bool

  6.1 字典的---增

    根据键增加   例如: dic=[]   dic['name']='xingchen'    #由于name键在字典中没有,所以增加,但是如果存在的话,就会修改值

    根据setdefault   例如:dic.setdefault('name','xiaobai')  #无则增加,有则不变

  6.2 字典的---删

  
    6.2.1 pop 其会返回值

      例如:dic.pop('name')   ---》其会返回键name对应的值

         dic.pop('不存在','此键不存在')   --》删除一个不存在的键,可以预定返回的值

    6.2.2 popitem 3.5之前是随机删除,3.6之后是删除最后一个键值对,其括号中不加入键名

      例如:dic.popitem()

    6.2.3 clear清空 例如:dic.clear()

    6.2.4 del 从内存层面删除这个字典  例如:del  dic
View Code

  6.3 字典的---改

  
    6.3.1 根据存在的键名改: dic['name']='wuming'

    6.3.2 update 根据一个字典去更新另外一个字典

      例如:dic = {"name": "jin", "age": 18,"sex": "male"}

           dic2 = {"name": "alex", "weight": 75}

         dic2.update(dic)

         print(dic2)   ---->结果 {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
View Code

  6.4 字典的---查    

 6.4.1 get 有返回值

      例如:dic={'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}

         print(dic.get('name1'))    -->返回None

         print(dic.get('name1','没有此键'))   --》返回 没有此键

 

        6.4.2 for循环查 默认遍历字典的键 keys(),还可遍历字典的值 values()  键值对items()

      例如:for i in dic:

          print(dic[i])

        另:可以键,值分别赋值给变量

          for key  val  in dic.items():

            print(key val)

     6.4.3  使用键名查   dic['name']

     6.4.4  包含查询     print('name' in dic)
View Code

  6.5 字典的其他用法

    fromkeys的用法

    例如:     

dic=dict.fromkeys('abc',[]) #fromkeys命令建立一个列表,建立一个键值对后,它们指向的是同一个内存
print(dic) #{'a': [], 'b': [], 'c': []}
dic['c'].append(666) #给一个键赋值,其他的也赋了同样的值
print(dic) #{'a': [666], 'b': [666], 'c': [666]}
dic['a'].append(777)
print(dic) #{'a': [666, 777], 'b': [666, 777], 'c': [666, 777]}
#如何脱离这个限制
dic['b']=[666,777]
print(dic) #{'a': [666, 777], 'b': [666, 777], 'c': [666, 777]}
dic['c'].append('其他')
print(dic)  #{'a': [666, 777, '其他'], 'b': [666, 777], 'c': [666, 777, '其他']} 结果就脱离限制了
View Code

 ****最后:在循环列表或者字典的时候,千万不要做添加或者删除操作。应借助于其他变量如列表

例如:

 

将索引为奇数对应的元素删除
l1 = [11, 22, 33, 44, 55]
# for i in range(len(l1)):
#     print(i)
#     print(l1)
#     if i % 2 == 1:
#         del l1[i]
#     print(i)
#     print(l1)
# print(l1) #[11, 33, 44] 结果不是我们想要的
#应使用下面方法
for i in range(len(l1)-1,-1,-1):
    if i % 2 == 1:
        del l1[i]
print(l1) #[11, 33, 55]
View Code

 

7其他                                                                                                                                                             返回顶部                                                                                                                                                                                                                                          

  foramt格式化

 例如  2后面两个%是为了打印%,相当于转换命令

# job = input('请输入职业:')
# hobbie = input('请输入爱好:')
# msg = '''------------ info of %s -----------
# Name : %s
# Age : %d
# job : %s
# Hobbie: %s
# ------------- end -----------------
# ''' % (name, name, int(age), job, hobbie)
# print(msg)

# print('我叫%s,今年%d,学习进度2%%' % ('xingchen', 10000))

range  范围

 

 

 

 

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!