• Python第一周Round3记录—基础内容2


    根据前两天的学习,对Python有了一点小小的认识,目前兴趣指数仍为5颗星,哈哈,所以周六到晚上8点钟,还是坚持学习了新内容,以下为新内容的总结:

    给自己的博客书写定个规矩,一级标题用标题2大小,依次类推逐渐减小;

    一级标题用“一”、二级标题用“(一)”、三级标题用“1”、四级标题用“(1)”、五级标题用“①”、六级标题用“1)”...


    重新学习一下数据类型和运算符。

    一、运算符 

     

     

     需要注意的事情:

    (一)Python中判断运算的用法

    name_01="小果子"#定义name_01为字符串类型;
    v="小"in name_01#判断“小”是否在name_01中,我觉得Python这个功能实在是不能在方便了。
    print(v)#输出结果为True
    

      

    (二)运算的优先级问题

    1、有括号的先算括号内的内容;

    2、逻辑运算顺序:无括号的,按顺序执行,从前往后运算。

    jieguo_1=2>1 and "小" not in "果果" or 1+1>3#共3个part,第一个是2>1,为True,第二个"小" not in "果果"也为True,后面的不在执行
    print(jieguo_1)#输出为True
    
    # 执行到哪里,需要看逻辑运算及其前后的bool值
    # True or   ==>True
    # True and  ==>继续走
    # False or  ==>继续走
    # False and ==>False
    

       


    二、数据类型

    (一)数字

    在Python中,和其他程序最大的进步就是没有长短整型的分类了,不管数字有多大,统称int,具体能装多大数,看系统能力了,64位系统是32位系统的2倍。

    下面是数字类型的一些常用方法及属性

    1、转换到数字类型的函数,int(num,base=none);

    将字符串或者其他形式的数字转换到数字类型,有些特殊的情况,比如超出范围等情况不做探究;默认要转换的数字/字符串为10进制,如果是其他进制,需要在base=none中声明。

    a="111"  #定义a为字符串类型。
    v=int(a,base=2)#定义v为数字类型,int()将a转换为了10进制的数字类型,base=2表示要转换的a为2进制数字。
    print(v)#输出结果为7  

    报错的使用方法

    #第一种常用情况
    a="3b" 
    v=int(a) #执行中,系统会判断,在10进制情况下是没有b的,无法转换,报错
    print(v)
    
    #第二种常用情况
    a="3+6"
    v=int(a)#无法运算字符串
    print(v)
    

      

    2、数字类型的一些基本属性

    num_01=-717521
    v_1=num_01.bit_length()#表示数字转换到2进制情况下,至少占用的位数;
    v_2=num_01.__abs__()#返回绝对值,注意abs前后是两个半角下划线;
    print(v_1,v_2)#输出结果为20 717521
    

      其他的属性,后续在学习,基本上都是一些数字运算的问题,平常用处不大。

    (二)字符串

     字符串的属性很多,看的眼花缭乱,通过两天的学习和整理,基本上知道了一些基础的用法,现整理如下:

    #属性中的self不用管,不用指定值
    #start为闭区间,end为开区间,start≤sub<end,顾首不顾尾
    #*args, **kwargs,等为任意的参数
    
    #index()索引,查找位置
    #返回的int都是相对于其真实位置(从左边数)
    #无数据返回时,会报错。
    str="小果果是一只笨蛋"
    s1=str.index('果')
    s2=str.rindex("果")
    print(s1,s2)#输出结果为1 2
    
    #count()查找指定的子序列在str中出现的次数
    # 若没找到返回:0
    str='小果果是一只狗子'
    s=str.count("果")#‘果’在test中出现的次数,输出int值;
    print(s)
    
    #format()格式化,将字符串中的占位符(必须是半角的{})替换为指定的值.
    #3种方法:1、按默认从左到右的默认顺序传值,2、按指定位置传值,3、按设置参数传值,返回格式化后的字符串
    str='my name is {},'
    s1=str.format("alex")
    v=str.format_map(mapping})#另外一种格式化,括号中的mapping是一个字典对象。
    print(s1)
    
    #encode()和decode(),编码和接码属性,后续在研究
    s="你好啊小果果"
    s1=s.encode("utf-8")#以指定的编码格式对字符串进行编码,并返回编码后的二进制;encode(self, encoding='utf-8', errors='strict')
    print(type(s1),s1)
    s2=s1.decode("utf-8")
    print(type(s2),s2)
    
    #title()将字符串中的所有单词的首字母的替换成大写字母
    str='alex jim hhhh'
    s1=str.title()
    s2=s1.istitle()#是否首字母为大写,且其他字母为小写(一般用于识别标题,对中文感觉没有用啊)
    print(s1,s2)#输出Alex Jim Hhhh True
    
    #ljust(),rjust()填充,从左边、右边、两边填充指定的参数,长度为必须参数
    str='* 是吗'
    s1=str.ljust(10,"你")#返回一个左对齐的字符串,width为长度,fillchar可填写一个str
    s2=str.rjust(10,"你")
    s3=str.center(10,'你')#sub在指定的width(宽度)中的位置,fillchar可填写一个str(写int报错)
    print(s1,s2,s3)
    
    #zfill()填充,按指定长度在字符串的左侧填充"0"补齐,无法填充其他的,不如ljust()好用
    str='我是小果果'
    s1=str.zfill(20)
    print(s1)
    
    #swapcase(),casefold(),capitalize()大小写相关的互换。
    s=str.swapcase()#大小写转换
    s1=str.casefold()#所有的字符变小写,输出str值
    s2=str.capitalize()#首字母大写,其他字母变小写,输出str值,对于英文来说,好处就是统一格式,对中文啥用,目前想不起来
    
    #maketrans(),translate()建立对应关系,并对字符进行对换位置。
    old='12345'
    new='abcde'
    str='真的不错啊12345'
    s1=str.maketrans(old,new)#建立对应关系(映射表),字典格式
    s2=str.translate(s1)#对上面建立的映射表进行替换(翻译)
    print(type(s1),type(s2),s2)#输出<class 'dict'> <class 'str'> 真的不错啊abcde
    
    #expandtabs(),把字符串中的 tab	、换行
    、转为空格(默认的步长为8,从左边开始执行,无符号不执行)。爬虫的时候可以将格式对齐
    s="12345678888	133"
    v=s.expandtabs()
    print(type(v),v)#输出<class 'str'> 12345678888     133
    
    ######################################
    #以下都是is相关的属性,输出bool值
    
    #当前输入是否是数字(适应于文件操作,一、1、①等读写)
    s1=str.isdecimal()#是否全是十进制字符,这种方法只存在于unicode对象。
    s2=str.isdigit()#是否全是数字
    s3=str.isnumeric()#是否全是数字,只针对unicode对象。
    
    #判断是否都是大小写,和转换为大小写
    s=str.lower( )#将字符串中的大写字母转换成小写字母
    s=str.upper()
    s=str.islower()#是否全是小写
    s=str.isupper()#是否全是大写
    
    text="zh1en"
    v=text.isalnum()#是否是否由字母或数字组成
    v=text.isalpha()#是否全为字母或汉字
    v=text.isspace()#是否全部都是空格
    v=text.isprintable()#打印出来和字符串一样,输出True,包含/t(制表符Tab),/n(换行)等为Flase
    v=text.isidentifier()#判断是否是合法标识符,实际上是判断变量名是否合法。
    
    #判断开头(前缀)、结尾(后缀)的字符是否一致
    #startswith()#判断字符串是否是以指定字符串开头并返回布尔值
    #endswith()
    
    #############重点需要记熟的属性###################
    #find() 索引,查找位置
    # 返回的int都是相对于其真实位置(从左边数)
    # 无数据返回时,返回-1。需要子序列完全匹配
    str='小果果是一只狗子'
    s1=str.find("果")#看sub的位置,从0开始数,输出int值,find(self, sub, start=None, end=None)
    s2=str.rfind('棕色')
    print(s1,s2)#输出结果为 1 -1
    
    #strip(),去处左右空格(包括空格,/t,/n,/r)
    #若加入参数,则移除指定字符,有限最多匹配。
    # 注意删除多个字符时:只要头尾有对应其中的某个字符即删除,不考虑顺序,直到遇到第一个不包含在其中的字符为止
    str='**小果果是一只小狗子**'
    s1=str.strip('*小子果')#输出 是一只小狗
    s2=str.lstrip('*')
    s3=str.rstrip('*')
    print(s1)
    print(s2)
    print(s3)
    
    #split(),对字符串进行切片、分割。
    #返回值为list列表形式返回
    #正则表达式分割,后续学习。
    str='**小果果是一只小狗子**'
    s3=str.split("小",6)#split(self, sep=None, maxsplit=-1)
    s4=str.rsplit()
    s5=str.splitlines()#分割,可以加入参数为True、False来决定是否保留换行符
    print(type(s3),type(s4),type(s5),s3,s4,s5)
    
    #按从左到右的顺序,对字符串进行分割,返回一个包含3个元素的元组,这个元组中这3个元素分别为:指定分割符,以及以这个分隔符为中心的左右两侧的字符串。
    #s1=str.partition()#只能分3份
    #s2=str.rpartition()
    
    #replace()替换,将指定的字符串替换成新的字符串,并返回替换后的字符串。可以指定替换的次数,若不指定次数则默认替换全部。
    str='**小果果是一只小狗子**'
    s1=str.replace('小','chali',1)#参数分别为 被替换,替换,替换次数
    print(s1)#输出**chali果果是一只小狗子**
    
    #join()拼接,将字符串中的元素以指定的分隔符进行拼接;join(self, iterable)
    str='*'
    s1=str.join("你是不是小果果")
    print(s1) #你*是*不*是*小*果*果
    

     以上字符串的属性肯定是会忘得,但是在整理的过程中,学习了一些用法和思维方式,也算挺好。

    第一周结束语

    第一周的学习内容就这么多了,继续加油吧~整个人其实还是好的!

  • 相关阅读:
    【一致性检验指标】Kappa(cappa)系数
    仅需4步,轻松升级K3s集群!
    使用Kubernetes、K3s和Traefik2进行本地开发
    超强教程!在树莓派上构建多节点K8S集群!
    使用容器化块存储OpenEBS在K3s中实现持久化存储
    仅需60秒,使用k3sup快速部署高可用K3s集群
    在本地运行Kubernetes的3种主流方式
    为什么Kubernetes在边缘计算中如此关键?
    这4件事,让你了解边缘计算的真实面貌
    极简教程!教你快速将K3s与Cloud Controller集成
  • 原文地址:https://www.cnblogs.com/cnafzyx/p/10125873.html
Copyright © 2020-2023  润新知