全国计算机等级考试二级教程--python语言程序设计(2018年版)第三章:基本数据类型

版权声明: https://blog.csdn.net/qq_38351824/article/details/84192593

声明:本篇文章只是个人知识盲区、知识弱点、重点部分的归纳总结,望各位大佬不喜勿喷。梳理顺序是按照书籍的实际顺序梳理,转载请注明出处。

作者:sumjess

 

一、数字类型:

1、整数类型:

      整数类型有4种进制表示:十进制、二进制、八进制和十六进制。

      默认情况,整数采用十进制,其他进制需要增加引导符号,二进制数以0b引导,八进制数以0o引导,十六进制数以0x引导,大小写均可使用

      不同进制的整数之间可以直接运算。

2、浮点数类型:

      1、Python语言中的浮点数类型必须带有小数部分,小数部分可以是0。

      2、科学计数法的使用:1.01e3  

      3、整数运算精度比浮点数更高。

      4、python语言的浮点数运算存在一个“不确定尾数”问题,即两个浮点数运算,有一定概率在运算结果后增加一些“不确定的”尾数,如下例:

     此时需要使用:round(x , d)是一个四舍五入的函数,能够对x进行四舍五入操作,其中参数d,指定保留的小数位数,如下例:

    round可以进行位数的控制。

3、复数类型:

      1、在python中,复数可以看作是二元有序实数对(a,b),表示a+bj,其中a是实部,b是虚部。虚数部分通过后缀“J”或者“j”来表示。需要注意,当b为1时,1不能省略,即1j代表复数,而j则表示程序中的一个变量。

      2、z.real和z.imag分别获得他们的实数部分和虚数部分。

二、数字类型的运算:

1、数值运算操作符:

      x + y          x与y之和

      x - y          x与y之差

      x * y          x与y之积

      x / y          x与y之商,产生结果为浮点数

      x // y         x与y之整数商,即:不大于x与y之商的最大整数

      x % y        x与y之商的余数,也成为模运算

      x ** y         x的y次幂,即:x^y

        - x            x的负值,即:x*(-1)

        +x            x本身

注意事项:

         1、数值运算可能改变结果的数据类型,类型的改变与运算符有关,有如下基本规则:

            ① 整数和浮点数混合运算,结果是浮点数。.

            ② 整数之间的运算,产生结果类型与操作符相关,/ 运算的结果是浮点数。

            ③ 整数或浮点数与复数运算,输出结果是复数。

         2、所以的二元运算操作符都可以与赋值符号相连,形成增强赋值操作符。(增强赋值操作符中运算符与=之间不能有空格)

