zoukankan      html  css  js  c++  java
  • python 字符前缀,运算符、换行符、数据类型和变量

    补充

      *)/ 表示的除法即使是整数,结果也是浮点数

      *)python表示的整数是没有大小限制的。而某些语言根据其储存长度是有大小限制的。例如Java对32位整数的范围限制在-2147483648-2147483647

        python表示的浮点数也没有大小限制,但是超出一定的范围就会表示为inf(无限大)

     

      

    运算符

    python运算符 **

      a**b(b个a连乘)

    python 逻辑运算符 按位逻辑运算"$"   "|"     "^"   ">>"   "<<"

      参考链接:https://blog.csdn.net/wxy_csdn_world/article/details/80759915

      $是 按位 逻辑与 运算

      比如:5 & 6,5和6转换为二进制是101和110,此时101 & 110=100,100转换为十进制是4,所以5 & 6=4

      | 是 按位 逻辑或 运算

      比如5|6,就是101|110,得到111=7,所以最后结果为7

      ^ 是按位 逻辑异或 运算(异或会将都是1或者都是0的结果改变,并不是不变的)

      比如5^6,其实是101^110,结果是011,所以5^6的答案是3

      

      >> 是左移一位,>>2 是左移两位的意思(转化位二进制,然后相应的添两个0)

    >>> print ('1 << 2:', 1 << 2)
    1 << 2: 4  (1变为100)相当于1*2*2)
    >>> print ('4 << 2:', 4 << 2)
    4 << 2: 16
    >>> print ('5 << 2:', 5 << 2)
    5 << 2: 20
    

      <<是右移一位 >>2是右移两位的意思 

    >>> print ('5 >> 2:', 5>>2)
    5 >> 2: 1#没有特别的计算方法吧
    >>>
    

     

    python字符前缀

      参考链接:https://blog.csdn.net/weixin_42165585/article/details/80980739

      1.无前缀和u前缀

      即以Unicode编码储存,可以存储中文,字符默认创建就是这种

      Unicode编码通常使用两个字节存储一个字符

    u'a' 即    u'u0061'   实际内存中为  [0000 0000] [0110 0001]
    

      2.b前缀

      字符串储存为Ascll码,无法存储中文

    >>> test_str=b'测试'
      File "<stdin>", line 1
    SyntaxError: bytes can only contain ASCII literal characters.
    >>>
    

      每个字符由一个字节(8位)表示

    b'a' 即 b'x61'  实际内存中为 [0110 0001] 
    

      3.r前缀

      r前缀与前面的两种不是一样的东西,它主要是解决特殊字符和转义字符的问题,其中的所有字符均视为普通字符和三引号差不多

    >>> print('a	a')
    a       a
    >>> print('''a	a''')#三引号是什么,反正不是这个
    a       a
    >>> print(r'a	a')
    a	a
    

      注意:#b前缀的结果是原样输出的,前面的b代表该字符串是一个字节数组

    >>> print(b'a	a')
    b'a	a'
    >>> print(u'a	a')
    a       a
    >>>
    

      

    python 与的应用、光标的含义

    参考链接:https://www.jianshu.com/p/eb5c23cd6e34

    能将光标定位到当前行的行首

    则是将光标回退一位

    光标的含义:

    光标后面的输出内容均会消失,光标回退后,后面位置的内容都会被抹除

    print('按下回车开始计时,按下 Ctrl + C 停止计时。')
    print('第2行
    ',end='mark')#这一行会消失,因为“第2行”输出后,
    会将光标回退到行首,然后输出end指定的内容即为“mark”
    #注意上面没有换行符了,默认的end是
    
    print('第3行“第三行”不会消失')
    print('第3行
    “第3行”会消失')#因为输出了第三行后,光标回退到行首,即后面的内容“第3行”被抹除了
    print('第3行“行”会消失')#“"回退1位
    print('第4行
    ')#这个为什么没有被抹除呢,看下面这一行
    print('第4行
    a')#结合输出结果来看,这个光标移到行首,后面的内容并不是立即被抹除的,而是输出一位,抹除一位
    print('第5行
    ')#所以这一行输出了”第5行“后,光标被移到行首了,然后输出了默认的end值”
    ",但是这样的话结果中的第5行前不是应该有个空行吗?
    
    #输出
    lient' '--host' 'localhost' '--port' '5819' 'c:UsersAdministrator.SC-201605202132EnvssortappforTest.py'
    按下回车开始计时,按下 Ctrl + C 停止计时。
    mark第3行“第三行”不会消失
    “第3行”会消失
    第3“行”会消失
    第4行
    a 4行
    第5行
    

      

    *)写一个输出进度的

    import time
    
    
    def test():
        for i in range(100):
            time.sleep(0.1)
            print('当前正运行第%d/%d次测试
    '%(i,100),end='')#必须要有这个end,要不没有用
            print('append content')#而且这一行也不能有,其实也没必要有,因为如果后面一定有序列输出的,还不如分多次在附加内容输出后立即输出次数序列
    if __name__=="__main__":
        test()
    

    数据类型和变量

      静态语言和动态语言

      静态语言在定义变量的时候就必须要指定变量的类型,如果赋值的时候和变量的类型不匹配就会报错例如java就是静态语言

    int a = 123; // a是整数类型变量
    a = "ABC"; // 错误:不能把字符串赋给整型变量
    

      相应的变量本身类型不固定的语言称为动态语言,Python就是动态语言

      python支持多种数据类型,在计算机内部,可以把所有的变量看作为一个对象,而变量在程序中就是用于指向这些对象的,对变量的赋值就是把变量和对象关联起来

      对变量赋值x = y是把变量x指向真正的对象,该对象是变量y所指向的。随后对变量y的赋值不影响变量x的指向。

      

      理解变量在内存中的表示:

    a='ABC'
    

      python的解释器做了两件事

    1. 在内存中创建了一个'ABC'的字符串;

    2. 在内存中创建了一个名为a的变量,并把它指向'ABC'

      也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据

      

      常量

      所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:

      但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。

      

  • 相关阅读:
    《不完美的她》开播,网友:周公子对「白帽子」有点误会吧?
    【Web安全】浅谈缓存XSS漏洞
    十分钟教你轻松掌握「移动PE导出表」,快来学习!
    干货分享丨表哥带你学习导入表及导入表注入
    「原创」萌新也能看懂的ThinkPHP3.2.3漏洞分析
    精选好文丨简析对称加密、非对称加密和混合加密
    工程师成长道路语录(转)
    在线画UML图的工具
    6种有效的开发模型(转)
    空降经理人的挑战 (原创)
  • 原文地址:https://www.cnblogs.com/Gaoqiking/p/11445830.html
Copyright © 2011-2022 走看看