python笔记4_运算符和判断

行与缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号({})。

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

实例如下:

if True:
        print("True")
else:
        print("False")

以下代码最后一行语句缩进数的空格数不一致,会导致运行错误:

if True:
   print("Answer")
   print("True")
else:
   print("Answer")
 print("False")   #缩进不一致,会导致运行错误

以上程序由于缩进不一致,执行后会出现类似以下错误:

File"test.py", line 6
   print("False")   #缩进不一致,会导致运行错误
                                     ^
IndentationError: unindent does not match any outer indentation level
程序编写的步骤
  • 1、分析问题:分析问题的计算部分
  • 2、确定问题:将计算部分划分为确定的IPO三部分
  • 3、设计算法:完成计算部分的核心方法
  • 4、编写程序:实现整个程序
  • 5、调试测试:使程序在各种情况下都能正确运行
  • 6、升级维护:使程序长期正确运行,适应需求的微小变化
什么是运算符?
举个简单的例子 4 +5 = 9 。例子中,4 和 5 被称为操作数,"+"称为运算符。

Python语言支持以下类型的运算符:

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 运算符优先级

接下来让我们一个个来学习Python的运算符。

以下假设变量a为10,变量b为21:


运算符 描述 实例
+ 加 - 两个对象相加 a + b 输出结果 31
- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -11
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 210
/ 除 - x 除以 y b / a 输出结果 2.1
% 取模 - 返回除法的余数 b % a 输出结果 1
** 幂 - 返回x的y次幂 a**b 为10的21次方
// 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0


Python比较运算符

以下假设变量a为10,变量b为20:


运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 true。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。

 

Python比较运算符

以下假设变量a为10,变量b为20:


运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
 
 

Python比较运算符

以下假设变量a为10,变量b为20:


运算符 逻辑表达式 描述 实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

以上实例输出结果:

a=10
b=20
if( aand b):
  print("1 -变量 a和 b都为 true")
else:
  print("1 -变量 a和 b有一个不为 true")
if( aor b):
  print("2 -变量 a和 b都为 true,或其中一个变量为 true")
else:
  print("2 -变量 a和 b都不为 true")
#修改变量 a的值
a=0
if( aand b):
  print("3 -变量 a和 b都为 true")
else:
  print("3 -变量 a和 b有一个不为 true")
if( aor b):
  print("4 -变量 a和 b都为 true,或其中一个变量为 true")
else:
  print("4 -变量 a和 b都不为 true")
if not( a and b):
  print("5 -变量 a和 b都为 false,或其中一个变量为 false")
else:
  print("5 -变量 a和 b都为 true")

以上实例输出结果:

1-变量 a和 b都为true
2-变量 a和 b都为true,或其中一个变量为true
3-变量 a和 b有一个不为true
4-变量 a和 b都为true,或其中一个变量为true
5-变量 a和 b都为false,或其中一个变量为false

Python成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。


运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

以下实例演示了Python所有成员运算符的操作:

a=10
b=20
list= [1,2,3,4,5];
if( ain list):
  print("1 -变量 a在给定的列表中 list中")
else:
  print("1 -变量 a不在给定的列表中 list中")
if( bnot in list):
  print("2 -变量 b不在给定的列表中 list中")
else:
  print("2 -变量 b在给定的列表中 list中")
#修改变量 a的值
a=2
if( ain list):
  print("3 -变量 a在给定的列表中 list中")
else:
  print("3 -变量 a不在给定的列表中 list中")

以上实例输出结果:

1-变量 a不在给定的列表中 list2-变量 b不在给定的列表中 list3-变量 a在给定的列表中 list

Python身份运算符

身份运算符用于比较两个对象的存储单元


运算符 描述 实例
is is是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not is not是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1

以下实例演示了Python所有身份运算符的操作:

#!/usr/bin/python3
a=20
b=20
if( ais b):
  print("1 - a和 b有相同的标识")
else:
  print("1 - a和 b没有相同的标识")
if( id(a) == id(b) ):
  print("2 - a和 b有相同的标识")
else:
  print("2 - a和 b没有相同的标识")
#修改变量 b的值
b=30
if( ais b):
  print("3 - a和 b有相同的标识")
else:
  print("3 - a和 b没有相同的标识")
if( ais not b):
  print("4 - a和 b没有相同的标识")
else:
  print("4 - a和 b有相同的标识")

以上实例输出结果:

1- a和 b有相同的标识
2- a和 b有相同的标识
3- a和 b没有相同的标识
4- a和 b没有相同的标识

Python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符

以下实例演示了Python所有运算符优先级的操作:

