小甲鱼python课后习题【1,2,3,4,5】

【学习笔记,仅供学习交流使用,知识源于鱼c论坛】

作业1:

测试题:

0、Python 是什么类型的语言?
    Python是脚本语言:(对话框形式)是为了缩短传统的编写-编译-链接-运行的电脑编程语言,特性就是简化编程,让开发者用简单的语句编写出让电脑听命令行事的程序,同时让电脑进行的相互式操作自动化,

1、IDLE 是什么?
    IDLE是一个Python Shell,shell的意思就是“外壳”,基本上来说,就是一个通过键入文本与程序交互的途径!像我们Windows那个cmd窗口,像Linux那个黑乎乎的命令窗口,他们都是shell,利用他们,我们就可以给操作系统下达命令。同样的,我们可以利用IDLE这个shell与Python进行互动。

2、print() 的作用是什么?
    print() 会在输出窗口中显示一些文本(在这一讲中,输出窗口就是IDLE shell窗口)。

3、Python 中表示乘法的符号是什么?
    “*”

4、为什么 >>>print('I love fishc.com ’ * 5) 可以正常执行,但 >>>print('I love fishc.com ’ + 5) 却报错?
    在 Python 中不能把两个完全不同的东西加在一起,比如说数字和文本。

5、如果我需要在一个字符串中嵌入一个双引号,正确的做法是?
    你有两个选择:1、可以利用反斜杠(\)对双引号转义:",2、或者用单引号引起这个字符串。例如:’ I l"o"ve fishc.com ‘。
后面的知识:
小甲鱼python课后习题【1,2,3,4,5】_第1张图片
如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理? >>>str = r’C:\Program Files\FishC\Good’’\’

6、 为什么我们要使用 Python3?Python2到底有什么问题?看起来很多程序员依然都在使用Python2?
    确实还有相当多的程序员在使用 Python2,不过 Python3 才是 Python 发展的未来,就像 XP 和 WIN7 一样,2D与3D一样。

动动手:

0、动手试试直接输入>>>5+8 与输入>>>print(5+8) 有何不同?
    不妨试试直接直接输入 >>>‘I love fishc.com!’ 与输入 >>>print(‘I love fishc.com!’) 有何不同? 没错,直接输入是将结果及类型打印到屏幕上,而print是将结果打印到屏幕上,自己试试并观察结果!
在这里插入图片描述
1、在交互模式中,使用 Python 计算一年有多少秒?
在这里插入图片描述
2. 设置你的操作系统的环境变量,以便可以轻松进入 Python 环境:
小甲鱼python课后习题【1,2,3,4,5】_第2张图片
小甲鱼python课后习题【1,2,3,4,5】_第3张图片

作业2:

测试题:

0、什么是BIF?
    BIF 就是 Built-in Functions,内置函数。为了方便程序员快速编写脚本程序

1、用课堂上小甲鱼教的方法数一数 Python3 提供了多少个 BIF?
    在 Python 或 IDLE 中,输入 dir(builtins) 可以看到 Python 提供的内置方法列表,如果想具体查看某个 BIF 的功能,比如 input(),可以在 shell 中输入 help(input),答案应该是 68 个,不信你自己数数看,你们肯定没有自己完成作业就来看答案!哼~ T_T。

2、在 Python 看来:‘FishC’ 和 ‘fishc’ 一样吗?
    不一样,因为 Python 是一个“敏感的小女孩”,所以不要试图欺骗她,对 Python 来说,fishc 和 FishC 是完全不同的两个名字,所以编程的时候一定要当心。不过 Python 会帮助解决可能因此出现的问题,例如只有当标识符已经赋值后(还记得吗,小甲鱼在课堂中说过 Python 的变量是不用先声明的)才能在代码中使用,未赋值的标识符直接使用会导致运行时错误,所以你很快就可以根据经验发现此问题。

3、在小甲鱼看来,Python 中什么是最重要的?你赞同吗?
    缩进!在小甲鱼看来,缩进是 Python 的灵魂,缩进的严格要求使得 Python 的代码显得非常精简并且有层次(小甲鱼阅读过很多大牛的代码,那个乱…C语言不是有国际乱码大赛嘛…)。 所以在 Python 里对待缩进代码要十分小心,如果没有正确地缩进,代码所做的事情可能和你的期望相去甚远(就像C语言里边括号打错了位置)。 如果在正确的位置输入冒号“:”,IDLE 会自动将下一行缩进!

