Python笔记(1-20)

Python笔记(1-20)

习题等资源来源于网络,本人只是在此收集整理,如有版权问题,归小甲鱼所属。小甲鱼:https://ilovefishc.com/

第 1 课

1、Python 是什么类型的语言?

Python 是脚本语言

	脚本语言 (Scripting language) 是电脑编程语言,因此也能让开发者藉以编写出
让电脑听命行事的程序。 以简单的方式快速完成某些复杂的事情通常是创造脚本
语言的重要原则,基于这项原则,使得脚本语言通常比 C 语言、 C++ 语言 或
Java 之类的系统编程语言要简单容易。

也让脚本语言另有一些属于脚本语言的特性:

语法和结构通常比较简单
学习和使用通常比较简单
通常以容易修改程序的“解释”作为运行方式,而不需要“编译”
程序的开发产能优于运行性能

2、IDLE 是什么?

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

3、print() 的作用是什么?

print() 会在输出窗口中显示一些文本 (在这一讲中,输出窗口就是 IDLE shell窗口)。

4、Python 中表示乘法的符号是什么?

Python 中的乘号是 *(星号)。

5、为什么 >>>print('I love fishc.com ’ * 5) 可以正常执行,但 >>>print('I love fishc.com ’ + 5) 却报错?

在 Python 中不能把两个完全不同的东西加在一起,比如说数字和文本,正是这个原因,>>>print('I love fishc.com ' + 5) 才会报错。
这就像是在说“五只小甲鱼加上苍井空会是多少?”一样没有多大意义, 结果可能是五,可能是六,也可能是八!不过乘以一个整数来翻倍就具有一定的意义了, 前边的例子就是将
"I love fishc.com" 这个字符串打印五次。

6、如果我需要在一个字符串中嵌入一个双引号,正确的做法是?

你有两个选择:可以利用反斜杠( )对双引号转义: \" ,或者用单引号引起这个字符串。例如: ' I l"o"ve fishc.com ' 。

7、为什么我们要使用 Python3 ?Python2 到底有什么问题?看起来很多程序
员依然都在使用 Python2 ?

确实还有相当多的程序员在使用 Python2 ,不过 Python3 才是 Python 发展的未来,就像 XP 和 WIN7 一样

第 2 课

1、什么是 BIF?

BIF 就是 Built-in Functions ,内置函数。为了方便程序员快速编写脚本程序 (脚本就是要编程速度快快快!!!), Python 提供了非常丰富的内置函数,我们只需要直接调用即可,
例如 print() 的功能是“打印到屏幕”, 
input() 的作用是接收用户输入 
(注:Python3 用 input() 取代了 Python2 的 raw_input())。

2、 用课堂上小甲鱼教的方法数一数 Python3 提供了多少个 BIF?

在 Python 或 IDLE 中,输入 dir(__builtins__) 可以看到 Python 提供的内置方法列表(注意, builtins 前后是两个下划线哦)其中小写的就是 BIF。
如果想具体查看某个 BIF 的功能,比如 input() ,可以在 shell 中输入 help(input) ,就会得到这个 BIF 的功能描述。

3、在 Python 看来: ‘FishC’ 和 ‘fishc’ 一样吗?

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

4、Python 中什么是最重要的?你赞同吗?

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

5、 这节课的例子中出现了“ =”和“ ==”,他们表示不同的含义,你在编程的过程中会不小心把“ ==”误写成“ =”吗?有没有好的办法可以解决这个问题呢?

C 语言的话,如果 if( c == 1 ) 写成 if( c = 1 ) ,程序就完全不按程序员原本的
目的去执行,但在 Python 这里,不好意思,行不通,语法错误! Python 不
允许 if 条件中赋值,所以 if c = 1: 会报错!

6、你听说过“拼接”这个词吗?

在一些编程语言,我们可以将两个字符串“相加”在一起,如: 'I' + 'Love' + 'FishC' 会得到 'ILoveFishC' ,在 Python 里,这种做法叫做拼接字符串。

第 3 课

1、编写程序: hello.py ,要求用户输入姓名并打印“你好,姓名!”

name=input("请输入姓名:")
print("hello"+name+"!")

2、编写程序: calc.py 要求用户输入 1 到 100 之间数字并判断,输入符合要求打印“你妹好漂亮”,不符合要求则打印“你大爷好丑”

num=input("请输入0-100之间的数字")
if 1<=num<=100:
    print("你没好漂亮")
else:
    print("你大爷好丑")

3、如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理?

>>>str = r'C:\Program Files\FishC\Good''\\' 

第 4 课

测试题:

1、请问以下代码会打印多少次“我爱鱼 C!”

 while 'C': 
 print(' 我爱鱼 C!') 

无数次

造成死循环的原因是 while 后边的条件永远为真 (True) ,在 Python 看来,只有以下内容
会被看作假(注意冒号括号里边啥都没有,连空格都不要有!):

False None 0 "" '' () [] {} 

其他一切都被解释为真!

2、请问以下代码会打印多少次“我爱鱼 C!”

i = 10 
while i: 
	print(' 我爱鱼 C!') 
	i = i - 1 

10

3、请写出与 10 < cost < 50 等价的表达式

cost>=50 and cost<=10

4、Python3 中,一个语句可以分成多行书写吗?

可以,语句用;隔开

print('I love fishc');print('very much!') 

