Python入门笔记(五)

人生苦短 我用Python


位运算符(了解)

位运算是把数字看作二进制数来进行计算的,所以需要先将要执行运算的数据转换为二进制,然后才能进行执行运算

  • “位与”运算(&)
    • 两个操作数据的二进制表示,只有对应数位都是1时,结果数位才是1,否则为0
1
print(12&8)  # 输出结果为“8”
  • “位或”运算(|)
    • 两个操作数的二进制表示,只有对应数位都是0时,结果数位才是0,否则为1
1
print(8|4)  # 输出结果为“12”
  • “位异或”运算(^)
    • 两个操作数据的二进制相同(同时为0或同时为1),结果为零,否则为1
1
print(31^22)  # 结果为“9”
  • “位取反”运算(~)
    • 操作数据中对应的二进制数1修改为0,0修改为1
1
print(~123)  # 结果为“-124”
  • “左移位”运算(<<)
    • 将一个二进制数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充
    • 左移位运算相当于乘以2的N次幂
1
2
print(2<<2)  # 将2向左移动2位 得8
print(2<<3) # 将2向左移动3位 得16
  • “右移位”运算(>>)
    • 将一个二进制数向右移动指定的位数,右边(低位端)溢出的位被丢弃左边(高位端)的空位端,如果最高位是O(正数)左侧空位填0,如果最高位是1(负数),左侧空位填1
    • 右移位运算相当于除以2的N次幂
1
2
print(8>>2)  # 将8右移2位 得2
print(-8>>2) # 将-8右移2位 得-2

运算符的优先级

运算符 说明
**
~、+、- 取反、正号和负号
*、/、%、// 算术运算符
| +、- 算术运算符
<<、>> 为运算符中左移和右移
& 位运算符中的位与
^ 位运算符中的异或
| 位运算符中的位或
<、<=、>、>=、!=、== 比较运算符

程序的描述方式

自然语言:
使用人类语言,直接描述程序,比如:IPO描述

流程图:
是最直观易懂的表达方式,主要适用于较短的算法

伪代码:
介于自然语言和编程语言之间的一种算法描述语言

程序的组织结构

顺序结构:
按照程序语句的自然顺序,从上到下,依次执行每条语句的程序

选择结构:
按照条件选择执行不同的代码段

循环结构:
在一定的条件下反复执行某段程序的流程结构

顺序结构

顺序结构是程序中最基础的语句,赋值语句、输入/输出语句、模块导入语句等都是顺序结构的语句

赋值类别 细化分类 示例 注意
增强赋值运算 增强赋值运算 i+=1 相当于i=i+1
序列分解赋值 元组分解赋值 name,age=’Paneer’,20
列表分解赋值 [name,age]=[‘Paneer’,20]
字符串分解赋值 a,b,c,d=’room’ r、o、o、m四个字符分别赋值给a、b、c、d
扩展序列解包 *号匹配赋值 a,*b=’room’ r赋值a,剩下的o、o、m赋值给b

常用的条件语句

if语句

语法结构:

if 表达式:
    语句块

汉语关联词:
如果…就…

执行顺序:
如果表达式的值为True,就执行语句块
如果表达式的值为False,就跳过语句块,继续执行后面的语句

1
2
3
4
5
num = 98
if n%2:
print(n,'为偶数')
if not n%2:
print(n,'为奇数')

if语句若语句块只有一句代码,可以将语句块直接写在冒号后面

if…else…语句

语法结构为:

if 表达式:
    语句块1
else:
    语句块2

汉语关联词:
如果…否则…

执行顺序:
如果表达式值为True,执行语句1,否则执行语句2

1
2
3
4
5
6
7
8
number=eval(input('请输入您的六位彩票号码'))
if number=876543:
print('恭喜!中奖了')
else:
print('很遗憾,没有中奖')
# 以上代码可用条件表达式简化:
number=eval(input('请输入您的六位彩票号码'))
print('恭喜!中奖了' if number==876543 else '很遗憾,没有中奖')

if…elif…else语句

语法结构:

if 表达式1:
    语句块1
elif 表达式2:
    语句块2
    ...
elif 表达式n:
    语句块n
else:
    语句块n+1

示例为:

1
2
3
4
5
6
7
8
9
10
11
12
13
score=eval(input('请输入您的成绩:'))
if score<0 or score>100:
print('ERROR')
elif 0<=score<60:
print('E')
elif 60<score<=70:
print('D')
elif 70<score<=80:
print('C')
elif 80<score<=90:
print('B')
else:
print("A")

if语句的嵌套

  • 形式1

    if 表达式1:
        if 表达式2:
            语句块1
        else:
            语句块2
    
  • 形式2

    if 表达式1:
        if 表达式2:
            语句块1
        else:
            语句块2
    else:
        if 表达式3:
            语句块3
        else:
            语句块4