热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

运算符和流程控制

运算符和流程控制运算符运算符之逻辑运算符and是(都要满足)or与(满足一个即可)not非(与原本相反)1.and链接的多个条件必须都满足时,结果才会成立,输出的布尔值为True2

文章目录[隐藏]

  • 运算符和流程控制
    • 运算符
      • 运算符之逻辑运算符
      • 运算符之成员运算符
      • 运算符之身份运算符
    • 流程控制
      • 流程控制理论
      • 储备知识
      • 1.顺序结构
      • 2.分支结构
    • 作业


运算符和流程控制

运算符

运算符之逻辑运算符

and         是(都要满足)
or          与(满足一个即可)
not         非(与原本相反)

1.and链接的多个条件必须都满足时,结果才会成立,输出的布尔值为True

2.or链接的多个条件满足任意一个时,结果才会成立,输出的布尔值为True

3.not链接的多个条件只要与原本意思相反便可成立,即对就是错错就是对

and:
	# 判断下列输出的是True还是False
	a = 1 == 2 and 3 > 2 and 1
		print(a)  # False 1不等于2是显然的所以直接输出False
	b = 9 > 8 and 8 and 1 == 1
	print(b)  # True  9是大于8并且数字8所输出的布尔值是True并且1是等于1输出True
    '''and所链接的条件只要有一个不成立那么最后的结果不成立(错误),反之就是成立的(正确)。一假则假,全真则真'''
    
or:
	# 判断下列输出的是True还是False
	a = 1 != 2 or 2 == 1 or False or 3 <1
	print(a)  # True  1不等于2是对的,所以输出的True
	b = 1 == 3 or False or 6 > 7
	print(b)  # False  1不等于2,False输出的就是False,6是小于7,所以输出False
    '''or所链接的条件只要有一个是成立的那么最后的结果成立(正确),反之就是不成立的(错误)。一真则真,全假则假'''
    
not:
	# 判断下列输出的是True还是False
	print(not False)  # True  不是错的那就是对的,输出True
	print(not True)  # False  不是对的那么就是错的,输出False
    '''not所链接的条件都是与原条件相反的'''

复合链接(混合使用)
三者混合使用时是具有优先级的,() > not > and > or
	a = 2 == 1 and 3 > 8 or 0 and 'x' == 'x' or 2 == 2  # 不合理的编写方式
	a = (2 == 1 and 3 > 8) or (0 and 'x' == 'x') or 2 == 2  
	print(a)   # True 优先判断号里的条件是否成立,再分开判断

运算符之成员运算符

in         是否包含某条件,输出正确为True反之为False
not in     是否不包括某条件,输出正确为True反之为False
a = ['apple', 'banana', 'orange']
print('apple' in a)  # True 只能取整个数据值
print('a' in a)  # False  不能取数据值的部分
print('app' in a)  # False 不能取数据值的部分
b = ['apple', 'banana', 'orange']
print('apple' not in b)  # False 苹果在列表里
print('watermelon' not in b)  # True 西瓜本就不在列表里
print('ap' not in b)  # True 列表里没有'ap'
'''列表在做成员运算时,是以数据值整体为最小单位,不能进行拆分和整合'''

a = 'We want to see sea!'
print('We' in a)  # True
print('W' in a)  # True
print('We want to' in a)  # True
'''字符串在做成员运算时,是以单个字节为最小单位,可输入多个字节'''

a = {'name': 'orange', 'age': 18, 'gender': 'female'}
print('name' in a)  # True 按K判断条件是否成立
print('orange' in a)  # False 不能按V判断条件是否成立,隐私性保护
print(18 in a)  # False 不能按V判断条件是否成立,隐私性保护
print({'name': 'orange'} in a)  # unhashable type: 'dict' 不能使用字典
# print('age': 18 in a)  # 直接报错
'''字典在做成员运算时,是以K值整体为最小单位,不能使用K:V键值对也不能使用V值查询'''

运算符之身份运算符

is          判断两个变量引用的对象是否为同一个,即内存地址是否相同
==          判断引用变量的值是否相等,内存地址无所谓
id()	    用于查看内存地址,返回一堆数字
a = [111, 222, 333, 444, 555, 666]
b = [111, 222, 333, 444, 555, 666]
print(a is b)  # False is判断的是内存地址是否相同
print(a == b)  # True ==判断的是值是否相同
print(id(a))  # 1395772501896
print(id(b))  # 1395772501832
'''值相等内存地址可能不等,内存地址相同,值肯定相同(单次程序)'''