5、请问 Python 的 and 操作符 和 C 语言的 && 操作符 有何不同?【该题针对有 C 或
C++ 基础的朋友】

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h3OoWuxq-1592991150349)(C:\Users\19674\AppData\Roaming\Typora\typora-user-images\image-20200605213143634.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ec4dF78Y-1592991150356)(C:\Users\19674\AppData\Roaming\Typora\typora-user-images\image-20200605213154891.png)]

6、听说过“短路逻辑( short-circuit logic )”吗?

逻辑操作符有个有趣的特性:在不需要求值的时候不进行操作。这么说可能比较“高深”,
举个例子,表达式 x and y ,需要 x 和 y 两个变量同时为真 (True) 的时候,结果才为真。
因此,如果当 x 变量得知是假 (False) 的时候,表达式就会立刻返回 False ,而不用去管 y 变量的值。
实际上, Python 的做法是如果 x 为假,表达式会返回 x 的值 (0) ,否则它就会返回 y 的值(例子参考楼上那题)。

动动手:

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

import random
secret = random.randint(1, 10)
temp = input("猜猜我想那个数字?")
guess = int(temp)
time = 3
while guess != secret and time > 0:
    time = time-1
    temp = input("猜错了,重新输入吧")
    guess = int(temp)
    if guess == secret:
        print("猜对了,棒棒?!")
    else:
        if guess > secret:
            print("猜大了,你个傻蛋")
        else:
            print("猜小了")
print("game over!!!")

模板答案

1. import random 
2. times = 3 
3. secret = random.randint(1,10) 
4. print('------------------ 我爱鱼 C 工作室 ------------------') 
5. # 这里先给 guess 赋值(赋一个绝对不等于 secret 的值)
6. guess = 0 
7. # print() 默认是打印完字符串会自动添加一个换行符, end=" " 参数告诉 print() 用空格代替
换行
8. # 嗯,小甲鱼觉得富有创意的你应该会尝试用 end="JJ" ?
9. print(" 不妨猜一下小甲鱼现在心里想的是哪个数字: ", end=" ") 
10. while (guess != secret) and (times > 0): 
11. temp = input() 
12. guess = int(temp) 
13. times = times - 1 # 用户每输入一次,可用机会就 -1 
14. if guess == secret: 
15.   print(" 我草,你是小甲鱼心里的蛔虫吗?! ") 
16.   print(" 哼,猜中了也没有奖励! ") 
17. else: 
18.   if guess > secret: 
19. print(" 哥,大了大了 ~~~") 
20.   else: 
21. print(" 嘿,小了,小了 ~~~") 
22.   if times > 0: 
23. print(" 再试一次吧: ", end=" ") 
24.   else: 
25. print(" 机会用光咯 T_T") 
26. print(" 游戏结束,不玩啦 ^_^") 

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oTu1I7HR-1592991150361)(C:\Users\19674\AppData\Roaming\Typora\typora-user-images\image-20200605212751556.png)]

temp = input("请输入一个数字:")
num = int(temp)
i = 1
while i < num+1:
    print(i)
    i = i+1

模板代码

1. temp = input(' 请输入一个整数 :') 
2. number = int(temp) 
3. i = 1 
4. while number: 
5. print(i) 
6. i = i + 1 
7. number = number - 1 

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rq7uj0b2-1592991150365)(C:\Users\19674\AppData\Roaming\Typora\typora-user-images\image-20200605212811897.png)]

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

第 5 课

测试题:

1、 在 Python 中,int 表示整型,那你还记得 bool 、float 和 str 分别表示什么吗?

布尔,浮点,字符串

2、你知道为什么布尔类型 (bool) 的 True 和 False 分别用 1 和 0 来代替吗?

你可能听说过计算机是很“笨”的, 究其根本是因为它只认识二进制数, 所以所
有的编程语言最终都会转换成简单的二进制序列给 CPU 按照一定的规则解析。
由于二进制只有两个数: 0 和 1,因此用 0 和 1 来表示 False 和 True 再适
合不过了,因为不用浪费资源在转换的过程上!

3、使用 int() 将小数转换为整数,结果是向上取整还是向下取整呢?

向下取整

4、我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?

+0.5

5、取得一个变量的类型, 视频中介绍可以使用 type() 和 isinstance() ,你更倾向于使用哪个?

建议使用 isinstance() ,因为它的返回结果比较直接,另外 type() 其实并没有你想象的那么简单,我们后边会讲到。

6、Python3 可以给变量命名中文名,知道为什么吗?

Pyhton3 源码文件默认使用 utf-8 编码(支持中文),这就使得以下代码是合法的:
>>> 小甲鱼 = ' 我爱你 '   
>>> print( 小甲鱼 ) 
>>> 我爱你

动动手:

1、针对视频中小甲鱼提到的小漏洞,再次改进我们的小游戏:当用户输入错误类型的时候,及时提醒用户重新输入,防止程序崩溃。

如果你尝试过以下做法,请举下小手:

1. temp = input(" 不妨猜一下小甲鱼现在心里想的是哪个数字: ") 
2. # 这种想法是因为 type(1) 会返回 <class 'int'> ,如果 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) 永远是 <class ‘str’> !

其实有蛮多的做法可以实现的,不过就目前我们学习过的内容来看,还不足够。
所以,在让大家动手完成这道题之前,小甲鱼介绍一点新东西给大家!

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。
例如:
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值