Python从入门到精通之Third!

Python运算符

  算数运算符:+    -    *   /     %    //    ** 

  比较运算符:==    >     <     >=   大于等于      <=  小于等于     !=  不等于     <>  不等于

  逻辑运算符:not  、 and   、  or   (布尔值:True 真   False: 假)

  in       not in     判断某个东西是否在某个里面  #  注释符  多个字符叫做字符串,单个字符叫做字符。  

  赋值运算符:    +=、-=、%=、*=、/=、//=、**=

  not    False====>>True           (有括号先计算括号里的)

name = "张三1"
if "张1" in name:
    print('ok')
else:
    print('error')         #输出error,只有连续的或者单个的是子序列。
name = "李四2"
if "李2" not in name:
    print("not in ")
else:
    print("in")

    

  基本数据类型

  数值型   Python2中 :int 整型  long  长整型

      Python3中   所有数字都是整型,没有长整型  

      数值的魔法:  

1 a1 = 123    #type(a1)查看a1的数据类型         
2 b1 = 456
3 r = b1.bit_length()   #当前数字的二进制,至少用几位来表示
4 - int    将字符串转换为数字
5     a = "123"
6     b = int(a)
7     b = b + 1000
8                a1 = "0011"
9                int(a1,base=n)   #将字符串以n进制的形式转换   

  字符串型   : str的必会魔法:7个基本魔法 5个灰魔法  1个深灰魔法

  7个基本魔法:    join    upper   lower   replace   find   strip   split  

        深灰魔法:字符串一旦创建不可修改,一旦修改或者拼接,都会造成重新生成字符串

test = "alex"

v = test.capitalize()     #首字母大写
v = test.casefold()    # 所有字母变成小写,casefold更牛逼,可以把很多未知的变成小写

v = test.center(width,"*")   #作用:将内容设置剧中,参数一设置宽度,参数二设置除内容外的字符,可以为空。
     eg:test.center(10,@)
  =====>>@@@alex@@@

v = test.count('子序列',起始位置)   #统计子序列在字符串中出现的次数
     eg:test.count('l',2)
  =====>>1

v = test.endswith('字符序列')       #是否以字符序列结尾的
     eg:test.endwith("ex")
  =====>>True

v = test.startswith('字符序列')     #是否以字符序列开头的
    eg:test.startswith("ae")
  =====>>False

v = test.expandtabs([tabsize=8]) #方法把字符串中的 tab 符号('	')转为空格,tab 符号('	')默认的空格数是 8。     
    eg:test = "ale	x"           #注意:先看tabsize的值,根据指定长度一个个判断,用空格补齐指定长度
         v = test.expandtabs(6)
         print(v,len(v))
  =====>>ale   x   7

v = test.find(str, beg,end)         #检测字符串中是否包含子字符串 str ,如果指定 beg(开始)
和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回从第一个开始的索引值,否则返回-1。

v = test.format('值1','值2')     #格式化,将一个字符串中的占位符替换为指定的值
    eg:test = 'i am {name},age {a}'
         v = test.format(name='alex',a=19)
  =====>>i am alex, age 19

v = test.format_map({"name":'alex',"a":19})     #与上format作用相同,但书写方式不同,和字典相同。

v = test.index()    #找到其索引,未找到则报错。
    eg:test = "alexalex"
      v = test.index('8')     #报错
v = test.isalnum()  #判断字符串中是否只包含数字和字母
  eg:test = "fafd_123"
    v=test.isalnum()
 ======>>False 

v = test.isalpha()      #判断是否是字母

v = test.isdecimal()  #判断是否是数字,比较常用
v = test.isdigit()    #判断是否是纯数字
v = test.isnumeric()   #可以判断是否是数字,支持中文数字,可用于判断标题

字母的转换与判断
v = test.islower()  #判断字符串是不是全部小写
v = test.lower()    #把字母转换为小写
v = test.isupper()    #判断字符串是不是都是大写
v = test.upper()      #把字母转换为大写
v = test.swapcase()   #大小写转换