#!/usr/bin/python3
a=20
b=10
c=15
d=5
e=0
e= (a+ b) * c/ d      #( 30 * 15 ) / 5
print("(a + b) * c / d运算结果为:",  e)
e= ((a+ b) * c) / d     # (30 * 15 ) / 5
print("((a + b) * c) / d运算结果为:",  e)
e= (a+ b) * (c/ d);   # (30) * (15/5)
print("(a + b) * (c / d)运算结果为:",  e)
e= a+ (b* c) / d;     #  20 + (150/5)
print("a + (b * c) / d运算结果为:",  e)

以上实例输出结果:

(a+ b) * c/ d运算结果为:90.0
((a+ b) * c) / d 运算结果为:90.0
(a+ b) * (c/ d)运算结果为:90.0
a+ (b* c) / d运算结果为:50.0

 
 
=========================== 分隔符 =====================================
=========================== 分隔符 =====================================
 

判断语句介绍

<1> 比较(即关系)运算符

python中的比较运算符如下表:


  描述 示例
== 检查两个操作数的值是否相等,如果是则条件变为真。 如a=3,b=3则(a == b) 为 true.
!= 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 如a=1,b=3则(a != b) 为 true.
> 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 如a=7,b=3则(a > b) 为 true.
< 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 如a=7,b=3则(a < b) 为 false.
>= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 如a=3,b=3则(a >= b) 为 true.
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 如a=3,b=3则(a <= b) 为 true.
 
<2> 逻辑运算符
运算符 逻辑表达式 描述 实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False


Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。

可以通过下图来简单了解条件语句的执行过程:

if语句

Python中if语句的一般形式如下所示:


if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

  • 如果 "condition_1"为 True将执行 "statement_block_1"块语句
  • 如果 "condition_1"为False,将判断 "condition_2"
  • 如果"condition_2"为 True将执行 "statement_block_2"块语句
  • 如果 "condition_2"为False,将执行"statement_block_3"块语句

Python中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else。

注意:
  • 1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块。
  • 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。
  • 3、在Python中没有switch – case语句

以下是一个简单的 if实例:

#!/usr/bin/python3
var1=100
if var1:
  print("1 - if表达式条件为 true")
  print(var1)
var2=0
if var2:
  print("2 - if表达式条件为 true")
  print(var2)
print("Good bye!")

执行以上代码,输出结果为:

1-if表达式条件为true
100
Good bye!

从结果可以看到由于变量 var2为 0,所以对应的 if 内的语句没有执行。

以下实例演示了狗的年龄计算判断:

#!/usr/bin/python3
age=int(input("请输入你家狗狗的年龄: "))
print("")
if age <0:
        print("你是在逗我吧!")
elif age ==1:
        print("相当于 14 岁的人。")
elif age ==2:
        print("相当于 22 岁的人。")
elif age >2:
        human=22+ (age-2)*5
        print("对应人类年龄: ", human)
###退出提示
input("点击 enter 键退出")

将以上脚本保存在dog.py文件中,并执行该脚本:

$ python3 dog.py
请输入你家狗狗的年龄:1
相当于14岁的人。
点击 enter键退出

以下为if中常用的操作运算符:

操作符 描述
< 小于
<= 小于或等于
> 大于
>= 大于或等于
== 等于,比较对象是否相等
!= 不等于

实例

#!/usr/bin/python3
#程序演示了 ==操作符
#使用数字
print(5==6)
#使用变量
x=5
y=8
print(x== y)

以上实例输出结果:

False
False

if嵌套

在嵌套 if语句中,可以把 if...elif...else结构放在另外一个 if...elif...else结构中。

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

实例

# !/usr/bin/python3
num=int(input("输入一个数字:"))
if num%2==0:
   if num%3==0:
       print("你输入的数字可以整除 2 和 3")
   else:
       print("你输入的数字可以整除 2,但不能整除 3")
else:
   if num%3==0:
       print("你输入的数字可以整除 3,但不能整除 2")
   else:
       print ("你输入的数字不能整除 2 和 3")

将以上程序保存到 test_if.py文件中,执行后输出结果为:

$ python3 test.py
输入一个数字:6
你输入的数字可以整除23
import random
player = input('请输入:剪刀(0)  石头(1)  布(2):')
player = int(player)
computer = random.randint(0,2)
# 用来进行测试
   #print('player=%d,computer=%d',(player,computer))
if ((player ==0)and (computer ==2))or ((player ==1)and (computer ==0))or ((player ==2)and (computer ==1)):
        print('获胜,哈哈,你太厉害了')
   elif player == computer:
        print('平局,要不再来一局')
   else:
        print('输了,不要走,洗洗手接着来,决战到天亮')
 
 

Python比较运算符

以下假设变量a为10,变量b为20:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值