1、判断下列逻辑语句的True,False.

1)1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

解题思路:首先一眼看去有两个逻辑运算符and和or,优先级是先算and后算or;

单独拿出这一段分析: 4 > 5 and 2 > 1 and 9 > 8

and是只要有一个条件为假那结果都为假(要满足同时两个条件为真,结果才是真)

所以这一段的结果只要看到左边的4>5就直接可以判定结果为假了。

接下来算or,or的特殊是只要有一个为真那结果就都为真,所以虽然or的式列得很长:

1 > 1 or 3 < 4 or False or 7 < 6

但里面有个3 < 4 这条件结果是为真的,所以整个结果都是为真的。

有鉴于此,其实我们可以逆推来运算,可能得出的结果更快。

那就是不用先管and运算的最终结果,先看or的式子中只要有一个唯真,

那么在只有and和or的语句中直接整个结果就可以判定为真。

答案:True

验证:

2)not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

解题思路:这题虽然在前面加上了个not运算且优先级较and和or都高,

但同理可以从or先直接逆推,不过这题不满足直接肉眼能判断为真的or条件,

所以还是一步步来,首先算not 2 > 1,非真、即假,也就是False。

and中只要有一个为False那就不用再算另一边了:not 2 > 1 and 3 < 4 结果直接为False;

到算 4 > 5 and 2 > 1 and 9 > 8,同样4 > 5 已为假,那结果直接也判假。

也就是简化成False or False or 7 < 6。

所有条件都是False,最终结果为False。

答案:False

验证:

2、求出下列逻辑语句的值。

  1. 8 or 3 and 4 or 2 and 0 or 9 and 7

解题思路:因为此题是求值,所以按照运算一步步来。

# x or y 如果x为True,则返回x,否则返回y。
# x and y 如果x为True,则返回y,否则返回x。刚好与or相反。

3 and 4 值为4,2 and 0值为0,9 and 7值为7,都取右边的数值,简化成:

8 or 4 or 0 or 7

到这里就顺多了,因为从左到右就是先算左边的式子,而x or y 又是在x为True的时候直接返回左边的x自身。

所以到这里直接可得出答案为8。

如果这样的话,那么其实此题也可以取巧,因为此题第一个逻辑运算就是or,

那么基本后面不用判断它们为什么值了,哪怕是有and优先,因为算到最后还是取最左边的8!

答案: 8

验证:

  1. 0 or 2 and 3 and 4 or 6 and 0 or 3

解题思路:这题同样可运用技巧可以少算些,

虽然这里第一个运算or前面是0,我们需要先算出第一个or右边的and数值2 and 3 and 4。

and的技巧也是数值都为真时,直接取最右边的数值,

所以为4,0 or 4取右边的4,接下来就可以不用算or 6 and 0 or 3了,直接填出答案为4即可。

答案: 4

验证

3、下列结果是什么?

1)、6 or 2 > 1

答:6

2)、3 or 2 > 1

答:3

3)、0 or 5 < 4

答:False

4)、5 < 4 or 3

答:3

5)、2 > 1 or 6

答:True

6)、3 and 2 > 1

答:True

7)、0 and 3 > 1

答:0

8)、2 > 1 and 3

答:3

9)、3 > 1 and 0

答:0

10)、3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2

答:看到最后的or后面跟着3>2,本来直接可以给出答案为True,

但是这是个混合运算,所以还是得拆分来解。先算and:

3 > 1 and 2 、 2 < 3 and 3 and 4、 这两个式子都直接可取最右边,简化为:

2 or 4 or 3 > 2,所以应该是运用到另一个关于数值运算中or的技巧才对,直接选第一个or最右的数值!

那就是2。

此题最初可直接算3 > 1 and 2 or 得出2 or。答案直接为2。

验证:

4、简述变量命名规范

简述:变量名必須由大小写英文、数字与下划线组成,但不能以数字开头;不能是python中的关键字;

命名不宜过长,最好具有描述性;推荐使用下划线式的驼峰体。

5、name = input(“>>>”) name变量是什么数据类型?

答:字符串类型,因为input是实现计算机与用户交互的一种方式,用户输入的统一视为字符串。

6、if条件语句的基本结构?

答:

1)if 	条件:
结果
2)if 条件1:
结果1
else:
结果2
3)if 条件1:
结果1
elif 条件2:
结果2
elif 条件3:
结果3
elif ……
4)在3的基础上最后加上else:结果。
5)if 条件1:
结果1
elif 条件2-1:
结果2-1
if 条件2-2:
结果2-2
elif ……
第五种是if里面再嵌套if语句,尽量少用。

