鱼C论坛

 找回密码
 立即注册
查看: 3246|回复: 5

[萌新报道] (3月16日)开贴立flag学会用python做打飞机—每日学习记录

[复制链接]
发表于 2020-3-16 04:38:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
0基础入门python,到此报道!!!

立贴为证,我要用python写出《飞机大战》这款游戏!

————————————————————

每次敲的代码都上传在这里,并做记录

错误代码不要参考,当反面教材案例,多反思!


此贴更多的是个人学习心得、笔记、记录,且看心情是否回复及上传课后作业。


以上
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-3-16 04:42:35 | 显示全部楼层
3月15日学习记录
变量
变量名就像我们现实社会的名字,把一个值赋值给一个名字时,TA会存储在内存中,称之为变量(variable),在大多数语言中,都把这种行为称为“给变量赋值”或“把值存储在变量中”。

不过python与大多数其他计算机语言的做法稍有不同,Ta并不是把值存储在变量中,而更像是把名字贴在值的上边。


所以有些python程序员会说,python没有变量,只有名字。

字符串+字符串就是拼接

注意的地方
*在使用变量前要先对其赋值
变量名可以包括字母、数字、下划线,但变量名不能以数字开头
字母可以是大写或小写,但大小写时不同的。
=是赋值的意思,左边是名字,右边是值,不能写反

注意的地方
        • 在使用变量前,要先对其赋值
        • 变量名可以包括字母、数字、下划线,但变量名不能以数字开头
        • 字母可以是大写或小写,但大小写时不同的。
        • =是赋值的意思,左边是名字,右边是值,不能写反
        • 变量的命名理论可以取任何合法的名字,但作为一个优秀的程序员,请尽量给变量取一个专业一点的名字。



字符串
        • 字符串就是引号内的一切东西,我们也把字符串叫文本,文本和数字是截然不同的
        • 要告诉py你在创建一个字符串,就要在字符串两边加上引号,单引号或者双引号,且必须成双成对
        • 如果字符串中需要出现引号,怎么办
        • 两种方法
                ○ 转义符(\)        如 'let\'s go'
               
       
        反斜杠是一个好东西
        • >>>str='c:\now'                \n在py里表示换行的意思
        >>>str='c:\\now'                用双反斜杠\\进行转义,成功
        >>>str='c:\program files\intel\wifi\help'        多个反斜杠?        原始字符串。只需要在字符串前面加一个英文r即可:>>>str=r'c:\now'


长字符串
        • 如果希望得到一个跨越多行的字符串
        • 使用三重引号字符串

——————————————————
        任务
        1. 猜错的时候,程序应该给提示,如输入的值是大了还是小了
        2. 每运行一次只能猜一次,应该提供多次机会
        3.每次运行程序,答案可以是随机的。

代码懒得上传了,主要是以前版本的这个章节,没有新版的章节代码好看,决定返回重修一遍新版的,再贴出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-16 16:45:47 | 显示全部楼层
本帖最后由 板砖丶 于 2020-3-16 16:58 编辑

新版python004讲课后动动手
用下面代码打印一个99乘法表
>>> for i in range(1, 10):
...     for j in range(1, i+1):
...         print(i, "x", j, "=", i * j, end=' ')
...     print("\n")

【注解】
range() 函数可创建一个整数列表,一般用在 for 循环中。
参数说明:
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

range()是一个函数, for i in range () 就是给i赋值:
比如 for i in range (1,3):
就是把1,2依次赋值给i

例如,range(1,5)给出序列[1, 2, 3, 4]。默认情况下,range 步距取为1。如果我们提供第三个数字,range那么它变成了步距。例如range(1,5,2)得到[1,3]。
for循环然后遍历这个范围,for i in range(1,5)相当于 for i in [1, 2, 3, 4],这就像把序列中的每一个数(或对象)分配给i,一次一个,然后为每个i值执行该语句块。

  1. for i in range(1,10): # i = 1,2,3,4,5,6,7,8,9
  2.     for j in range(1,i+1):
  3.         print(i,"x",j,"=",i*j,end=" ")
  4.     print('\n')

  5. # 第一次i的for循环 即 i=1
  6. # for j in range (1,i+1) 即 for j in range(1,2) 即 j=1
  7. # 第一次j的for循环 即 j=1
  8. # print(i,"x",j,"=",i*j,end=" ") 即 print(1,"x",1,"=",i*j,end=" ") 即 打印1 x 1 = 1空格结尾
  9. # j的for循环结束
  10. # print('\n') 另起一行

  11. # 第二次i的for循环 即 i=2
  12. # for j in range (1,i+1) 即 for j in range(1,3) 即 j= 1,2
  13. # 第一次j的for循环 即 j=1
  14. # print(i,"x",j,"=",i*j,end=" ") 即 print(2,"x",1,"=",i*j,end=" ") 即 打印2 x 1 = 2空格结尾
  15. # 第二次j的for循环 即 j=2
  16. # print(i,"x",j,"=",i*j,end=" ") 即 print(2,"x",2,"=",i*j,end=" ") 即 打印2 x 2 = 4空格结尾
  17. # j的for循环结束
  18. # print('\n') 另起一行

  19. #以此类推

  20. #以上,来自鱼油Judie,感谢!
