zoukankan      html  css  js  c++  java
  • 铁乐学python_day02-作业

    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的区别主要是前者只是单纯跳出本次的单次循环,而后者是直接跳出循环。

  • 相关阅读:
    最全的C#图片处理类ImageHelper.cs
    基于Asp.net C#实现HTML转图片(网页快照)
    WebSiteThumbnail 直接根据html生成图片
    C#里面如何判断一个Object是否是某种类型
    对datatable里面的表进行排序
    spark中RDD的transformation&action
    腾讯大数据之TDW计算引擎解析——Shuffle
    什么是RDD?
    java.io.IOException: No space left on device 错误
    win7 audio repeater 虚拟声卡 屏幕录像专家
  • 原文地址:https://www.cnblogs.com/tielemao/p/8610887.html
Copyright © 2011-2022 走看看