关于python学习的记录

这篇博客记录了作者学习Python3的过程,从安装环境变量、编辑器选择,到理解基本数据类型、语句,再到实践中制作贪吃蛇游戏的详细步骤。内容包括Python环境配置、字符串操作、赋值语句、条件分支和循环,以及pygame库在游戏开发中的应用。
摘要由CSDN通过智能技术生成

关于Python3进度打卡

第一天——9.4

一、安装环境变量

1、首先访问http://www.python.org/download/去下载最新的python版本。
2、安装下载包,一路next。
3、为计算机添加安装目录搭到环境变量,如图把python的安装目录添加到pth系统变量中即可。

在这里插入图片描述

4、测试python安装是否成功,cmd打开命令行输入 python 命令,如下图即成功了,(我下的是最新版,所以为显示为3.7.4)
在这里插入图片描述
在这里插入图片描述

二、关于编辑

python并不需要特意下载编辑器,在配置完后,可以直接使用自带程序编辑,
可直接在电脑搜索IDLE便可编辑。(IDLE是python的一个shell,意为外壳,即文本与程序交互的途径)

这是第一次输出hello world
在这里插入图片描述

三、基本介绍

单引号 ’ ‘或者双引号 " " 都可以,再或者 ‘’’ ‘’’ 三个引号,其中三个引号被用于过于长段的文字或者是说明,只要是三引号不完你就可以随意换行写下文字。

①字符串直接能相加,

1、str1 = 'hi'
2、str2 = 'hello'
3、print(str1 + str2)```

运行结果:

hi jaybo
1
②字符串相乘,如:

string = 'bang!'
total = string * 3 ```
打印 total 

结果:
bang!bang!bang!

第二天——9.5

一、基本数据类型

整数
Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。

计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。

浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。

字符串
字符串是以单引号’或双引号"括起来的任意文本,比如’abc’,“xyz"等等。请注意,’'或”“本身只是一种表示方式,不是字符串的一部分,因此,字符串’abc’只有a,b,c这3个字符。如果’本身也是一个字符,那就可以用”"括起来,比如"I’m OK"包含的字符是I,’,m,空格,O,K这6个字符。

输入如下:

counter =100    #整型变量
miles =100.0    #浮点型变量
name = "luyin"  #字符串

print (counter)
print (miles)
print (name)

结果如下:

在这里插入图片描述
注意点:1、如果需要输入字符串,一定要加双引号“”,否则便是无定义,如图中红字错误部分。
2、如果遇到字符串中需要有双引号的地方,則加上斜杠/防止错误。

  • 缩进==(空格或者Tab)标明代码的层次关系,是python语言中表明程序框架的唯一手段。==
a=True
if a:
  print("Hello,python")
else:
  print("Hello word")

  • 注释
    单行注释:以#开头
#这是一个注释
a=True
if a:
  print("Hello,python")
else:
  print("Hello word")

  • 多行注释:用三引号”’或者”“”开头、结尾。
    这是一行注释
    这是第二行注释
    这是第三行注释
a=True
if a:
  print("Hello,python")
else:
  print("Hello word")

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

二、基本语句

  • 赋值语句
f=1.8*float(input str[0:-1]+32)
1
  • 输入语句
 a = input("请输入一个整数")
1
  • 输出语句
a= input("请输入一个整数")
b= input("请输入另一个整数")
sum=(float(a)+float(b))
print("a+b: %f"%sum)
1
2
3
4
5
  • 分支语句
if 条件1:
    语句组1
elif 条件2:
    语句组2
#......
else:
    语句组n+1
  • 循环语句
    计数循环格式:
#一段程序运行10for i in range(1.11):
    <源代码>

三、编程实践

最终代码:

print ("************文字游戏*************")="猪"
temp = input("你和猪谁跑的快?")
guess = str(temp)
if guess ==:
    print("你可真厉害,你连猪都不如")

else:
    print("恭喜你,居然能跑过猪")

结果如图:
在这里插入图片描述
虽然成功了,但是如图所示,中间错误了很多次,
错误版
在这里插入图片描述
整理如下:
1、由于输入的为字符串,所以应该用str 而不是int
2、条件语句if后面要跟冒号:
3、中文字符的符合不能用于编程,不互通。如:中文的()和英文的()不是一个东西
4、需要提前定义,如猪=“猪”

第三天——9.7

一、制作贪吃蛇游戏的准备

  • 下载集成开发环境pycharm
    这个可直接诶在网上搜索下载,地址:http://soft.onlinedown.net/soft/255225.htm
    如果需要中文則需要自己配置汉化包,链接:https://pan.baidu.com/s/1xODBZjdFKAz2RfDrxl2pwQ 密码:1kps
    下载后解压放入lib文件夹中便可汉化。

  • 配置解释器
    一个是日常编程需要的pip和setuptoods
    二是制作贪吃蛇必不可少的pygame
    在这里插入图片描述
    配置完成后准备工作便结束接下来开始正式编程

二、需求及算法分析

内容:
- 需要有贪吃蛇、有食物;
- 需要能控制贪吃蛇来上下移动获取食物;
- 贪吃蛇在吃取食物后,自身长度增加,同时食物消失并随机生成新的食物;
- 如果贪吃蛇触碰到四周墙壁或是触碰到自己身体时,则游戏结束

三、代码实现

  1. 首先我们需要的是python的第三方库pygame,这个我们在上面就已经配置完毕。

之后还会用到一些内置的模块如sys(系统文件)、random(随机)、time(时间),我们我们直接诶import就好。
顺便解释一下什么事pygame。(主要是我觉的如果以后想用python编写游戏的话会经常用到)

