您的位置:澳门402永利com > 编程应用 > 类型转换

类型转换

发布时间:2019-10-02 19:06编辑:编程应用浏览(127)

    数字运算

    • 运算会根据结果自动判断结果是int还是float
    • 用到除法的时候,结果自动输出为float
    • 双斜杠//得到的结果是int
    • 取模还是%
    >>> 2+24>>> 50-5*620>>> /45.0>>> 8/51.6>>> 5.0/1.63.125>>> 17//35>>> 17%32
    
    • 赋值 =
    • 多次方 2**7 2的7次方
    • 完全支持浮点型和整型混合运算
    • 最后一个值会被被赋给变量_,
    • 保留小数点,如保留2位round
    # 赋值>>> width = 20>>> height = 30>>> width * height600# 阶乘>>> 2**7128>>> 5**225# 默认赋值符>>> 4*3.5+5-8.510.5>>> _*331.5>>> _+0.12331.623# 保留小数点>>> round31.62
    

    自动类型提升

    字符串

    # 相同引号不转义会报错>>> 'It's' File "<stdin>", line 1 'It's' ^SyntaxError: invalid syntax# 转义>>> 'It's'"It's">>> ""Yes," he said."'"Yes," he said.'# 不同引号可以直接包含>>> "It's""It's"# n是换行符>>> print('linennewline')linenewline# 加r 使用原始字符串>>> print(r'linennewline')linennewline# 换行符>>> print("""... hello... world... """)helloworld# 换行,防止空行>>> print("""... hello... world... """)helloworld# 字符串 + * 运算>>> print(3*" hello " + 'world') hello hello hello world # 字符串自动拼接 >>> 'python' ' good''python good'
    
    >>> content = 'hello world'# 正索引>>> content[0]'h'>>> content[5]' '>>> content[9]'l'# 后端索引>>> content[-1]'d'>>> content[-5]'w'# 连续索引# content[包括:不包括] >>> content[:5] # 0-5'hello'>>> content[4:5] # 4-5'o'>>> content[0:] # 0-end'hello world'>>> content[-10:] # end-'ello world'# 长度>>> len11
    

      两种不同数据类型的数据进行运算时, 需要首先变成同一数据类型,

    Lists

    # 列表不同的项之间用逗号隔开# 最好后面再加个空格,和下面打印出来的一样>>> list = [1,2,3,4,5,100]>>> list[1, 2, 3, 4, 5, 100]# 索引,和字符串一样>>> list[2]3>>> list[-2]5>>> list[-2:][5, 100]>>> list[:-2][1, 2, 3, 4]# 全部请求>>> list[:][1, 2, 3, 4, 5, 100]# 连接list>>> list + [101,102][1, 2, 3, 4, 5, 100, 101, 102]# 可变类型>>> list[1] = 11>>> list[1, 11, 3, 4, 5, 100]# 追加操作>>> list.append>>> list[1, 11, 3, 4, 5, 100, 103]# 胡求变>>> list[1, 11, 3, 4, 5, 100, 103]>>> list[1:3] = ['A','b','C']>>> list[1, 'A', 'b', 'C', 4, 5, 100, 103]>>> list[0:2] = []>>> list['b', 'C', 4, 5, 100, 103]>>> list = []>>> list[]# 列表嵌套及运算>>> a = [2,3,4]>>> b = [3,4,5]>>> list = [a,b]>>> list[[2, 3, 4], [3, 4, 5]]>>> list = list + a + b>>> list[[2, 3, 4], [3, 4, 5], 2, 3, 4, 3, 4, 5]>>> list[1][3, 4, 5]>>> list[5]3>>> list[0][2]4# 斐波那契数列(注意...格式,否则会报错)>>> a,b = 0,1>>> while b< 1000:... print(b,end=',')... a,b = b,a+b...1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,>>>
    

      转变规则是:向着位数高的类型转换

     byte b = 1;  //赋值1的时候会自动判断,判断1是不是在b的范围内, 1是常量是固定的,所以可以赋值
     b = b +2; // 结果将报错,因为int为32位, byte是8位二进制表示,b+2 中b是个不确定的值, 不能进行自动判断,
                //所以会出现损失精度的问题,导致编译失败
    

    强制类型转换

      如果非要将b+ 2 赋值给b, 可以进行强制类型转换

      b = (byte)(b+2); 这样做有丢失精度的危险,因为只保留了较低位的数值

    ps:int和 float都是4个8位,当 int 和 float 运算时, 结果是float,因为float多了小数位

    system.out.println('a'+1);//输出 98
    system.out.println((char)('a'+1));//输出 b
    

    因为字符‘a’对应的ascll码是97,char类型占2个8位,int是4个8位,所以当char与int进行运算时,char类型向int提升,char类型的提升成int就会将对应的ascll码表的数字体现出来, 于是显示98

    强制类型转换后就输出了数字对应的字符

    所以char类型的字符是可以进行运算的, 因为char类型的字符在ascll码表中有对应的数字

     

    本文由澳门402永利com发布于编程应用,转载请注明出处:类型转换

    关键词:

上一篇:解释器及基本编辑

下一篇:没有了