4、 这节课的例子中出现了“=”和“= =”,他们表示不同的含义,你在编程的过程中会不小心把“= =”误写成“=”吗?有没有好的办法可以解决这个问题呢?
    C语言的话,如果 if( c == 1 ) 写成 if( c = 1 ),程序就完全不按程序员原本的目的去执行,但在 Python 这里,不好意思,行不通,语法错误!Python 不允许 if 条件中赋值,所以 if c = 1: 会报错!

5、 你听说过“拼接”这个词吗?
    在一些编程语言,我们可以将两个字符串“相加”在一起,如:‘I’ + ‘Love’ + ‘FishC’ 会得到 ‘ILoveFishC’,在 Python 里,这种做法叫做拼接字符串。

动动手:

0、 编写程序:hello.py,要求用户输入姓名并打印“你好,姓名!”
小甲鱼python课后习题【1,2,3,4,5】_第4张图片
name = input(“请输入您的姓名:”)
print(‘你好,’ + name + ‘!’)

1、编写程序:calc.py 要求用户输入1到100之间数字并判断,输入符合要求打印“你妹好漂亮”,不符合要求则打印“你大爷好丑”
小甲鱼python课后习题【1,2,3,4,5】_第5张图片

temp = input("Please input a number that among 1 to 100: ")
num = int(temp)
if 1<= num <=100:
	print('beautiful')
else:
	print('ugly')
  1. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!

作业3:

测试题:

0、以下哪个变量的命名不正确?为什么?
    (A) MM_520     (B)MM520     (C)520_MM     (D) _520_MM
    (C)选项不正确,因为 Python 中的变量名不能以数字开头。

1、 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?

myteacher = ‘小甲鱼’
yourteacher = myteacher
yourteacher = ‘黑夜’
print(myteacher)

会打印:小甲鱼

2、在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?

myteacher = ‘小甲鱼’ >>> yourteacher = myteacher >>> myteacher = ‘黑夜’ >>> print(yourteacher)
会打印:小甲鱼

3、在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?

first = 520
second = ‘520’
first = second
print(first)

会打印:520,
    注:这里没有单引号括起来,但是他是一个字符串,因为使用 print() 打印,所以不包含单引号。可以试试直接>>>first,它是一个字符串的。

4、除了使用反斜杠(\)进行字符转义,还有什么方法可以打印:Let’s go! 这个字符串?
    “Let’s go!”

5、如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理?
str = r’C:\Program Files\FishC\Good’’\’

6、 在这一讲中,我们说变量的命名需要注意一些地方,但小甲鱼在举例的时候貌似却干了点儿“失误”的事儿,你能看得出小甲鱼例子中哪里有问题吗?
小甲鱼python课后习题【1,2,3,4,5】_第6张图片
在例子中小甲鱼起了个 str 名字的变量,但事实上我们发现,str 的颜色跟普通变量貌似不同?没错,str() 和 print() 都是内置函数,但 Python 貌似不介意我们对内置函数进行赋值操作,所以这点我们以后就要注意啦,否则可能会出现以下的 BUG:

print = 1
print(“I love FishC”)
Traceback (most recent call last): File “”, line 1, in
print(“I love FishC”)
TypeError: ‘int’ object is not callable

动动手:

0、还记得我们第一讲的动动手的题目吗?这一次要求使用变量,计算一年有多少秒?
    提示:可以以 DaysPerYear(每年天数),HoursPerDay(每天小时数),MinutesPerHour(每小时分钟数),SecondsPerMinute(每分钟秒数)为变量名。
DaysPerYear = 365
HoursPerDay = 24
MinutesPerHour = 60
SecondsPerMinute = 60
result = DaysPerYear * HoursPerDay * MinutesPerHour * SecondsPerMinute
print(result)

1、 关于最后提到的长字符串(三重引号字符串)其实在 Python3 还可以这么写,不妨试试,然后比较下哪种更方便? 第一种:括号赋值
string = (
“我爱鱼C,\n”
“正如我爱小甲鱼,\n”
“他那呱唧呱唧的声音,\n”
“总缠绕于我的脑海,\n”
“久久不肯散去……\n”)
第二种:三引号赋值
小甲鱼python课后习题【1,2,3,4,5】_第7张图片
2. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!