2、数值运算函数:

      (1)abs(x)用于计算整数或浮点数x的绝对值(复数则是求模

      (2)divmod(x,y)同时返回两个值,分别是x和y的整数商和除法余数,可以通过两个变量连续赋值的方式获得这两个值,也可以用一个变量保存这个值,并采用[]进行索引

      (3)pow(x,y)用来计算x的y次幂,与x**y相同。拓展:pow(x,y,z)则用来计算x^y%z,模运算与幂运算同时进行,速度更快

      (4)round(x)对整数或浮点数x进行四舍五入运算,详细见上面一小节

      (5)min()和 max()对多个任意数字进行最小值或最大值的比较,并输出结果

三、字符串类型及格式化:

1、

        单行字符串可以由一对单引号(‘)或双引号(")作为边界来表示。

        多行字符串可以由一对三单引号(‘‘‘   ’’’)或三双引号(“““   ”””)作为边界来表示,

例子如下:

反斜杠字符的作用:

\n表示换行、\\表示反斜杠、\'表示单引号、\"表示双引号、\t表示制表符(tab)等

② 如果在字符中需要出现单引号需要出现双引号,则需使用转义符。

③ 反斜杠字符(\)还有续写的功能。

2、字符串的索引:

      <字符串或字符串变量>[序号]

3、字符串的切片:

      <字符串或字符串变量>[N:M]  切片获取字符串从N到M(不包括M)的子字符串。

4、format()方法的基本使用:

    (1)python语言推荐使用.format()格式化方法,其使用方式如下:

               <模板字符串> .format(<逗号分隔的参数>)     其中,模板字符串是一个由字符串和槽组成的字符串,用来控制字符串和变量的显示效果。槽用大括号({ })表示,对应format()方法中逗号分隔的参数

    (2)注意: 如果模板字符有多个槽,且槽内没有指定序号,则按照槽出现的顺序分别对应.format()方法中的不同参数。 可以通过format()参数的序号在模板字符串中槽中指定参数使用,参数从0开始编号。

5、format()方法的格式控制:

    (1)format()方法的槽除了包括参数序号,还可以包括格式控制信息,语法格式如下:

              {  <参数序号> :<格式控制标记> }    

             格式控制标记包括:<填充><对齐><宽度><,><.精度><类型>

    (2)第一组是<填充><对齐><宽度>

            <宽度>是指当前槽的设定输出字符宽度,如果该槽参数实际值比宽度设定值大,则使用参数实际长度。如果该值的实际位数小于指定宽度,则按照对齐指定方式在宽度内对齐,默认以空格字符填充。

            <对齐>分别使用<>^三个符号表示左对齐、右对齐和居中对齐

            <填充>填充字段可以修改默认填充字符,填充字符只能有一个。

    (3)第二组是<,><.精度><类型>

            <,>用于显示数字类型的千位分隔符。

            <.精度>由小数点(.)开头。对于浮点数,精度表示小数部分输出的有效位数。对于字符串精度表示输出的最大长度。注意区别与<宽度>的不同:如果实际长度大于精度设定长度,输出将被截断。

            <类型>表示输出整数和浮点数类型的格式规则。

                        对于整数类型,输出格式包括如下6种:

                             b:输出整数的二进制方式;

                             c:输出整数的对应的Unicode字符;

                             d:输出整数的十进制方式;

                             o:输出整数的八进制方式;

                             x:输出整数的小写十六进制方式;

                             X:输出整数的大写十六进制方式;

                        对于浮点数类型,输出格式包括如下4种:

                             e:输出浮点数对应的小写字母e的指数形式;

                             E:输出浮点数对应的大写字母E的指数形式;

                             f:输出浮点数的标准浮点形式;

                             %:输出浮点数的百分比形式;

    (4)一些常用的format()方法格式控制信息,建议读者掌握。例如:

            

                

四、字符串类型的操作:

1、字符串操作符:

        x+y                 连接两个字符串x与y

        x*n或n*x        复制n次字符串x

        x in s              如果x是s的子串,返回True,否则返回False

2、字符串处理函数:

        (1)len(x)返回字符串x的长度,以Unicode字符为计数基础,因此,中英文字符及标点符号等都是一个单位长度。

        (2)str(x)返回字符串形式,其中,x是数字类型或其他类型。

        (3)chr(x)ord(x)函数用于在单字符和Unicode编码值之间进行转换。chr(x)函数返回Unicode编码对应的字符,ord(x)函数返回单字符x对应的Unicode编码、

        (4)hex(x)oct(x)函数分别返回整数x对应十六进制和八进制值的字符串形式,字符串以小写形式。

3、字符串处理方法:

        (1)方法也是一个函数只是调用方式不同。函数采用func(x)方式调用,而方法则采用

                 <a>.func(x)形式调用。方法以前导对象<a>为输入。

        (2)注意下文中str代表一个字符串或字符串变量。

             ① str.lower()str.upper()是一对方法,能够将字符串的英文字符变成小写或大写。

                 

             ② str.split(sep)能够根据sep分割字符串str。sep不是必须的,默认采用空格,sep可以是单个字符,也可以是一个字符串。分隔后内容以列表类型返回。

             ③ str.count(sub)方法返回字符串str中出现sub的次数,sub是一个字符串、

             ④ str.replace(old,new)方法将字符串str中出现的old字符串替换为new字符串。

           

            ⑤ str.center(width,fillchar)方法返回长度为width的字符串。其中str处于新字符串的中心位置,两侧新增字符采用fillchar填充。

            ⑥ str.strip(chars)从字符串str中去掉在其最左侧和右侧chars中列出的字符。chars是个字符串,其中出现的每一个字符都会被去掉。

            ⑦ str.join(iter)中iter是一个具备迭代性质的变量,该方法将str字符串插入iter变量的元素之间,形成新的字符串。

五、类型判断和类型间转换:

1、type(x)函数对变量x进行类型判断,适用于任何数据类型

          

注意:如果需要在条件判断中使用变量类型作为条件,可以使用type()函数直接进行比较

2、①  int(x)将x转换为整数, x可以是浮点数或字符串

      ②  float(x)将x转换为浮点数, x可以是整数或字符串

      ③  str(x)将x转换为字符串, x可以是浮点数或整数

六、实例解析---恺撒密码:

在密码学中,恺撒密码(英语:Caesar cipher),或称恺撒加密恺撒变换变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。这个加密方法是以罗马共和时期恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。

与加密方法相对应,对汉字文本的解密方法是将对应的Unicode码左移3位方式,字母仍然按照凯撒密码方式解密。参考代码如下:

etxt = input("请输入加密后文本:")
for p in etxt:
    if "a" <= p <= "z":
        print(chr(ord("a")+(ord(p)-ord("a")+3)%26),end='')
    elif "A" <= p <="Z":
        print(chr(ord("A")+(ord(p)-ord("A")+3)%26),end='')
    elif 0x4E00 <= ord(p) <= 0x9FA5:
        print(chr(ord(p)-3),end='')
    else:
        print(p,end='')
        

七、习题3:

(1)Python不支持的数据类型char

                     支持的数据类型有 :int、float、bool、complex(复数)、String(字符串)、                                                              List(列表)、Tuple(元祖)、Set(集合)、Dictionary(字典)等

(2)合法的字符串:"a'bcd'efg"    'a"bcd"efg'     "a/"bcd/"efg"     'a/'bcd/'efg'

(3)Python语言中1j表示复数,而j表示python的一个变量。1+j不是复数。

(4)Python不支持的函数string()
                     支持的函数len()、str()、chr()、ord()、hex()、oct()

(5)Python函数type()可以作用于任何数据类型和字符串类型

(6)(1+1j)*0结果是复数类型

猜你喜欢

转载自blog.csdn.net/qq_38351824/article/details/84192593