v = test.isidentifier()  #是否是由字母,数字,下划线,标识符(def、class)组成

    eg:test = "alexalex"
      v = test.isidentifier()     
   ======>> True

 v = test.isprintable()   #是否存在不可显示的字符,若存在则为False。例如:	、


 v = test.isspace()         #判断是否全部是空格,空串不包含空格

 v = test.title()       #把字符串转为标题类型
 v = test.istitle()       #判断是不是标题,所有首字母大写

# 字符串的填充
 v = ''.join()    
    eg:a = 'fasaff'
     v = '_'.join(a)     #将每一字母之间都添加上下划线
   ======>> f_a_s_a_f_f
 v = test.ljust(长度,"填充符")    #从左侧向右填充,长度是整个字符串长度  abc@@@@
 v = test.rjust(长度,"填充符")   #从右侧向左填充,长度是整个字符串长度  @@@@abc 
 v = test.zfill(长度)   #只能填充0,可用rjust代替          
 
#空格的增删  注意:可去除	、

还适用于字符删除,匹配子序列中与字符串左或右侧相对应的,先匹配字符多的
 v = lstrip()      #删除左侧空格
 v = rstrip()       #删除右侧空格
 v = strip()        #删除两侧空格
  eg:test = 'abcde'
    v=test.lstrip('deacb')
   =======>>  cde

#maketrans和translate配合使用,实现字符间的转换
 v = test.maketrans("12345","aeiou") #把字符1替换为a 2替换为e
     eg:test = "test"
           m = test.maketrans("ts","12")
       new_v = test.translate(m)  
 ========>>  1e2t
 
#按照一定规则进行分割
#partition与split的区别是:partition会把要分割的字符分成一份,而split不会
 v = test.partition(分隔符'a')    #把字符串分隔成3份,找到第一个a,左侧一份,a一份,a右侧一份
 v = test.rpartition(分隔符)    
 v = test.split('a')             #把整个字符串中所有的a都进行分割,但是a本身不会被匹配
 v = test.rsplit(分隔符)
  eg:test = "asdfadreafdgd"
     v = test.split('d',2)    #后面可指定两个参数,第二个参数是为了匹配制定次数的
   =======>>   ['as','fa','reafdgd']
 v = test.splitlines(True/False)  #根据true或false,是否保留换行符
   eg:test = "fas
fsdaf
fd"
     v = test.splitlines()    #根据换行符进行分割
   =======>> ['fas','fsdaf','fd']

#字符的替换
test = 'alexalexalex'
v = test.replace("ex","bbb",2) #把ex替换成bbb,只替换前两个
print(v)
==========>> albbbalbbbalex

   

字符串的灰魔法:

#索引,下标,获取字符串中的某一个字符
test = "abcd"
v = test[2]
print(v)
==========>> c

#切片
test = "abcd"
v = test[0:-1]      #从下标0到最后,但不包含最后一个
pirnt(v)
==========>> abcd

#获取字符串长度   注意:当获取列表的元素个数时,获取的是个数
v = len("abcde")
print(v)
=========>>  5

#######例题#########

test = '妹子有种冲我来'
index = 0
while index<len(test):
    v = test[index]
    print(v)
    index+=1
print("==========")
=========>>妹
           子
           有
           种
           冲
           我
           来
           ==========    

#for循环 注意:for循环可用于列表、字典等等#
 
for 变量名 in  字符串:

  代码块

#帮助创建连续的数字,通过设置步长来设定不连续的数字 
v = range(0,100,5)   #大于等于0小于等于100的步长为5的数
for item in v:
  print(item)
#例题:将文字对应的索引打印出来
 test = input("<<<<<")
 l = len(test)
 r = range(0,l)
 for item in r:
     print(item,test[item])
原文地址:https://www.cnblogs.com/xtznb/p/10353305.html