按位与 字符串


布尔运算:
  运算符:
    not  and  or

布尔 非 操作 not
语法:
  not x
作用:
  对x 进行布尔取非, 如果bool(x) 为 True,则返回False,


示例:
  not True  # False
  not False # True
  not 100   # ???


  x = int(input("请输入一个整数:"))
  if not (x % 2 == 1):
     print("偶数")
  else:
     print("奇数")

布尔 与 操作 and
语法:
  x and y
  注: x , y 代表表达式
作用:
  优先返回假值False对象
  当 x的布尔值为 False时,返回x, 否则返回y


示例:
 True and True  # 返回第二个True
  True and False # 返回False
  False and True # 返回False
  False and False # 返回False(第一个False)
  
  score = int(input("请输入成绩"))  # 80
  if score >= 0 and score <= 100:
     print("成绩合法")


  x = 100 and 200   # 请问x 得多少?
  x = 0.0 and 3.14  # x = 0.0
  x = 100 and 0     # x = 0
  x = 0.0 and False # x = 0.0


布尔 或 操作 or
语法:
  x or y
作用:
  优先返回真值对象
  当x为True时返回x, 

示例:
  True or True   # 返回True(第一个True)
  True or False  # 返回True
  False or True  # 返回True
  False or False # 返回False(第二个False)


  x = 100
  y = 200
  # z = x or y
  if x:
    z = x
  else:
    z = y


思考:
  score = int(input("请输入学生成绩") or '0')
  请问这是什么意思?


正负号运算符:
  + (正号)  - (负号)


注: 一元运算符
语法:
  + 表达式
  - 表达式


示例:
  c = (2-3j)
  c2 = -c


位运算符:
  &  位与
  |  位或
  ^  位异或
  << 左移
  >> 右移
  ~  位取反


术语:
  bit (位)
  byte(字节,含有8个位)


请问,同学们家里10M宽带是指什么
  10 * 2**20  # 10M bit/s
  1K = 2**10
  1M = 2**20
  1G = 2**30
  1T = 2**40
  ...


位与运算
  &
格式:
  表达式x & 表达式y
作用:
  按位操作,都为1,则为1,


示例:
  0b1010 & 0b1100 # 等同于 10 & 12
  a = 0b1010
  b = 0b1100
  c = a & b  # c = 8


位或运算
  |
格式:
  表达式x | 表达式y
作用:
  按位操作,只要有一个为1,则为1
                    都为0时才为0

示例:
  a = 0b1010  # 10
  b = 0b1100  # 12
  c = a | b  # c = 0b1110 得14


bin(x) 函数,将x转换为二进制的字符串
   bin为 binary 的前三个字符


位异或 ^  (在键盘的6上面)
格式:
  表达式x ^ 表达式y
作用:
  按位操作,位不同,结果为1
                    相同,结果为0



示例:
   c = 0b1010 ^ 0b1100  # c = 0b0110
  


左移运算符 <<
格式:
  表达式x << 整数表达式y
作用:
  将 x的二进制值按位向左移动y位,低位补0


示例:
  0b0110 # 6
  0b0110 << 1  # 0b1100  --> 12
  0b0110 << 2  # 0b11000  --> 24
  0b0110 << 3  # 0b110000  --> 48
  x << y  # 等同于 x * 2 ** y


右移运算符
   >>
格式
  表达式x >> 整数表达式y
作用:
  将 x的二进制值按位向右移动y位, 低位溢出丢弃
示例:
  0b0110  # 6
  0b0110 >> 1  # 0b0011 (3)
  0b0110 >> 2  # 0b0001 (1)
  0b0110 >> 3  # 0b0000 (0)


按位求反
格式:
  ~ 表达式
说明:
  -1 取反 0
  0  取返 -1
负数的表示方法为补码



字符串 str
作用:
  用来记录文本信息


表示方法:
  在非注释中,凡是以引号括起来的部分都是字符串


  '    单引号
  "    双引号
  '''  三单引号
  """  三双引号


空字符串的表示方法:
  ''
  ""
  ''''''
  """"""
注: 空字符串的布尔测试值bool(x) 为False


非空字符串的表示方法:
  'hello'
  "hello"
  '''hello'''
  """hello"""


单引号和双引号的区别:
  单引号内的双引号不算结束符
  双引号内的单引号不算结束符

示例:
  print("I'm a teacher")
  print('I am a "man"')


  '''I'm a teacher, my name is "jachou"'''


