# 部分作业习题答案

# day01 作业答案

  1. 简述硬件 & 操作系统 & 软件(应用系统)之间的关系。

    计算机是由多个硬件组成,例如:CPU、硬盘、内存、网卡、主板等。
    操作系统则是安装在计算机上用于协调各硬件进行配合工作的,他将用户的一些行为转化为计算机能够识别的命令,并协调各个硬件配合完成相关命令。
    软件,是由程序员开发并安装在操作系统的程序(本质上是一大堆的代码),例如:微信、QQ、金山毒霸等。
    
  2. 列举常见的操作系统都有哪些。

    常见的操作系统有三类:
    - win:win7、win10、xp 等
    - linux:centos、ubuntu、redhat 等。
    - mac:Catalina、Mojave、Sierra 等。
    
  3. 简述编译器和解释器的区别和作用。

    编译器和解释器的作用是将各编程语言的代码进行翻译,从而使得计算机能够识别并执行。
    编译器,全文翻译,将代码编译成`临时文件`,再执行临时文件。
    解释器,实施翻译,对代码实行边解释边执行。
    
  4. 编程语言进行分类

    解释的角度:编译型和解释性。
    高低的角度:高级编程语言和低级编程语言。
    
  5. Python解释器的种类有哪些?

    CPython、Jython、IronPython、pypy等
    
  6. CPython解释器的版本有哪些?你现在用的是哪个版本?

    2.x和3.x,目前课堂上使用的是最新的3.9.0版本。
    
  7. 系统环境变量的作用是什么?

    在将某个目录添加至环境变量后,如果在终端想要去运行此目录下的文件,则只需要输入文件名即可(无需再写前缀),系统会自动读取环境变量中的路径并自动拼接。
    
  8. Python和Pycharm的区别是什么?

    Python是解释器,用于将Python解释成计算机能够识别的命令。
    Pycharm是IDE(类似编辑器),用于方便快速的编写Python代码并实现运行Python代码的一个工具。
    

