首页 > 编程语言 >python逻辑运算符与流程控制

python逻辑运算符与流程控制

时间:2023-08-28 19:22:25浏览次数:42  
标签:python 流程 jerry 运算符 tony name1 print kevin

Python的基础逻辑运算

内容概要

  1. 算数运算符
  2. 比较运算符
  3. 赋值运算符
  4. 逻辑运算符
  5. 成员运算符
  6. 身份运算符

流程控制

if else 

算术运算符

算数运算1.png

代码演示
a = 21
b = 10
c = 0

c = a + b
print ("1 - c 的值为:", c)

c = a - b
print ("2 - c 的值为:", c)

c = a * b
print ("3 - c 的值为:", c)

c = a / b
print ("4 - c 的值为:", c)

c = a % b
print ("5 - c 的值为:", c)

# 修改变量 a 、b 、c
a = 2
b = 3
c = a**b
print ("6 - c 的值为:", c)

a = 10
b = 5
c = a//b
print ("7 - c 的值为:", c)

1 - c 的值为: 31
2 - c 的值为: 11
3 - c 的值为: 210
4 - c 的值为: 2.1
5 - c 的值为: 1
6 - c 的值为: 8
7 - c 的值为: 2

比较运算符

比较运算符.png

比较运算符比较数据类型,也比较数据值

赋值运算符

赋值运算符.png

python语法中除了有=号这种简单的赋值运算外,还支持增量赋值、链式赋值、交叉赋值、解压赋值,这些赋值运算符存在的意义都是为了让我们的代码看起来更加精简

name = 'kevin'

3.1 增量赋值
#### 取模赋值运算符
# a = 20
# b = 3
# # a = a % b # a %= b ====> a = a % b
# a %= b # a = a % b
# print(a)

# c = 2
# d = 3
# c **= d # c = c ** d c = 2 ** 3
# print(c)

e = 10
f = 3
# e = e // f

e //= f
print(e)

3.2 链式赋值
如果我们想把同一个值同时赋值给多个变量名
# x = 666
# y = 666
# z = 666

x = y = z = <span class="hljs-number">666</span>
<span class="hljs-built_in">print</span>(x, y, z)

3.3 交叉赋值
3.4 解压赋值(重点)
### 解压赋值
# name1, name2, name3, name4 = names_list
# name1, name2, name3, name4 = ['kevin', 'jerry', 'tony', 'tank']
# name1, name2, name3, name4 = ['kevin', 'jerry', 'tony', 'tank', 'oscar'] # too many values to unpack (expected 4)
# name1, name2, name3, name4 = ['kevin', 'jerry', 'tony'] # not enough values to unpack (expected 4, got 3)
# name1, name2, name3, name4 , name5 = ['kevin', 'jerry', 'tony', 'tank', 'oscar'] # not enough values to unpack (expected 4, got 3)
"""数据量一定要匹配,多一个不行,少一个也不行"""
# print(name1, name2, name3, name4) # kevin jerry tony tank
# print(name1, name2, name3) # kevin jerry tony tank

# name1, name2, name3, name4,name1, name2, name3, name4,name1, name2, name3, name4,name1, name2, name3, name4, = ['kevin', 'jerry', 'tony', 'tank','kevin', 'jerry', 'tony', 'tank','kevin', 'jerry', 'tony', 'tank','kevin', 'jerry', 'tony', 'tank','kevin', 'jerry', 'tony', 'tank']
# name1, *, name4, = ['kevin', 'jerry', 'tony', 'tank','kevin', 'jerry']
# name1, *
, name4, = ['kevin', 'jerry', 'tony', 'tank','kevin', 'jerry', 'a', 'b', 'c']
# name1, *, name4, name5 = ['kevin', 'jerry', 'tony', 'tank','kevin', 'jerry', 'a', 'b', 'c']
# name1, *
, name4, name5, name6 = ['kevin', 'jerry', 'tony', 'tank','kevin', 'jerry', 'a', 'b', 'c']
# name1, name2, *, name4, name5, name6 = ['kevin', 'jerry', 'tony', 'tank','kevin', 'jerry', 'a', 'b', 'c']
# name1, *
, name4, name5, name6 = ['kevin', 'jerry', 'tony', 'tank','kevin', 'jerry', 'a', 'b', 'c']
name1, *a, name5, name6 = ['kevin', 'jerry', 'tony', 'tank','kevin', 'jerry', 'a', 'b', 'c']

"""
a:把列表里面没有变量赋予的值都交给后面的变量命名并且以列表的形式返回
"""
# print(name1, name2, name4, name5,name6) # kevin b c
print(a) # ['tony', 'tank', 'kevin', 'jerry']
print(a[1])

python3.8 海象运算符
介绍:Python 海象运算符是在 PEP 572 中提出,并在 Python3.8 版本并入发布。