作业4:

测试题:

0、请问以下代码会打印多少次“我爱鱼C!”
while ‘C’: 
    print(‘我爱鱼C!’) 
无数次

1、请问以下代码会打印多少次“我爱鱼C!”
小甲鱼python课后习题【1,2,3,4,5】_第8张图片
    会打印 10 次。

2、请写出与 10 < cost < 50 等价的表达式
    (10 < cost) and (cost < 50)

3、Python3 中,一行可以书写多个语句吗?
    可以,语句之间用分号隔开即可,不妨试试:
print(‘I love fishc’);print(‘very much!’)

4、Python3 中,一个语句可以分成多行书写吗? 可以,一行过长的语句可以使用反斜杠或者括号分解成几行,不妨试试: >>>3>4and
1<2 或者 >>>(3>4and1<2)

5、【该题针对有C或C++基础的朋友】请问Python的 and 操作符 和C语言的 && 操作符有何不同?
    关于逻辑and和or,python的用法和C的用法主要异同点
当第一个操作数为逻辑值,第二个操作数为其他类型时,执行以下规则:
a and b:在a为false(等于0)的时候,返回a,否则返回b。
a or b:在a为true(不等于0)的时候,返回a,否则返回b。
总之,and与or返回的不仅有true/false的语义,还返回了它的值。
在c中,0&&3 = 0,1&&3 = 1,在python中,0 and 3 = 0,1 and 3 = 3
小甲鱼python课后习题【1,2,3,4,5】_第9张图片
小甲鱼python课后习题【1,2,3,4,5】_第10张图片
小甲鱼python课后习题【1,2,3,4,5】_第11张图片
在这里插入图片描述

6、 听说过“短路逻辑(short-circuit logic)”吗?
    逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,举个例子,表达式 x and y,需要 x 和 y 两个变量同时为真(True)的时候,结果才为真。因此,如果当 x 变量得知是假(False)的时候,表达式就会立刻返回 False,而不用去管 y 变量的值。
    这种行为被称为短路逻辑(short-circuit logic)或者惰性求值(lazy evaluation),这种行为同样也应用与 or 操作符,这个后边的课程小甲鱼会讲到,不急。
    实际上,Python 的做法是如果 x 为假,表达式会返回 x 的值(0),否则它就会返回 y 的值(例子参考楼上那题)。

动动手:

0、完善第二个改进要求(为用户提供三次机会尝试,机会用完或者用户猜中答案均退出循环)并改进视频中小甲鱼的代码。

import random
secret = random.randint(1,10)
print('---------------我爱鱼C工作室----------------')
temp = input("不妨猜一下小甲鱼 现在心里想的是哪个数字: ")
guess = int(temp)
Index = 3
while (Index > 0) and (guess != secret):
    if guess = = secret:
        print("我草,你是小甲鱼心里的蛔虫吗? ! ")
        print("哼,猜中了也没有奖励! ")
    else:
        if guess > secret:
            print("哥,大了大了!!! 你还有" + str(Index) + "次机会。")
        else:
            print("弟,小了小了!!!" + str(Index) + "次机会。")
        Index = Index - 1
        temp = input("猜错了,再猜一下呗:")
        guess = int(temp)
if guess == secret:
    print("我草,你是小甲鱼心里的蛔虫吗? ! ")
    print("哼,猜中了也没有奖励! ")
else:
    print("兄弟,机会用完了,再来一轮吧!")
print("游戏结束,不玩啦 ^_^!")

1、 尝试写代码实现以下截图功能:
小甲鱼python课后习题【1,2,3,4,5】_第12张图片

temp = input('请输入一个整数:')
number = int(temp)
i = 1
while number:
    print(i)
    i = i + 1
    number = number - 1

2、尝试写代码实现以下截图功能:

temp = input('请输入一个整数:')
number = int(temp)
while number:
    i = number - 1
    while i:
        print(' ', end = '')
        i = i - 1
    j = number
    while j:
        print('*', end = '')
        j = j - 1
    print()
    number = number - 1