7、while循环语句基本结构?

答:

1)while 条件:
循环(执行内容)
2)while 条件:
循环 (执行内容)
else:
执行

8、写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?

# 写代码:计算 1 - 2 + 3 ... + 99 中除了88以外所有数的总和?
count = 1
sum = 0
while count < 100:
# 在计算奇数相加到99,偶数相减到98的代码基础上增加判断
# 当count到88的时候直接加1变89参与到下面的if语句判定中
# 这样的好处是减少使用continue,减少逻辑分叉。
if count == 88:
count +=1
if count % 2 == 1:
sum += count
else:
sum -= count
count += 1
print(sum)

9、 ⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)

# ⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)
username = 'tiele'
password = 'ABCabc123'
count = 1
while count < 4:
name = input("请输入用户名:")
pwd = input("请输入密码:")
if username == name and password == pwd:
print("登录成功!")
break
else:
print("用户名或密码错误,你还有%d次重试机会。" % (3-count))
count += 1

10、简述ascii、unicode、utf-8编码关系?

简述:ascii编码是最开始的编码规则本,里面只收纳了英文、特殊字符、数字等有限字符,采用的是8位一个字节的方式进行编码对照;unicode在ascii码的基础上进行了升级扩展,立志将全世界所有国家的语言文字等字符都编进去,故又被称为万国码;unicode采用的编码方式为统一四字节表示一个字符;由于unicode采用的是四个字节表示一个字符这种方式极大地浪费了资源和空间,所以又出现了对unicode进行优化且兼容ascii码的utf-8,又称为可变长度字符编码,采用的规则是英文使用一个字节去表示(也就是兼容了ascii码在内),中文则是三个字节去表示一个字符。

11、简述位和字节的关系?

答:8位bit等于1字节(bye)。所谓8bit就是8位二进制,例如:10001001。

12、“⽼男孩”使⽤UTF-8编码占⽤⼏个字节?使⽤GBK编码占⼏个字节?

答:“⽼男孩”使⽤UTF-8编码占⽤3x3=9字节,使用GBK编码占2x3=6字节。

13、制作趣味模板程序需求:等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进⾏任意实现 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx

name = input("请输入你的名字:")
add = input("请输入地点:")
hobby = input("请输入爱好:")
msg = '敬爱可亲的%s,最喜欢在%s%s' % (name, add, hobby)
print(msg)

14、等待⽤户输⼊内容,检测⽤户输⼊内容中是否包含敏感字符?如果存在敏感字符提示“存在敏感字符请重新输⼊”,并允许⽤户重新输⼊并打印。敏感字符:“⼩粉嫩”、“⼤铁锤”

# 制作趣味模板程序需求:
# 等待⽤户输⼊名字、地点、爱好,根据⽤户的名字和爱好进⾏任意实现
# 如:敬爱可亲的xxx,最喜欢在xxx地⽅⼲xxx
# 在以上基础上对用户输入的用户名进行敏感词汇检测测试,
# 存在敏感字符提示“存在敏感字符请重新输⼊”,并允许⽤户重新输⼊并打印。
# 敏感字符:“⼩粉嫩”、“⼤铁锤”
flag = True
while flag:
name = input("请输入你的名字:")
if '小粉嫩' in name or '大铁锤' in name :
print("存在敏感字符请重新输入。")
else:
flag = False
add = input("请输入地点:")
hobby = input("请输入爱好:")
msg = '敬爱可亲的%s,最喜欢在%s%s' % (name, add, hobby)
print(msg)

15、单⾏注释以及多⾏注释?

Python中单行注释以 # 开头;多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来。

16、简述你所知道的Python3和Python2的区别?

python2.x:源码相对混乱,重复代码较多,显得繁冗;

python3.x:源码规范,优美清晰简单;

python2中print作为一条语句后面可带可不带括号();

python3中作为函数强制必須带上括号()。

17、看代码书写结果:

a = 1>2 or 4<7 and 8 == 8
print(a)

答:True

18、continue和break区别?

答:continue和break的区别主要是前者只是单纯跳出本次的单次循环,而后者是直接跳出循环。