海象运算符的英文原名叫 Assignment Expresions ,即 赋值表达式。海象表达式由一个 : 和 一个 = 组成,即::= 。我们一般称作 walrus operator(海象运算符),因为它看起来就是一个海象旋转 90° 而成。
        
        
语法:(variable_name := expression or value)即一个变量名后跟一个表达式或者一个值,这个和赋值运算符 = 类似,可以看作是一种新的赋值运算符。

用法: 用于 if-else 条件表达式一般写法:           a = 15
if a > 10:
    print('hello, walrus operator!')
################

海象运算符:                                                      
    if a := 15 > 10:
    print('hello, walrus operator!')
用于 while 循环:n 次循环的一般写法:           
n = 5
while n:
    print('hello, walrus operator!')
    n -= 1
 ##########################



海象运算符:
n = 5
while (n := n - 1) + 1: 
# 需要加1是因为执行输出前n就减1了
print('hello, walrus operator!')
··························
#实现一个密码输入检验的一般写法:          
while True:
    psw = input("请输入密码:")
    if psw == "123":
        break
###############

海象运算符:                                   while (psw := input("请输入密码:")) != "123":
    continue
...........................
读取一个文件的每一行并输出:                       
fp = open("test.txt", "r")
while True:
    line = fp.readline()
    if not line:
        break
    print(line.strip())
fp.close()
#############
海象运算符:                                                    
fp = open("test.txt", "r")
while line := fp.readline():
    print(line.strip())
 .........................
用于列表推导式:计算元素平方根,并保留平方根大于 5 的值:                                               
nums = [16, 36, 49, 64]
def f(x):
    print('运行了函数f(x)1次。')
    return x ** 0.5
print([f(i) for i in nums if f(i) > 5])
####################3
海象运算符:                                                  
nums = [16, 36, 49, 64]
def f(x):
    print('运行了函数f(x)1次。')
    return x ** 0.5
print([n for i in nums if (n := f(i)) > 5])

逻辑运算符

逻辑运算符.png

关键字: and or not (连接多个值)
and:与---------->and两边的值必须都是True的时候,整体结果才是True
or: 或者---------->or两边的值只要有一个是真,整体结果就是真
not: 非,取反-------->not取反

a=10
b=20
print(a and b)#a 和 b 都为 true a 和 b 有一个不为 true
print(a and b)#a 和 b 都为 true,或其中一个变量为 true
#a 和 b 都不为 true

成员运算符

成员运算符.png

关键字:in(在)  not in(不在)
    eg:
        names_list = ['kevin', 'tony', 'tank', 'jerry']
        # 判断jerry这个人在不在列表中
        print('jerry' in names_list)
    # print('jer1' in 'jerry') # True False
d = {<span class="hljs-string">'username'</span>:<span class="hljs-string">'kevin'</span>, <span class="hljs-string">'age'</span>:<span class="hljs-number">18</span>}

<span class="hljs-string">'''如果是字典,判断的是字典的key值,字典暴露给外界是key'''</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">'kevin'</span> <span class="hljs-keyword">in</span> d) <span class="hljs-comment"># False</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">'username'</span> <span class="hljs-keyword">in</span> d) <span class="hljs-comment"># True</span>
<span class="hljs-built_in">print</span>(<span class="hljs-string">'age'</span> <span class="hljs-keyword">in</span> d) 

身份运算符

身份运算符.png

关键字:is(比较的是内存地址,id值) ==(比较值的)
    ############身份运算
    # s1 = 'hello'
    s1 = [1, 2, 3, 4,]
    # s2 = 'hello'
    s2 = [1, 2, 3, 4,]
    print(s1 == s2)
    print(s1 is s2) # False
<span class="hljs-string">"""值相等的,内存地址不一定相等"""</span>
<span class="hljs-string">"""内存地址相等的,值一定相等"""</span>


is和 == 的区别
a=[12,3]
b=a
print(b is a)
True
b=a[:]
print(b is a)
False
print(b == a)
Ture                               

流程控制(if)

1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。

# 控制事物的执行流程
	执行流程总共有三种:
    	1. 顺序结构
        	# 我们之前写的代码执行顺序就是一种顺序结构,按照顺序一一执行
        2. 分支结构
        	# 就是按照条件的成功与否,决定执行哪个分支.
        3. 循环结构
        	# 重复执行某一个流程
注意事项:
	1. 所有的条件都会转为布尔值进行判断
    2. 在Python中,我们使用缩进来表示代码的从属关系
    	# 一般我们使用四个空格来表示一个缩进
    3. 不是所有的代码都有从属关系
    4. 同属于一个代码块的子代码块缩进量要保持一致
小技巧:如果上面一行代码的结尾是冒号:那么,下一行必缩进

1. 分支结构
关键字:if elif else

