python笔记3 - 布尔运算,位运算,字符串 str,转义序列,ASCII编码,len函数,隐式字符串拼接,in & not in 运算符

2017/9/27

布尔运算,位运算,字符串 str,转义序列,ASCII编码,len函数,隐式字符串拼接,in & not in 运算符

 

===============================================================

 

布尔运算:

运算符:not and or

 

not:逻辑取反

语法:not 表达式

实例1:

if not 0<=score<=100:

   print("您输入的不对")

实例2:

text = int(input("enter a score:"))

if text:                                   ######实际:if bool(text),if实际是对布尔返回值的判断

    print("you enter:",text)

else:

    print("you enter nothing!")

实例3记忆:

          not True                #False

          not 100                 #False

          not 1+2j                #False

          not "False"             #False!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

          not False               #True

          not 0.0                 #True

          not 0j                  #True

          not ''                  #True

          not None                #True

 

 

and运算符:优先返回值为假(False)的对象

总结:有假返回假,没有假返回最后(写程序时既可以按照现实的逻辑理解,也可以按照这个总结背诵简单理解)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

语法:

    表达式1 and 表达式2

实例:

    0 and 100       #返回0

    100 amd 200     #返回200

    100 and 0       #返回0

真值表达式:

bool(表达式1)  and   bool(表达式2)    结果的布尔测试值

      F                   F                 F

      F                   T                 F   

      T                   T                 T

      T                   F                 F

and真值表(python特别版):

  x  and  y

bool(x)    返回值

    T          y

    F          x

实例:

score = int(input("please enter a score number:"))

if score >= 0 and score <= 100:

    print("enter reasonably.")

 

 

or运算符:优先返回值为真(True)的对象

总结:有真返回真,没有真返回最后(写程序时既可以按照现实的逻辑理解,也可以按照这个总结背诵简单理解)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

语法:

    表达式1 or 表达式2

实例:

    0 and 100       #返回100

    100 amd 200     #返回100

    100 and 0       #返回100

    0   and 0.0     #返回0.0

    0.0 and 0       #返回0

实例:

score = int(input("please enter a score:"))

if score < 0 or score > 100:

    print("enter wrong!")

else:

    print("enter score:",score)

实例:

score = int(input("please enter a score:")) or "0"

if score < 0 or score > 100:

    print("enter wrong!")

else:

    print("enter score:",score)

 

===============================================================

 

正负号运算符:

+(正号) -(负号)

语法:

    +   表达式

    -   表达式

说明:一元运算符(左侧没有参数,右侧有参数,例如1+2为二元)

 

===============================================================

 

位运算:

运算符:

& 位与

    | 位或 

    ^ 位异或

<< 左移

>> 右移

    ~ 取反(二进制开头的位:1表示负数,0表示正数,仅在取反的过程中才会用到)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

hex(x)函数:将x转换为十六进制的字符串

bin(x)函数:将x转换为二进制(binary)的字符串

 

 

& 按位与:

    语法:表达式1 & 表达式2:

作用:按位操作,两个对应的位都为1,则结果为1;两个对应的位只要有一个位为0,则结果为0.

 

 

| 按位或:

    语法:表达式1 | 表达式2:

作用:按位操作,两个对应的位都为0,则结果为0;两个对应的位只要有一个位为1,则结果为1.

 

 

^ 按位异或:

    语法:表达式1 & 表达式2:

作用:按位操作,两个对应的位不同,则结果为1;两个对应的位相同,则结果为0.

 

 

<< 左移运算:

    语法:表达式x << 整数表达式y

作用:将x的二进制值,按位向左移动y位,低位补0.

实例:6 << 2 = 24      #6*2**2 = 24

      6 << 3 = 48      #6*2**3 = 48

 

 

>> 右移运算(手算时可将二进制数的末尾位丢弃,重新根据二进制值计算):

    语法:表达式x >> 整数表达式y

作用:将x的二进制值,按位向右移动y位,低位溢出丢弃.

实例:6 >> 1 = 3

      6 >> 2 = 1

      6 >> 3 = 0

      6 >> 4 = 0

 

~ 按位求反

语法:~表达式

作用:将数据的二进制相应位由0变1,由1变0(取反).

实例:

(1)~6=-7,0110,取反,1001,取反(正负不变),0110,加1,0111,为-7  (实际就是有效位取反加1,再加上符号)

(2)~-5=4,1101,0010,0011,0100,为4

 

===============================================================

 

字符串 str(string):记录文本信息(字符信息)

表示方法

  单引号''

  双引号""

  三单引号'''

  三单双引号"""

凡是用上述字符开头,相同字符结尾的表达式都为字符串

非空字符串的表达方式:

  'hello'

"hello"

  '''hello'''

"""hello"""

空字符串的表达方式:

  ''

""

  ''''''

""""""

空字符串的布尔测试值bool(x)为False!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

实例:

s = ''

if s:

    print("非空")

else:

    print("空")

>>>空  

 

单引号和双引号的区别(如果文档中包括了单引号或者双引号):

  单引号内可以包含双引号

  双引号内可以包含单引号

实例:

  s = "I'm a teacher!"

  s2 = 'My name is "Xiaoyuxiu"'

 

三引号字符串:

  以"""或'''开头的字符串,以"""或'''结尾的字符串

作用:

  可以包含单引号和双引号;

   三引号字符串中的换行会自动转换为换行符 \n

实例1:

  s = """I'm a teacher!\nMy name is "Xiaoyu""""(有bug)

  s = """I'm a teacher!\nMy name is "Xiaoyu""""(修改添加了空格)