复制代码

————————————————
print 可以同时输出多个部分的内容,各个部分之间以逗号隔开,你的第一个print就是这种形式,print(i, "x", j, "=", i * j, end=' ')第一项是一个变量i,第二项是字符"×",第三项是变量j,第四项是变量i*j,最后是自定义结尾字符end=‘’。内层for循环打印一行乘法口诀,内层循环结束后使用print("\n")输出回车换行,为下次循环做准备(下次内层循环要打印下一行乘法口诀)。

————————————————
【个人笔记】
1、print同时可以打印多个部分的内容,以逗号隔开,隔开后相当于拼接;
2、print(i, "x", j, "=", i * j, end=' '),里面的字符x,其实是代替乘号(*)的,相当于 i x j
3、注意缩进的奥妙,慢慢体会
4、实验

  1. for i in range(1,10):
  2.         for j in range(i,i+1):
  3.                 print(i,"乘",j,"=",i*j,end="  ")
  4.         print("\n")

  5.        
  6. 1 乘 1 = 1  

  7. 2 乘 2 = 4  

  8. 3 乘 3 = 9  

  9. 4 乘 4 = 16  

  10. 5 乘 5 = 25  

  11. 6 乘 6 = 36  

  12. 7 乘 7 = 49  

  13. 8 乘 8 = 64  

  14. 9 乘 9 = 81  
  15. #为什么不是九九乘法呢?
  16. #检擦后发现for j in range(1,i+1)这样才对



  17. #再来一次
  18. for i in range(1,10):
  19.         for j in range(1,i+1):
  20.                 print(i,"乘",j,"=",i*j,end="  ")
  21.         print("\n")

  22. 1 乘 1 = 1  

  23. 2 乘 1 = 2  2 乘 2 = 4  

  24. 3 乘 1 = 3  3 乘 2 = 6  3 乘 3 = 9  

  25. 4 乘 1 = 4  4 乘 2 = 8  4 乘 3 = 12  4 乘 4 = 16  

  26. 5 乘 1 = 5  5 乘 2 = 10  5 乘 3 = 15  5 乘 4 = 20  5 乘 5 = 25  

  27. 6 乘 1 = 6  6 乘 2 = 12  6 乘 3 = 18  6 乘 4 = 24  6 乘 5 = 30  6 乘 6 = 36  

  28. 7 乘 1 = 7  7 乘 2 = 14  7 乘 3 = 21  7 乘 4 = 28  7 乘 5 = 35  7 乘 6 = 42  7 乘 7 = 49  

  29. 8 乘 1 = 8  8 乘 2 = 16  8 乘 3 = 24  8 乘 4 = 32  8 乘 5 = 40  8 乘 6 = 48  8 乘 7 = 56  8 乘 8 = 64  

  30. 9 乘 1 = 9  9 乘 2 = 18  9 乘 3 = 27  9 乘 4 = 36  9 乘 5 = 45  9 乘 6 = 54  9 乘 7 = 63  9 乘 8 = 72  9 乘 9 = 81  

  31. #OK,可以看出,把“x”替换成了“乘”,还可以以任何字符拼接。
复制代码


分享结束(手动狗头)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-16 18:51:17 | 显示全部楼层
本帖最后由 板砖丶 于 2020-3-21 15:51 编辑

-----------新版python006讲动动手------------
0.编写一个成绩评级程序,要求用户输入分数,程序返回对应的评级
1.修改上一题的代码,让程序可以不断接收输入,直至用户输入小写字母 e 结束程序。
分数 < 60,D
60 <= 分数 < 80,C
80 <= 分数 < 90,B
90 <= 分数 < 100,A
分数 == 100,S