# 单分支
"""
语法格式:
if 条件:
条件成立之后要执行的代码块
"""
age = 18 # 如果年龄小于26,称之为是小姐姐

# 双分支
"""
语法格式:
if 条件:
条件成立之后执行的代码块
else:
条件不成立执行的代码块
"""
if age < 26:
print('小姐姐好')
else:
print('不好意思,认错人了')

"""双分支结构必然会走一个分支"""

分支结构里面支持写多个条件
age = 20
height = 165
weight = 100
is_beautiful = False
if age < 26 and height >= 165 and weight <= 100 and is_beautiful:
print('小姐姐好看')
else:
print('......')

# 多分支
"""
语法格式:
if 条件1:
条件1成立之后执行的代码块
elif 条件2:
条件1不成立条件2成立执行的代码块
elif 条件3:
条件1、2不成立,条件3成立执行的代码块
elif 条件4:
条件1、2、3不成立,条件4成立执行的代码块
else:
以上条件都不成立执行的代码块
"""
"""
作业:

猜年龄游戏

while True:
age = 28
guess_age = input('请输入你的年龄:').strip()
if guess_age>'28':
print('猜大了')
elif guess_age<'28':
print('猜小了')
else:
print('猜对了')
break
"""

标签:python,流程,jerry,运算符,tony,name1,print,kevin
From: https://www.cnblogs.com/wolongnp/p/17663206.html

相关文章

  • python request session
    python request session try:#verify参数来解决ssl报错问题request_result=self.request_sess.post(url,data,verify=False)print(request_result)exceptExceptionase3:print("数据提交失败,异常信息{str(e3)}")     ######......
  • Python Tornado实现WebSocket通讯
    以下实例有点像广播通讯,支持多个客户端连接代码参考别人的,稍微做了一点点修改服务器端websocket_demo.py #-*-coding:utf-8-*-from__future__importunicode_literals,print_functionfromdatetimeimportdatetimeimportosimporttornadofromtornado.opti......
  • python3.8以及更高版本 编译pcl
    github https://github.com/strawlab/python-pcl1.安装Cython当前的Cython的版本如下 由于python-pcl代码仓已经是很老的代码了,没有人在维护,高版本的Cython会导致编译失败报错如下Cython.Compiler.Errors.CompileError:pcl/_pcl_180.pyx 使用Cython==0.29版本即可解决......
  • Python分享之redis(3)
    3、List操作redis中的List在在内存中按照一个name对应一个List来存储lpush(name,values)#在name对应的list中添加元素,每个新的元素都添加到列表的最左边r.lpush("list_name",2)r.lpush("list_name",3,4,5)#保存在列表中的顺序为5,4,3,2rpush(name,values)#同lpush,但每个新的元素......
  • 流程、规范、制度三者之间的差异
    流程、规范和制度是组织内部管理和运作的重要概念,它们虽然有些相似,但在含义和应用上有一些区别。 1、流程(Process):流程是指按照一定的步骤和顺序执行任务的方法。它关注的是操作的顺序和流程,旨在提高工作效率并确保任务按照一定的步骤完成。2、规范(Standard):规范是指制定的准......
  • Python查询Prometheus API
     #!/bin/python#-*-coding:utf-8-*-importpandasaspdimportrequests,time,redefgetcolumn(status):iffloat(status)<80:return"正常"#eliffloat(status)<2:#return"异常"else:......
  • Python5day
    今日内容概要基本运算符算术比较赋值逻辑成员身份流程控制(重要)——if  else elifwhile for等基本运算符:1.取模运算——又叫取余运算% 2.比较运算 == !=比较运算符及比较数据类型,又比较数据值3.赋值运算符  =python语法中除了有=号这种简单的赋值运算外,还支......
  • 实用指令_大数据shell_流程控制_if
    流程控制if判断if判断基本语法if[条件判断];then 程序fi##或者if[条件判断] then 程序elif[条件判断]then程序fi注意事项:1)[条件判断式]中括号和条件判断示之间必须有空格2)推荐使用第二种方式应用实例案例:请写出一个shell程序,如果输......
  • Windows环境下部署Python
    登录Python网站下载想要安装的版本并下载 下载完成后双击运行 点击installnow,等待安装进度条结束  此时Python已经安装完成,点击close即可。打开cmd,输入Python检验 发现并未正常进入Python,并弹出微软商店Python安装界面。查看win菜单,发现有Python安装后的启动程序......
  • python+playwright 学习-78 获取浏览器cookies
    前言playwright操作浏览器上的页面后,后续如果想结合其他的框架操作接口(如:requests),可以直接获取到浏览器的cookies。context.cookies()获取浏览器cookies使用示例fromplaywright.sync_apiimportsync_playwright,expectwithsync_playwright()asp:browser=......