三引号的字符串
  ''',""" 开头和结尾的字符串
作用:
   1. 三引号内可以包含单引号和双引号
   2. 三引号字符串中的换行会自动转换为换行符(\n)
示例:
welcome to beijing
I like python!
I am studing.


print("welcome to beijing\nI like python!\nI am studing.")
# 以上写法可以写为如下:
print('''welcome to beijing
I like python!
I am studing.''')
   
隐式字符串字面值拼接:
  >>> "I'm a superman   'I am "saiyaren"'
  'I\'m a student i am "aliverquenn"'


思考:
  当一个字符串内有' " """ ''' 这个字符串怎么表示




用转义序列代表特殊字符
  字符串中,用反斜杠(\) 后跟一些字符代表特殊的一个字符



字符串转义字符表:
   转义格式  含义
     \'    代表单个单引号
     \"    代表单个双引号
     \n    代表换行符
     \\    一个反斜杠
     \t    水平制表符(tab)
     \v    垂直制表符
     \r    返回光标至行首
     \a    响铃
     \f    换页
     \b    倒退(backspace)
     \0    空字符,字符值为零
     \xXX  XX为两位十六进制表示的字符
     \uXXXX  Unicode 16的十六进制表示的字符
     \UXXXXXXXX Unicode32 的十六进制表示的字符


ASCII编码:
  ASCII字符表:
  $ man ascii<回车>


Unicode
  'A'
  '\x41'         ASCII编码
  '\u0041'       UNICODE-16
  '\U00000041'   UNICODE-32


Python3 的解释器的内部都是用UNICODE-16存储字符串的


len(s)  返回一个字符串的字符数


练习:
  以下字符串占几个字符?
  "1234abcd"
  '\"A\x34\uABCDEFG'  7个
  '\a\bc\td\n'  6个?




raw 字符串(原始字符串)
字面值格式:
  r"字符串内容"
  r'字符串内容'
  r'''字符串内容'''
  r"""字符串内容"""


作用:
  让转义符号 \ 无效


示例:
  s = 'C:\newfile\test.py'


字符串的运算:
  +  +=  *  *=


+ 加号运算符用于拼接字符串
例:
  s1 = "ABC"
  s2 = "DEF"
  s3 = s1 + s2  # s3 = "ABCDEF"


+= 运算符用于原字符串与右侧字符串拼接,生成新字符串并改变原变量的绑定关系
  s1 = "ABC"
  s2 = "DEF"
  s1 += s2  # s1 = "ABCDEF", s2 不变


* 运算符生用生成重复的字符串
  s = "ABC" * 3  # s = "ABCABCABC"
  s = 2 * "abc"  # s = "abcabc"


*= 生成重复的字符串并改变原变量的绑定关系
  x = "123"
  x *= 4
  print(x)  # 123123123123





字符串的比较运算
  < <= > >= == !=
示例:
  "ABC" == "ABC"  # True
  "ABC" != "CBA"  # True
  "abc" == 'abc'  # True
  "ABC" < 'ABD'   # True (依靠字符编码值)
  "ADC" > 'ABC'   # True
  'ABC' < 'AB'    # False?
  "ABC" < '123'   # False
  'ABC' < 'abc'   # True


常用ASCII编码:
字符   十进制    十六进制
 '0'    48        0x30
 'A'    65        0x41
 'a'    97        0x61




in / not in 运算符
作用:
  用于序列,字典,集合中,用于判断某个值是否存在于对象中
说明:
  not in 与 in 的返回值相反
格式:
  对象 in 序列
例:
  s = "ABCDDCBA"
  'A' in s    # True
  '1' in s    # False
  "ABC" in s  # True
  "DDC" in s  # True
  'DAD' in s  # False
  "DAD" not in s # True


Python 运算符的优先级:
  **               指数(幂运算符)
  ~ + -     按位反转,正号,负号
  * / % //  
  +, -      加法, 减法
  << , >>   左移,右移
  &         位与
  ^         位异或
  |         位或
  < <= > >= == != is, is not, in, not in
  not 布尔非
  and 布尔与
  or  布尔或
  if - else  条件表达式


  
































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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值