Pygame是一个利用SDL库的游戏库, 是一组用来开发游戏软件的 Python 程序模块。
SDL(Simple DirectMedia Layer)是一个跨平台库,支持访问计算机多媒体硬件(声音、视频、输入等),SDL非常强大,但美中不足的是它是基于 C 语言的。
PyGame是 SDL 库的 Python 包装器(wrapper),Pygame 在SDL库的基础上提供了各种接口,从而使用用户能够使用python语言创建各种各样的游戏或多媒体程序

四、一些全局参数的初始化

#一、全局部分的参数初始化

import pygame,sys,random,time
#将pygame导入至python库中,以便用来使用和导入常用的函数和常量
from pygame.locals import *
def main ():
    global fpscock,display,basicfont,black,red,white,grey

#初始化python库
pygame.init()
#这是游戏窗口(display展现)
display = pygame.display.set_mode((640,480))
#这是游戏的标题文字
pygame.display.set_caption('鹿先森的贪吃蛇')
#定义一个变量控制游戏速度
spsclock = pygame.time.clock()
#选择游戏字体
basicfont = pygame.font.SysFont("",80)
#配置目标方块的颜色信息 红色(255,0,0) 黑色(000) 红色:(255255255)
red =pygame.__color_constructor(255,0,0,0)
#贪吃蛇颜色黑色
black =pygame.__color_constructor(0,0,0,0)
#背景颜色白色
white = pygame.__color_constructor(255,255,255,0)
playgame()

#开始游戏
def playgame():

五、关于贪吃蛇及食物的位置

#整个界面可以看成是许多个小方格组成,每个方块代表一个标准小格子,贪吃蛇蛇的长度可以用标准小格子表示。蛇身可以用列表储存。

#贪吃蛇的初始位置
snake_head = [100,100]
#初始化贪吃蛇的长度(这里是以20*20为一个标准格子,加入小蛇开始有三段,則有三个标准小格子"40.60.80")
snake_body = [[80,100],[60,100],[40,100]]
#贪吃蛇最初的前进方向,向右
direction ="right"
#改变方向,给方向赋予新的变量
changedirection=direction
#第一个食物的位置
food_position =[300,300]
#食物存在状态,0表示食物被吃,1表示食物存在
food_flag =1

六、关于贪吃蛇的上下左右移动

#通过监听键盘的输入,利用键盘的上下左右控制贪吃蛇移动
#检测键盘按键
for event in pygame.event.get():

#接受退出按键,退出游戏
    if event.type == quit():
    pygame.quit()
    sys.exit()

# 判断键盘方向键或者wasd来表示上下左右;
elif event.type == keydown;
    if(event.key == k_w)
        changedirection ='up'
    if(event.key == k_s)and direction != up:
        changedirection ='down'
    if (event.key == k_a) and direction != right:
        changedirection = 'left''
    if(event.key ==k_d)and direction != left:
        changedirection = 'right'

#接下来就是将蛇前进的方向按照键盘的输入就行转弯操作的实现
#备注:由于由于是列表存储的所以[0]调取的是列数,[1]改变的是劣数
    if direction == left:
        snake_head[0] -=20
    if direction == right:
        snake_head[0] +=20
    if direction == up:
        snake_head[0]-=20
    if direction == down:
        snake_head[0] -=20

#将蛇的头和蛇身连在一起
snake_body.insert(0,list())

七、判断能否迟到食物

#如果将蛇头和食物的位置重合,則判定为吃到食物,食物状态从【1】变成【0】
#若是没吃到到食物則蛇头跟具按键输入而改变方向,蛇身則将根据蛇头而该改变位置,蛇尾可以会被直接清除出列表
if snake_head[0]==food_position[0] and snake_head ==food_position[1]:
    food_flag=0
else :
    snake_body.pop()
#食物被吃后的重新生成,这里我们需要用到random函数生成随机位置(初始化时已经配置完毕)
if food_flag==0
    #随机生成,生成或食物状态又从0变成1
    x =random.randrange(1,32)
    y =random.randrange(1,24)
    food_position =[int(x*20),int(y*20)]
    food_flag=1

八、绘制贪吃蛇、食物的函数

    #绘制贪吃蛇
    def drawsnake(snake_body):
        for i in snake_body:
            pygame.draw.rect(display,black,rect(i[0],i[i],20,20))
    #绘制食物
    def drawfood(food_position):
            pygame.draw.rect(display,red,rect(food_position[0],food_position[1],20,20))

九、贪吃蛇的逻辑调用

    #贪吃蛇每移动一次或者逻辑调用一次,就通过刷新pygame的显示层。通过控制显示层的刷新速度就可以控制游戏执行速度。
    display.fill(white)
    #画出贪吃蛇
    drawsnake(snake_body)
    #画出食物的位置
    drawfood(food_position)
    #刷新pygame显示层,每次移动都可以刷新显示层的操作来显示。
    pygame.display.flip()
    #控制游戏速度
    fpsclock.tick(7)

十、主逻辑层判断游戏是否结束

  #游戏结束并退出
    def gameover():
        #gameover的颜色
    gameover_surf = BASICFINT.reder('抱歉,你挂了!',True,red)
    #gameover位置
    gameover_rect = gameover_surf.get_rect()
    gameover_surf.midtop =(320,10)
    #确定以上设置到句字
    display.blit(gameover_surf,gameover_rect)

    pygame.display.flip()
    #等待2秒,
    time.sleep(2)
    #退出游戏
    pygame.quit()
    #退出游戏
    sys.exit()
    
    #一、蛇头碰到边界
if   snake_head[0]<0 or [0]>620gameover()
if   snake_head[1]<0 or [1]>460;
    gameover()
    二、蛇头碰到自己
for i in snake_body[1:];
        if snake_head[0] ==i[0] and snake_head[1] ==i[1];
            gameover()
if __name__ == '__main__':
    main()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值