end是print()函数的一个参数。end 是输出语句结束以后附加的字符串,它的默认值是换行(’\n’)。
小甲鱼python课后习题【1,2,3,4,5】_第13张图片

作业5:

测试题:

0、在 Python 中,int 表示整型,那你还记得 bool、float 和 str 分别表示什么吗?
    bool 表示布尔类型;float 表示浮点型;str 表示字符串

1、你知道为什么布尔类型(bool)的 True 和 False 分别用 1 和 0 来代替吗?
    由于计算机归根到底只认识二进制数,又因为二进制只有两个数:0 和 1,因此用 0 和 1 来表示 False 和 True 再适合不过了,因为不用浪费资源在转换的过程上!

2、使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?
    我们可爱的小甲鱼说了,小数取整会采用比较暴力的截断方式,即向下取整。(注:5.5向上取整为6,向下取整为5)

3、我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?
    int() 固然没那么“聪明”,但机器是死的,鱼油是活的!
    5.4 “四舍五入”结果为:5,int(5.4+0.5) = = 5
    5.6 “四舍五入”结果为:6,int(5.6+0.5) = = 6
    给一个小数加0.5就会实现“四舍五入”的方法。
4、 取得一个变量的类型,视频中介绍可以使用 type() 和isinstance(),你更倾向于使用哪个?
    建议使用 isinstance(),因为它的返回结果比较直接,另外 type() 其实并没有你想象的那么简单,我们后边会讲到。
5、 Python3 可以给变量命名中文名,知道为什么吗?
    Pyhton3 源码文件默认使用utf-8编码(支持中文),这就使得以下代码是合法的:

小甲鱼 = ‘我爱你’
print(小甲鱼)
我爱你

动动手:

0、针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。 如果你尝试过以下做法,请举下小手:

1.  temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
2.  # 这种想法是因为type(1)会返回,如果type(temp)返回结果一致说明输入是整数。
3.  while type(temp) != type(1):
4.      print("抱歉,输入不合法,", end='')
5.      temp = input("请输入一个整数:")

或者可能这样:

1.  temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
2.  # not操作符的作用是将布尔类型的结果翻转:即取反的意思,not True == Flase
3.  while not isinstance(temp, int):
4.      print("抱歉,输入不合法,", end='')
5.      temp = input("请输入一个整数:")

以上方法的思路是正确的,不过似乎忽略了一点儿:就是input()的返回值始终是字符串,所以type(temp)永远是
其实有蛮多的做法可以实现的,不过就目前我们学习过的内容来看,还不足够。
所以,在让大家动手完成这道题之前,小甲鱼介绍一点新东西给大家!
以上方法的思路是正确的,不过似乎忽略了一点儿:就是input()的返回值始终是字符串,所以type(temp)永远是
其实有蛮多的做法可以实现的,不过就目前我们学习过的内容来看,还不足够。
所以,在让大家动手完成这道题之前,小甲鱼介绍一点新东西给大家!

s为字符串
s.isalnum() 所有字符都是数字或者字母,为真返回 Ture,否则返回 False。
s.isalpha() 所有字符都是字母,为真返回 Ture,否则返回 False。
s.isdigit() 所有字符都是数字,为真返回 Ture,否则返回 False。
s.islower() 所有字符都是小写,为真返回 Ture,否则返回 False。
s.isupper() 所有字符都是大写,为真返回 Ture,否则返回 False。
s.istitle() 所有单词都是首字母大写,为真返回 Ture,否则返回 False。
s.isspace() 所有字符都是空白字符,为真返回 Ture,否则返回 False。

例如:

s = ‘I LOVE FISHC’
s.isupper()
True

好了,文字教程就到这里,大家赶紧趁热打铁,改造我们的小游戏吧!
小甲鱼python课后习题【1,2,3,4,5】_第14张图片

  1. 写一个程序,判断给定年份是否为闰年。(注意:请使用已学过的 BIF 进行灵活运用)
    小甲鱼python课后习题【1,2,3,4,5】_第15张图片
    小甲鱼python课后习题【1,2,3,4,5】_第16张图片

  2. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式!

你可能感兴趣的:(小甲鱼python课后习题【1,2,3,4,5】)