实例2:

   s = '''I'm a teacher!          #这里使用了回车,程序打印时会自动换行

My name is "Xiaoyuxiu"'''

 

===============================================================

 

用转义序列代表特殊字符:

  字符串常量中用字符反斜杠\后跟一些字符代表特殊的含义

实例:

  \'     代表单个单引号(这是计算机认识的语言,如果一段文字中需要添加单引号,就需要这样的设置。防止和其他引号一起连用被计算机误认为用于标记一段字符串)

  \"     代表单个双引号(防止被计算机误认为去标记字符串)

  \n     代表换行

实例:

  a'b"c'd"e"f":如果想要表达这样一串字符,需要写成一下的形式,否则计算机不识别:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  s = 'a\'b"c\'d"e"f"'

 

字符串反斜杠字符串(部分是防止计算机误认为表示字符串的符号):

  \'    单引号(')

  \"    双引号(")

  \n    换行

  \a    响铃

  \\    一个反斜框(\)    (首先检测有没有存在转义功能的转义字符,如果存在,则将其转义符号修改为反斜杠符号,不再具备原来的转义功能,变成真正的“图片字符”)

  \r    返回光标至行首     (接上,我就是想写斜杠,而我又担心他会将后面的字符转义)

  \f    换页

  \t    水平制表符   (出现几个水平空格,其len()为1)

  \v    垂直制表符

  \b    倒退光标

  \0    空字符(字符的值为0)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!什么都没有

  \0oo        两位八进制表示的字符

  \xXX        两位十六进制表示的字符

  \uXXXX      Unicode 16的十六进制字符(XX第一个字节,XX第二个字节)

  \UXXXXXXXX  Unicode 32的十六进制字符

 

实例:

print("ADCD\ra")  >>>  aABCD

 

===============================================================

 

ASCII编码(每一个字符都对应一个编码号码):

调出ascii表:man ascii

实例:

  65 - A   (这里使用的是十进制)

  97 - a

  print('abcd')                 >>>abc

  print('\x61\x62\x63\x64')     >>>abcd   (这里用十六进制表示,共4个字节)

  print('\u0061\u0062')             >>>ab    Unicode16编码

  print('\U000000061\U00000062')    >>>ab    Unicode32编码

  print('\u4e2d\u6587')             >>>中文  

常用的ascii编码:

    字符        十进制        十六进制

     '0'          48            0x30

     'A'          65            0x41

     'a'          97            0x61

 

Unicode:

由于美国ascii编码只有0~127个编码,实际2**7=128

1字节可表示0~2**8-1 (0~255)

2字节可表示0~2**16-1 (0~65535)

python3中使用Unicode作用内部的编码

Unicode 16 (两字节表示):0~2**16-1(0~65535)

    'A'   0x00A1

Unicode 32 (四字节表示):0~2**32-1(约40亿)

 

===============================================================

 

len函数:

len(s):返回字符串中字符的个数('a'是一个字符,'中'是一个字符)

 

raw字符串(原始字符串)

格式:

  r'字符串内容'

  r"字符串内容"

  r'''字符串内容'''

  r"""字符串内容"""

作用:

  让转义符号\无效

 

实例1:

path = 'C:\newfile\test.py'

print(path)

print(len(path))

>>C:

ewfile est.py

16

 

 

实例2:

path = r'C:\newfile\test.py'

print(path)

print(len(path))

>>C:\newfile\test.py

18

 

===============================================================

 

隐式字符串拼接:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

x = "I'm"    'a"teacher".'    """hello!"""

>>>I'ma"teacher".hello!

 

 

字符串的运算:

+  +=  *  *=  >>=  <<=  == !=

+加号运算符:拼接字符串

实例:

x = "abcd"

y = "efg"

z = x + y

>>>abcdefg

 

+=:原字符串与右侧字符串拼接生成新的字符串关联到原变量

实例:

x = "abcd"

y = "efg"

x += y       #x = x + y

 

*:生成重复的字符串

格式:字符串 * 整型表达式

实例:x = "abcd" * 3

 

*=:生成重复是字符串并改变变量的绑定(关联)关系

实例:

x = "123"

x *= 3

print(x)

>>>123123123

 

字符串的比较(从左向右比,只要分出胜负就结束比较):!!!!!!!!!!!! 

>>=  <<=  ==  !=

实例:

  'A' < 'B'          #True  0x41<0x42

  'ABC' < 'ABB'      #False   按位比,前面AB相同,只好再比较C

  'ADC' < 'ABC'      #False

  'AD' < 'ABC'       #False

  'AB' < 'ABC'       #True

  'abc' == 'ABC'     #False

  'abcd' != 'dsff'   #True

 

===============================================================

 

in & not in 运算符

作用:

    in 用于序列,字典,集合中,用于判断某个值是否存在于对象中(in是二元运算符)

    not in的返回值与in相反

实例:

x = "welcome to tarena!"

if 'to' in x:

    print("'to'在字符串中")

>>>'to'在字符串中

 

 

python运算符的优先级:

 运算符                          描述

  **                              指数(最高优先级)

  ~+-     位反转,一元加号(正号)一元减号(负号)取反,正数,负数

 */ // %                         乘,除,地板除,求余

 +-                              加,减

<<>>                           左移,右移

&  |                            位与,位或

  ^                               位异或

<<= >>=                       小于,小于等于,大于,大于等于

 == !=                           等于,不等于

= %= /= //= -= += *= **=        复合赋值运算符

      is,is not              身份运算符 #is,is not表示判断两个对象是否绑定在同一个对象上(绑定关系,而非赋值关系)

 in,not in                       成员运算符

 not,or,and                      逻辑运算符

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值