类型和运算

Posted yaoqi17

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类型和运算相关的知识,希望对你有一定的参考价值。

一、整数(int)

  1. 作用:用于计算和比较

  2. 二进制与十进制转换

    1.1 2的各次方值

    2**0=1   2**1=2  2**2=4  2**3=8  2**4=16 2**5=32 2**6=64 2**7=128
    2**8=256 2**9=512    2**10=1024  2**11=2048  2**12=4096
    2**13=8192   2**14=16384 2**15=32768 2**16=65536

    1.2 8421转换法

    十进制转二进制

    首先按照8421来分解:10=2+8,用8421转换法,对应数字下面写1,没有的写0,得到:

    8  4  2  1
    1  0  1  0

    因此10转化为二进制是1010

    二进制转十进制

    例:11111

    16   8   4   2   1
    1    1   1   1   1

    所以11111转化为十进制是16+8+4+2+1即31

  3. bit_length 二进制的有效占用位数

    num = 7   # 8421   00000111
    print(num.bit_length())  # 求十进制数转换成二进制时所占用的位数
    结果:
    3

二、布尔值(bool)

  1. 数字可转为布尔值:

    0是Flase 非0是Ture

  2. 字符串转换成布尔值:

    空字符串是Flase 非空字符串是Ture

  3. 布尔值转换成数字、字符串

    转换成数字:Ture—>1 False—>0

    转换成字符串:Ture—>“Ture” False—>"False"

三、字符串(str)

  1. 作用:用来存储少量数据

    注意:字符串是不可变的对象, 所以任何操作对原字符串是不会有任何影响的

  2. 索引:从左到右 0,1,2,3 从右到左-1,-2,-3,-4

    ? 查找时超出范围会报错

    name = "meet,alex,wusir,wangsir,Eva_j"
    name[100]
    
    结果:
    报错IndexError: string index out of range
  3. 切片:格式为[起始位置:终止位置:步长] 顾头不顾尾

    ? 步长决定查找的方向,以及查找的跨度大小,默认是1,方向从左向右

    ? 查找的时候超出范围没事

    name = "meet,alex,wusir,wangsir,Eva_j"
    print(name[:100])
    结果:
    meet,alex,wusir,wangsir,Eva_j
  4. 字符串方法

    方法 作用
    1.大小写转换
    s.capitalize() 首字母大写
    s.lower() 全部转换为小写
    s.upper() 全部转换为大写
    s.swapcase() 大小写互换
    s.title() 单词首字母大写
    2.字符串切割
    s.center(10,*) 拉长成10个字符,其余用 *填充
    s.strip() 去掉两端空白
    **s.replace("#","*",2)** **把#换成 *,替换2个**
    s.split("#") 用#去切割字符串,#损失,当切割内容出现在边上,会出现空字符
    3.查找
    s.startswith("#") 判断是否以#开头
    s.endswith("#") 判断是否以#结尾
    s.count("#") 统计#出现的次数
    s.find("#") 找出#出现的位置,如果找不到返回-1
    s.index("#") 找出#的索引,如果找不到报错
    5.条件判断
    s.isalnum() 判断是否由字母和数字组成
    s.isalpha() 判断是否由字母组成
    s.isdigit() 判断是否是数字组成 ,不包括小数点
    s.isdecimal() 判断是否是十进制
    s.numeric() 判断是否由数字组成,不包括小数点,可识别中文
  5. 第三种格式化输出

    format()三种使用方式:

    1.按照位置顺序去填充

    name = "alexwusir"
    name1 = name.format('结婚了',"要结婚了")  # 按照位置顺序去填充的
    print(name1)
    结果:
    alex结婚了wusir要结婚了

    2.按照索引位置去填充

    name = "alex1wusir0"
    name1 = name.format('结婚了',"要结婚了")    # 按照索引位置去填充
    print(name1)
    结果:
    alex要结婚了wusir结婚了

    3.指名道姓填充

    name = "alexawusirb"
    name1 = name.format(a="结婚了",b="马上结婚")  # 指名道姓 填充
    print(name1)
    结果:
    alex结婚了wusir马上结婚

四、for循环

  1. 格式:

    for i in s:      #for(关键字)  i(变量)  in(关键字)  s(可迭代对象)
     pass        #占位

    循环后的i变量指向的是最后的一个元素

    for a in "alex":
        print(a)
    print(a)
    结果:
    a
    l
    e
    x
    x
    

五、range

格式:range() 范围

range(起始位置,终止位置,步长)

range(10) range(终止位置) 起始位置为0

注意:python3直接打印range的话输出的书它本身

? python2直接打印的话输出的是列表

s = range(1,10)  
print(s)  # 范围
结果:
range(1, 10)     #python3
s = range(1,10)  
print(s)   #python2
结果:
[1,2,3,4,5,6,7,8,9]

以上是关于类型和运算的主要内容,如果未能解决你的问题,请参考以下文章

在代码片段中包含类型转换

C#图解教程 第十九章 LINQ

对这个带有 & 不带 = 的代码片段返回类型感到非常困惑

(转) Java中的负数及基本类型的转型详解

如何在 python 中并行化以下代码片段?

获取 badarith,[erlang,'+',[error,0],[],同时使用 Erlang 片段在 TSUNG 中执行算术运算