0【我的代码】

  1. "--------006课后动手之成绩评级---------"
  2. num = input("请输入你的分数:")
  3. guess = int(num)

  4. if guess < 60 :
  5.     print("D")
  6. else:
  7.     if guess < 80 :
  8.         print("C")
  9.     else:
  10.         if guess < 90:
  11.             print("B")
  12.         else:
  13.             if guess < 100:
  14.                 print("A")
  15.             else:
  16.                 print("S")

  17. #小甲鱼给的答案代码参照

  18. score = input("请输入你的分数:")
  19. score = int(score)

  20. if score < 60:
  21.     print("D")
  22.    
  23. if 60 <= score < 80:
  24.     print("C")

  25. if 80 <= score < 90:
  26.     print("B")

  27. if 90 <= score < 100:
  28.     print("A")

  29. if score == 100:
  30.     print("S")
复制代码


1.【我的代码——有问题】
>>>
= RESTART: D:/Boman/python学习/课后动手/新006课后动手之成绩评级.py
请输入你的分数:50
D
请输入你的分数:60
C
请输入你的分数:80
B
请输入你的分数:90
A
请输入你的分数:99
A
请输入你的分数:100
S
Traceback (most recent call last):
  File "D:/Boman/python学习/课后动手/新006课后动手之成绩评级.py", line 21, in <module>
    if num == e:
NameError: name 'e' is not defined



  1. "--------006课后动手之成绩评级---------"
  2. counts = 100
  3. while counts > 0:

  4.     num = input("请输入你的分数:")
  5.     guess = int(num)

  6.     if guess < 60 :
  7.         print("D")
  8.     else:
  9.         if guess < 80 :
  10.             print("C")
  11.         else:
  12.             if guess < 90:
  13.                 print("B")
  14.             else:
  15.                 if guess < 100:
  16.                     print("A")
  17.                 else:
  18.                     print("S")
  19.                     if num == e:     #这里肯定出问题了
  20.                         break            #这个break放这里好像有问题,应该与第一个if一样的缩进?

  21. #小甲鱼给的答案代码参照
  22. score = input("请输入你的分数:")

  23. while score != 'e':
  24.     score = int(score)

  25.     if score < 60:
  26.         print("D")

  27.     if 60 <= score < 80:
  28.         print("C")

  29.     if 80 <= score < 90:
  30.         print("B")

  31.     if 90 <= score < 100:
  32.         print("A")

  33.     if score == 100:
  34.         print("S")

  35.     score = input("请输入你的分数:")                #这一句放这里是为了什么?
  36.                                                                 #是为了输入e的时候终止嘛?

复制代码

————————————————
【笔记】
1、int是数,而e是字符
2、while 要熟用 !=的这种循环,这是没想到的
3、好像在理解中,但隔着一层,似懂非懂的感觉,再多做做
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-16 19:41:36 | 显示全部楼层
---------------新版007讲课后动动手---------------------

0:选择一个合适的函数,抽取 0~99 之间的所有偶数
我的
>>> random.randrange(0,99,2)
90
>>> random.randrange(0,99,2)
28
>>> random.randrange(0,99,2)
72


  1. random.randrange(0,99,2)
复制代码


【答案】
>>> import random
>>> random.randrange(0, 100, 2)
96
>>> random.randrange(0, 100, 2)
8
>>> random.randrange(0, 100, 2)
32
>>> random.randrange(0, 100, 2)
14
>>> random.randrange(0, 100, 2)
62
【反思错误点】
1、没有导入random
2、randrange(start,stop,step)
区间为[start,stop)
3、题目理解的有问题:抽取0~99所有偶数,理解成了,要把2、4、6……99都打印
——————————————————————
1. 编写一个双色球的开奖模拟程序
【反思】:应先了解双色球是什么,运行规则,开奖,需要哪些字符等

  1. """---------新007讲动手之双色球----------"""
  2. #“双色球”每注投注号码由 6 个红色球号码和 1 个蓝色球号码组成。
  3. #红色球号码从 1~33 中选择;
  4. #蓝色球号码从 1~16 中选择。
  5. #开奖结果为6个红色号
  6. #特别号码为一个and蓝色

  7. import random
  8. red1=random.randint(1,33)

  9. red2=random.randint(1,33)

  10. red3=random.randint(1,33)

  11. red4=random.randint(1,33)

  12. red5=random.randint(1,33)

  13. red6=random.randint(1,33)

  14. blue=random.randint(1,16)

  15. print("开奖结果是:",red1,red2,red3,red4,red5,red6)
  16. print("特别好吗是:",blue)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-19 19:52:17 | 显示全部楼层
楼主学习好认真啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-27 20:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表