c = 1234567890987654321
d = 1234567890987654321
print(c is d)  # True 内存地址相同,因为pycharm实现int的时候有个小正数池
print(c == d)  # True 值是相同的
print(id(c))  # 3111225966384
print(id(d))  # 3111225966384
'''pycharm实现int的时候有个小正数池,为了性能上的优化使用小正数池,复用出现较多相同的整数。但是使用解释器运行内存地址是不同的'''

流程控制

流程控制理论

程序中的语句默认是自上而下的顺序执行。流程控制是指程序在程序执行时通过特地的指令更改程序中语句的执行顺序。事物的执行流程分为三种:顺讯结构、分支结构、循环结构。

储备知识

1.python中的代码缩进是表示代码之间的从属关系(亲属关系),缩进的代码是否执行取决于上层有没有缩进的父代码,父代码结尾有冒号。

2.缩进量没有要求,只要缩进即可为了美观一般推荐四个空格。

3.并不是所有的代码都可以拥有子代码,if、else、elif关键字有子代码,但是else和elif不能单独使用。

4.同属于一个父代码的多行子代码的缩进量必须是相同的,若代码缩进了那么就向上找缩进量比它小的代码作为父代码,这父代码可以拥有子代码那么没有问题否则直接报错。

5.相同缩进量的代码之间没有主次之分即没有从属关系都是按照顺序依次执行。

1.顺序结构

通常情况下程序都是自上而下的顺序执行,这就是顺序结构。我们最初的学习就是用到顺序结构。

a = 111111
b = 222222
c = 333333
print(a)  # 111111
print(c)  # 333333
print(b)  # 222222


c4

2.分支结构

分支结构和顺序结构有所不同,它需要根据某些特定的条件作出判断再执行不同的流程代码。

if...
if...else...
if...elif...else...
1.单if分支
    if 条件:
    	条件成立执行的代码块(子代码)
        # 条件可以是布尔值也可以是表达式
        # 判断的条件可是一个也可是多个由逻辑运算连接起的条件

        # 定义一个人的年龄为age判断这个人是否成年
        age = input('请输入您的年龄:')  # 定义变量age,输入数字
        age = int(age)  # input输入的都是字符串类型所以需要类型转换
        if age > 18:  # 判断age是否大于18
        print('你已经是一个大人了!')  # 若输入的数字大于18则打印输出
    
    
    嵌套:
    	# 定义一个人的年龄为age判断这个人是否成年
        age = input('请输入您的年龄:')  # 定义变量age,输入数字
        age = int(age)  # input输入的都是字符串类型所以需要类型转换
        if age > 18:  # 判断age是否大于18
            print('你已经是一个大人了!')  # 若输入的数字大于18则打印输出
            if age <30:  # 判断age是否小于30
                print('你是小朋友!')  # 若输入的数字小于30则打印输出


c4

2.if...else...分支
	if 条件:
		条件成立执行的代码块(子代码)
    esle:
    	条件不成立执行的代码块(子代码)
    # 条件可以是布尔值也可以是表达式
    # 判断的条件可是一个也可是多个由逻辑运算连接起的条件
    
    # 判断用户登录
    name = input('请输入您的用户名:')  # 定义变量name,输入字符串
    pwd = input('请输入您的密码:')  # 定义变量pwd,输入字符串
    if name == 'orange' and pwd == '123':  # 判断name和pwd对于的值是否相等  注意不同的数据类型之间无法做比较
        print('登录成功!')  # 若输入的数字大于18则打印输出
    else:
        print('登录失败!')  # 若输入的数字小于18则打印输出
 '''注意python中不同的数据类型不能直接做比较'''
  • if...else...


c4

  • 嵌套


c4

3.if...elif...else...分支
	if 条件1:
		条件1成立执行的代码块(子代码)
    elif 条件2:
    	条件1不成立执行条件2的代码块(子代码)
    esle:
    	所有条件都不成立(条件1和2都不成立)执行代码块(子代码)
    # if elif else 三者连用时蝾螈只会走一个分支
    # elif else不能单独使用,必须前面结合if使用
    
    嵌套:
		is_eat = True