# day02 作业答案

  1. 谈谈你了解的编码以及为什么会出现乱码的现象?

    编码相当于是一个`密码本`,其中存储着文字和01010的对应关系。
    乱码的出现时因为文件的存储方式和打开方式不一致导致。另外,如何数据丢失也可能会造成乱码。
    假如:
    	武,对应存储的是:100100001000000111。如果文件中的内容丢失只剩下100100001000000,则读取时候就可能出现乱码。
    
  2. Python解释器默认编码是什么?如何修改?

    Python解释器默认编码:utf-8
    在文件的顶部通过设置: # -*- coding:编码 -*- 实现修改。
    
  3. 用print打印出下面内容:

    ⽂能提笔安天下,
    武能上⻢定乾坤.
    ⼼存谋略何⼈胜,
    古今英雄唯是君。
    
    print("⽂能提笔安天下,")
    print("武能上⻢定乾坤.")
    print("⼼存谋略何⼈胜,")
    print("古今英雄唯是君。")
    
    text = """
    ⽂能提笔安天下,
    武能上⻢定乾坤.
    ⼼存谋略何⼈胜,
    古今英雄唯是君。
    """
    print(text)
    
  4. 变量名的命名规范和建议?

    三条规范(必须遵循,否则定义变量会报错)
      - 变量名只能由 字母、数字、下划线 组成。
      - 变量名不能以数字开头。
      - 变量名不能是Python内置关键字
    二条建议(遵循可以显得更加专业,不遵循也可以正常运行不报错)
    	- 下划线命名法,多个单词表示的变量名用下划线连接(均小写)
    	- 见名知意,通过阅读变量名就能知道此变量的含义。
    
  5. 如下那个变量名是正确的?

    name = '武沛齐'
    _ = 'alex'
    _9 = "老男孩"
    9name = "宝浪"   # 错误
    oldboy(edu = 666 # 错误
    
  6. 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。

    num = input("请输入数字")
    data = int(num)
    if data > 66:
        print("大了")
    elif data < 66:
        print("小了")
    else:
        print("正确")
    
  7. 提示⽤户输入 "爸爸" ,判断⽤户输入的对不对。如果对, 提示真聪明, 如果不对, 提示你是傻逼么。

    text = input("请输入内容")
    if text == "爸爸":
        print("真聪明")
    else:
        print("你是傻逼么")
    
  8. 写程序,成绩有ABCDE5个等级,与分数的对应关系如下.

    A    90-100
    B    80-89
    C    60-79
    D    40-59
    E    0-39
    

    要求用户输入0-100的数字后,你能正确打印他的对应成绩等级.

    score = input("请输入分数")
    data = int(score)
    
    if data >= 90 and data <= 100:
      print("A")
    elif data >= 80 and data <90:
      print("B")
    elif data >= 60 and data <80:
      print("C")
    elif data >= 40 and data <60:
      print("D")
    elif data >= 0 and data <40:
      print("E")
    else:
      print("输入错误")
    
    score = input("请输入分数")
    data = int(score)
    
    if 90 <= data <= 100:
        print("A")
    elif 80 <= data < 90:
        print("B")
    elif 60 <= data < 80:
        print("C")
    elif 40 <= data < 60:
        print("D")
    elif 0 <= data < 40:
        print("E")
    else:
        print("输入错误")
    

# day03 作业答案

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

    1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 的结果为:True
    not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 的结果为:False
    
  2. 求出下列逻辑语句的值。

    8 or 3 and 4 or 2 and 0 or 9 and 7  的结果为:8
    0 or 2 and 3 and 4 or 6 and 0 or 3  的结果为:4
    
  3. 下列结果是什么?

    6 or 2 > 1 的结果为:6
    3 or 2 > 1 的结果为:3
    0 or 5 < 4 的结果为:False
    5 < 4 or 3 的结果为:3
    2 > 1 or 6 的结果为:True
    3 and 2 > 1 的结果为:True
    0 and 3 > 1 的结果为:0
    2 > 1 and 3 的结果为:3
    3 > 1 and 0 的结果为:0
    3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2 的结果为:2
    
  4. 实现用户登录系统,并且要支持连续三次输错之后直接退出,并且在每次输错误时显示剩余错误次数(提示:使⽤字符串格式化)。

    """
    count = 0
    while count < 3:
        count += 1
        user = input("请输入用户名:")
        pwd = input("请输入密码:")
        if user == "wupeiqi" and pwd == "123":
            print("成功")
            break
        else:
            message = "用户名或者密码错误,剩余错误次数为{}次".format(3 - count)
            print(message)
    """
    
    """
    count = 3
    while count > 0:
        count -= 1
        user = input("请输入用户名:")
        pwd = input("请输入密码:")
        if user == "wupeiqi" and pwd == "123":
            print("成功")
            break
        else:
            message = "用户名或者密码错误,剩余错误次数为{}次".format(count)
            print(message)
    """
    
  5. 猜年龄游戏 要求:允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出。

    count = 0
    while count < 3:
        count += 1
        age = input("请输入年龄:")
        age = int(age)
        if age == 73:
            print("恭喜你猜对了")
            break
        else:
            print("猜错了")
    
    print("程序结束")
    
  6. 猜年龄游戏升级版 要求:允许用户最多尝试3次,每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y,就继续让其猜3次,以此往复,如果回答N,就退出程序,如何猜对了,就直接退出。

    count = 0
    while count < 3:
        count += 1
        age = input("请输入年龄:")
        age = int(age)
        if age == 73:
            print("恭喜你猜对了")
            break
        else:
            print("猜错了")
    
        if count == 3:
            choice = input("是否想继续玩(Y/N)?")
            if choice == "N":
                break
            elif choice == "Y":
                count = 0
                continue
            else:
                print("内容输入错误")
                break
    
    print("程序结束")
    
上次更新: 8/11/2022, 6:09:16 PM