铁乐学python_day02-作业的更多相关文章

  1. 铁乐学Python_day12_作业

    1.写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组 例如:[('红心',2),('草花',2), -('黑桃','A')] def poker(): suit = ['红心', '梅花', ...

  2. 铁乐学python_day10_作业

    1.继续整理函数相关知识点,写博客. 2.写函数,接收n个数字,求这些参数数字的和.(动态传参) def sum_n(*args): sum = 0 for i in args: sum += i r ...

  3. 铁乐学python_day09_作业

    练习题 1.整理函数相关知识点,写博客 2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素, 并将其作为新列表返回给调用者. def odd_index(l): lis = [] for ...

  4. 铁乐学Python_day08作业

    1. 文件a.txt内容:每一行内容分别为商品名字,价钱,个数. apple 10 3 tesla 100000 1 mac 3000 2 lenovo 30000 3 chicken 10 3 通过 ...

  5. 铁乐学python_Day44_IO多路复用

    目录 IO模型介绍 阻塞IO(blocking IO) 非阻塞IO(non-blocking IO) 多路复用IO(IO multiplexing) 异步IO(Asynchronous I/O) IO ...

  6. 铁乐学python_Day43_协程

    铁乐学python_Day43_协程 引子 之前我们学习了线程.进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位. 按道理来说我们已经算是把cpu的利用率提高很多了. ...

  7. 铁乐学python_Day42_线程池

    铁乐学python_Day42_线程池 concurrent.futures 异步调用模块 concurrent.futures模块提供了高度封装的异步调用接口 ThreadPoolExecutor: ...

  8. 铁乐学python_Day42_线程-信号量事件条件

    铁乐学python_Day42_线程-信号量事件条件 线程中的信号量 同进程的一样,Semaphore管理一个内置的计数器, 每当调用acquire()时内置计数器-1:调用release() 时内置 ...

  9. 铁乐学python_Day42_锁和队列

    铁乐学python_Day42_锁和队列 例:多个线程抢占资源的情况 from threading import Thread import time def work(): global n tem ...

  10. 铁乐学python_Day39_多进程和multiprocess模块2

    铁乐学python_Day39_多进程和multiprocess模块2 锁 -- multiprocess.Lock (进程同步) 之前我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发 ...

随机推荐

  1. elasticSearch6源码分析(2)模块化管理

    elasticsearch里面的组件基本都是用Guice的Injector进行注入与获取实例方式进行模块化管理. 在node的构造方法中 /** * Constructs a node * * @pa ...

  2. rsyslog 配置 二

    转自:https://www.cnblogs.com/cherishry/p/6775163.html rsyslog 配置 二 # rsyslog configuration file # For ...

  3. 使用pd从数据库逆向生成pdm文件

    使用pd从数据库逆向生成pdm文件 好久没更新博客了,最近忙着各种事,捞了点老本行java的一些东西,浑浑噩噩,花了几天时间用java搭建了一个小项目的restful接口,深深觉得这东西论效率被nod ...

  4. MFC动态时间表示法——strtime函数

    %a 星期几的简写 %A 星期几的全称 %b 月分的简写 %B 月份的全称 %c 标准的日期的时间串 %C 年份的后两位数字 %d 十进制表示的每月的第几天 %D 月/天/年 %e 在两字符域中,十进 ...

  5. SpringMVC的controller层接收来自jsp页面通过<a href="/user/userUpdateInfo/>的中文乱码问题

    这种情况是,jsp页面的中文正常显示,数据的中文也是正常显示,但是在Controller层接收到的中文是乱码,如下图所示: 解决方法:在Controller层对前台传递的中文乱码进行处理,将它转换成u ...

  6. python之多进程multiprocessing模块

    process类介绍 multiprocessing 模块官方说明文档 Process 类用来描述一个进程对象.创建子进程的时候,只需要传入一个执行函数和函数的参数即可完成 Process 示例的创建 ...

  7. Linux排查Java程序占用CPU很高的解决办法

    Java的工具集相当强大,学习成本也很低,处理线上问题时,jstack这个工具就比微软的windbg,好学好用很多,3步找出占用CPU很高的源所在.而windbg反人类的各种命令,实在不敢恭维. 故意 ...

  8. python学习之老男孩python全栈第九期_day016作业

    1. 请利用filter()过滤出1~100中平方根是整数的数,即结果应该是: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] import math def func( ...

  9. Mysql 删除数据表的三种方式详解

    用法: 1.当你不再需要该表时, 用 drop; 2.当你仍要保留该表,但要删除所有记录时, 用 truncate; 3.当你要删除部分记录或者有可能会后悔的话, 用 delete. 删除强度:dro ...

  10. vue父与子通信

    个人理解并整理如下 一.父传子 prop传参 父组件传递参数<x-scoll :class="red"></x-scoll> 子组件props:[" ...