is_drink = True
is_play = False
# 2.条件判断
	if is_eat:  # 如果吃了
        print('吃啥?')  # 打印输出
        if is_drink:
              print('喝啥?')
              if is_play:
                  print('玩啥?')
               else:
                  print('还想着玩?')
         else:
             print('不能再喝了!')
     else:
         print('你已经饱了!')


c4

作业

# 1.女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨好
age = input('Please enter age:')  # 输入年龄
age = int(age)  # 类型转换
height = input('Please enter height:')  # 输入身高
height = int(height)  # 类型转换
weight = input('Please enter weight:')  # 输入体重
weight = int(weight)  # 类型转换
is_beautiful = input('Is beautiful(Yes/No): ')  # 若输入的是Yes则代表漂亮输入的是No代表不漂亮
if 22 > age >= 18 and height > 170 and weight <100 and is_beautiful == 'Yes':
    print('表白')  # 若条件都满足打印表白
else:
    print('阿姨好')  # 若条件一个不满足打印阿姨好
# 2.根据用户输入内容打印其权限
#     '''
#     jason --> 超级管理员
#     tom  --> 普通管理员
#     jack,rain --> 业务主管
#     其他 --> 普通用户
#     '''

a = {'jason': '超级管理员'}  # 定义字典将Jason设置为超级管理员
b = {'tom': '普通管理员'}
c = {'jack': '业务主管', 'rain': '业务主管'}
name = input('Please your name:')  # 定义变量输入名字
if name in a:  # 判断名字是否包含在字典a中
    print('超级管理员')
elif name in b:  # 判断名字是否包含在字典b中
    print('普通管理员')
elif name in c:  # 判断名字是否包含在字典c中
    print('业务主管')
else:  # 若名字都不包含则打印输出普通用户
    print('普通用户')
# 3.编写用户登录程序
# 	要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
#   		eg:black_user_list = ['jason','kevin','tony']
# 	如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
#    	   eg: oscar 123

black_user_list = ['jason', 'kevin', 'tony']
name = input('请输入您的用户名: ')
pwd = input('请输入您的密码: ')
user_name = 'oscar'
user_pwd = '123'  # 不同类型的数据值是不能比较的,切记
if name in black_user_list:
    print('您的信息不符,拒绝登录!')
elif name == user_name and pwd == user_pwd:
    print('登录成功!')
else:
    print('您输入的用户名或密码错误,登录失败!')
    
错误:不同类型的数据值是不能比较的,切记!!!
	black_user_list = ['jason', 'kevin', 'tony']
    name = input('请输入您的用户名: ')
    pwd = input('请输入您的密码: ')
    user_name = 'oscar'
    user_pwd = 123
    user_pwd = int(user_pwd)  #  不同类型的数据值是不能比较的
    if name in black_user_list:
        print('您的信息不符,拒绝登录!')
    elif name == user_name and pwd == user_pwd:
        print('登录成功!')
    else:
        print('您输入的用户名或密码错误,登录失败!')

推荐阅读
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文介绍了一个编程问题,要求求解一个给定n阶方阵的鞍点个数。通过输入格式的描述,可以了解到输入的是一个n阶方阵,每个元素都是整数。通过输出格式的描述,可以了解到输出的是鞍点的个数。通过题目集全集传送门,可以了解到提供了两个函数is_line_max和is_rank_min,用于判断一个元素是否为鞍点。本文还提供了三个样例,分别展示了不同情况下的输入和输出。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • python中安装并使用redis相关的知识
    本文介绍了在python中安装并使用redis的相关知识,包括redis的数据缓存系统和支持的数据类型,以及在pycharm中安装redis模块和常用的字符串操作。 ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • 关于python调试大法的信息
    本文目录一览:1、pdbpython调试怎么用 ... [详细]
  • 定义变量在Python中,定义一个变量是很简单的。而且,在Python中,定义是不需要用分号结尾的。例如:a10b3print(a*b)判 ... [详细]
  • 本文介绍了蓝桥训练中的闰年判断问题,并提供了使用Python代码进行判断的方法。根据给定的年份,判断是否为闰年的条件是:年份是4的倍数且不是100的倍数,或者是400的倍数。根据输入的年份,输出结果为yes或no。本文提供了相应的Python代码实现。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文介绍了在Python中使用getpass模块隐藏密码输入的方法,以保护用户的密码不被其他人员看到。同时还提到了在PyCharm中运行该命令无效的问题,需要在terminal中运行。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
author-avatar
胡同里带小猪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有