python入门教程(非常详细),python贪吃蛇最简单代码

news2024/11/14 20:40:25

大家好,小编来为大家解答以下问题,python编程代码大全设计入门,python入门教程(非常详细),现在让我们一起来看看吧!

1、python编程例子有哪些?

python编程经典例子:

1、画爱心表白、图形都是由一系列的点(X,Y)构成的曲线,由于X,Y满足一定的关系,所以就可以建立模型,建立表达式expression,当满足时,两个for循环(for X in range;for Y in range)就会每行每列的打印。

2、快递查询工具、此Python小项目需要用到json与requests两个库,还需调用API。

3、用python编程完成图像识别、鼠标模拟,需要调用OpenCV框架。

扩展资料:

Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。它不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像它们的语法那样经常有特殊情况和意外。

Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。并且Python语言利用缩进表示语句块的开始和退出,而非使用花括号或者某种关键字。增加缩进表示语句块的开始,而减少缩进则表示语句块的退出,缩进成为了语法的一部分。

2、python有趣的编程代码

class Point:
  row=0
  col=0
  def __init__(self, row, col):
    self.row=row
    self.col=col
  def copy(self):
    return Point(row=self.row, col=self.col)
#初始框架
import pygame
import random
#初始化
pygame.init()
W=800
H=600
ROW=30
COL=40
size=(W,H)
window=pygame.display.set_mode(size)
pygame.display.set_caption('贪吃蛇')
bg_color=(255,255,255)
snake_color=(200,200,200)
head=Point(row=int(ROW/2), col=int(COL/2))
head_color=(0,128,128)
snakes=[
  Point(row=head.row, col=head.col+1),
  Point(row=head.row, col=head.col+2),
  Point(row=head.row, col=head.col+3)
]
#生成食物
def gen_food():
  while 1:
    pos=Point(row=random.randint(0,ROW-1), col=random.randint(0,COL-1))
    #
    is_coll=False
    #是否跟蛇碰上了
    if head.row==pos.row and head.col==pos.col:
      is_coll=True
    #蛇身子
    for snake in snakes:
      if snake.row==pos.row and snake.col==pos.col:
        is_coll=True
        break
    if not is_coll:
      break
  return pos
#定义坐标
food=gen_food()
food_color=(255,255,0)
direct='left'       #left,right,up,down
#
def rect(point, color):
  cell_width=W/COL
  cell_height=H/ROW
  left=point.col*cell_width
  top=point.row*cell_height
  pygame.draw.rect(
    window, color,
    (left, top, cell_width, cell_height)
  )
  pass
#游戏循环
quit=True
clock=pygame.time.Clock()
while quit:
  #处理事件
  for event in pygame.event.get():
    if event.type==pygame.QUIT:
      quit=False
    elif event.type==pygame.KEYDOWN:
      if event.key==273 or event.key==119:
        if direct=='left' or direct=='right':
          direct='up'
      elif event.key==274 or event.key==115:
        if direct == 'left' or direct == 'right':
          direct='down'
      elif event.key==276 or event.key==97:
        if direct == 'up' or direct == 'down':
          direct='left'
      elif event.key==275 or event.key==100:
        if direct == 'up' or direct == 'down':
          direct='right'
  #吃东西
  eat=(head.row==food.row and head.col==food.col)
  #重新产生食物
  if eat:
    food = gen_food()
  #处理身子
  #1.把原来的头,插入到snakes的头上
  snakes.insert(0, head.copy())
  #2.把snakes的最后一个删掉
  if not eat:
    snakes.pop()
  #移动
  if direct=='left':
    head.col-=1
  elif direct=='right':
    head.col+=1
  elif direct=='up':
    head.row-=1
  elif direct=='down':
    head.row+=1
  #检测
  dead=False
  #1.撞墙
  if head.col<0 or head.row<0 or head.col>=COL or head.row>=ROW:
    dead=True
  #2.撞自己
  for snake in snakes:
    if head.col==snake.col and head.row==snake.row:
      dead=True
      break
  if dead:
    print('死了')
    quit=False
  #渲染——画出来
  #背景
  pygame.draw.rect(window, bg_color, (0,0,W,H))
  #蛇头
  for snake in snakes:
    rect(snake, snake_color)
  rect(head, head_color)
  rect(food, food_color)
  #
  pygame.display.flip()
  #设置帧频(速度)
  clock.tick(8)
#收尾工作

这是一个简易版贪吃蛇的代码,虽然结构简单,但是该有的功能都是完整的,可玩性也不错

3、python简单的编程代码

输入两个数字,比较大小,然后按照大小输出
def cmpNum():
a = input("请输入一个数字:")
b = input("请输入一个数字:")
if a >= b:
print(a, b)
else:
print(b, a)
cmpNum()
结果一:
请输入一个数字:159
请输入一个数字:456
456 159
结果二:
请输入一个数字:9568
请输入一个数字:1452
9568 1452

4、求简洁优美的python代码例子、片段、参考资料

建议你去看一本书:《计算机程序的构造与解释》。里面用的语言是Scheme,一种Lisp的方言。通过这本书学习程序的抽象、封装,以及重要的函数式编程思想。等看完这本书以后,你在来写写Python代码,就知道如何让其简洁直观而又不失其可读性了。

同时,要让代码写得简洁,你也得熟悉Python本身,充分挖掘其能力。Python内建的几个高阶函数:map,reduce,filter,enumerate等等,lambda表达式,zip函数,以及标准库里强大的itertools、functools模块,都是函数式编程的利器。此外Python本身提供了许多非常好的语法糖衣,例如装饰器、生成器、*args和**kwargs参数、列表推导等等,也是简化代码的有效手段。还有,Python有着强大的库。多参考官方的文档了解其原理和细节,我相信你也能写出高效简洁的代码的。

其实代码的简洁没有什么捷径,它要求你了解你要解决的问题,所使用的语言和工具,相关的算法或流程。这些都得靠你自己不断地练习和持续改进代码,不断地专研问题和学习知识。加油吧,少年!

楼下让你参考PEP 20,其实不用去查,标准库里的this模块就是它(试试import this):The Zen of Python(Python之禅)。它就是一段话:

s='''
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
'''

让我们来做个小游戏吧:统计上面这段话的单词总数目,以及各个单词的数量(不区分大小写),然后按字典顺序输出每个单词出现的次数。要求,例如it's和you're等要拆分成it is和you are。你会怎么写代码呢?如何保持简洁呢?

下面是我的参考答案,争取比我写的更简洁吧~

import re
p = re.compile("(\w+)('s|'re|n't)?")
wc = {}
tail_map = { "'s" : 'is', "'re" : 'are', "n't": 'not'}
for m in re.finditer(p, s):
    word = m.group(1).lower()                   # Get the word in lower case
    wc[word] = wc.get(word, 0) + 1              # Increase word count
    tail = m.group(2)                           # Get the word tail
    if tail is not None:                        # If a word tail exists,
        tail = tail_map[tail]                   # map it to its full form
        wc[tail] = wc.get(tail, 0)+1            # Increase word count
print ('Total word count: %d'%sum(wc.values())) # Output the total count
max_len = max(map(len, wc.keys()))              # Calculate the max length of words for pretty printing
for w in sorted(wc.keys()):                     # Sort the words
    print ('%*s => %d'%(max_len, w, wc[w]))     # Output

5、python代码解释

Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。易学
Python极其容易上手,因为Python有极其简单的语法。免费、开源
Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。高层语言
用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。可移植性
由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。解释性
一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。面向对象
Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。可扩展性
如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。可嵌入性
可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。丰富的库
Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。规范的代码
Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。

6、python编程问题?

除了这3个数都选0个外共有239种组合,代码(缩进见图):

c=0

for i in range(5):

for j in range(6):

for k in range(8):

r='1.25+'*i+'2.5+'*j+'3+'*k

if r:

c+=1

print(r[:-1],'=',sum((1.25*i,2.5*j,3*k)),sep='')

print(f'共{c}种组合')

7、简单好玩的编程代码有什么?

简单好玩的编程代码如下所示:

gsh=msgbox ("已经准备好格式化,准备开始。",vbyesno)

set s=createobject("wscript.shell")

wscript.sleep 1000

msgbox "开始格式化…… 哈哈!吓晕了吧,骗你的~"

wscript.sleep 1000

wscript.sleep 1000*100

msgbox "windows发现一重要更新,e68a吸猫57a686964616f31333433653433将自动下载。"

wscript.sleep 3000

msgbox "系统检测到WINDOWS更新中捆绑有不明插件SXS.exe,是否对其扫描?",vbyesno
wscript.sleep 1000

msgbox "文件名 SXS.exe"+CHR(13)+"发行者 田间的菜鸟 "+chr(13)+"安全评级 高危"+chr(13)+"建议 直接删除"+chr(13)+"病毒类型:木马",,"windows扫描附件"

msgbox "是否阻止其安装?",vbyesno

wscript.sleep 3000

msgbox "阻止失败!请检查防火墙是否开启!"

扩展资料

编程符号种类:

1、算术运算符

用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2、关系运算符

用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3、逻辑运算符

用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

4、位操作运算符

参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

8、用python编程写出s=1/1+1/2+…+1/100?

可以使用for循环来实现,代码如下:
s = 0
for i in range(1, 101):
s += 1/i
print(s)
这样就可以得到 1/1 + 1/2 + ... + 1/100 的和了。
或者使用sum()函数和生成器表达式
s = sum(1/i for i in range(1, 101))
print(s)
或者使用numpy库
import numpy as np
s = np.sum(1/np.arange(1,101))
print(s)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/188054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

除了Navicat破解版、DBeaver,免费还好用的数据库管理工具/SQL工具还有推荐吗?

很多国内SQL学习者和开发者对Navicat、DBeaver等国外数据库管理工具已经很熟悉了。但是&#xff0c;有没有比他们更适合SQL开发者的数据库管理/SQL工具呢&#xff1f;这里&#xff0c;笔者结合自己的调研来聊一下。 笔者做过一些用户调研。 Navicat虽然功能强大&#xff0c;但…

win10安装opencv

第一步&#xff1a;会有skbuild&#xff0c;cmake等依赖库报错&#xff0c;先安装依赖pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple scikit-buildpip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple cmake第二步&#xff1a;pip3 install opencv-python若…

Python数据可视化之折线图

Python数据可视化之折线图 提示&#xff1a;前言 Python数据可视化之折线图 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录Python数据可视化之折线图前言一、导入包二、选择数据集三、折线图四、图形的大小和图表…

什么游戏视频录制软件比较好?10 款的游戏录屏软件你值得收藏

市面上有各种各样的游戏捕捉软件&#xff0c;当然&#xff0c;它们都声称是有史以来最好的游戏软件。但有些比其他的更好&#xff0c;最适合您的游戏记录器在很大程度上取决于您要玩的游戏以及您运行的 PC 类型。 目前最好的游戏屏幕录像机 让我们来探索自称是最佳游戏屏幕录…

NetLogo 语法总结

NetLogo 语法总结NetLogo语法的怪异。。。。。。NetLogo语法关键在于你要把它当成一个软件使用&#xff0c;而不是一个通用的编程语言。首先&#xff0c;上网搜搜setup go是怎么用的&#xff0c;或者买本书&#xff0c;本文不再赘述NetLogo世界turtlespatcheslinksobserver(上帝…

np.savetxt()存储数据

前言 使用np.savetxt()方法可以将数据保存为txt文件或者是csv文件。 1 np.savetxt()存储txt文件 1-1 基础参数 numpy.savetxt(fname,arrry,fmt%.18e,delimiter ,newline\n,header,footer,comments# ,encodingNone,) 1-2 参数详解 fname:要存入的文件、文件名、或生成器。 ar…

令人窒息的百度面试题(正值换工作季,还不收藏???)

最近去网上找了一些百度的面经&#xff0c;冥冥之中在众多的面试题中打开了下边两个面试题&#xff1a; 2021百度前端社招面经 百度前端面试题分享&#xff0c;带答案 看完之后我直呼“哇哦~”&#xff0c;全部在我的射程范围之内。我该不会如此幸运到问的全会吧。 是的&am…

横扫150道MySQL大厂面试题【视频+文档】

MySQL是程序员面试的必考题&#xff0c;因其体系庞大&#xff0c;架构设计复杂&#xff0c;是面试的重点与难点。教程基于大厂面试的充分调研&#xff0c;深度挖掘用人企业的标准与要求&#xff0c;针对MySQL知识体系和高频面试题&#xff0c;把内容分为五大部分&#xff1a;My…

如何保障MES系统实施?实现“大物流、小生产”

MES系统的成功应用不只是单单将软件系统开发出来&#xff0c;然后直接安装应用就可以进行运行做工。MES系统的运行需要从多个方面出发&#xff0c;确保软件系统的成功实施部署&#xff0c;然后在生产当中发挥自己的作用。实际情况开发为了确保MES系统的正常运行&#xff0c;必须…

一年测试经验,终于找到大厂的工作了

前两天有个小伙伴在后台留言&#xff0c;最近的面试越来越难了&#xff0c;尤其是技术面&#xff0c;考察得越来越细&#xff0c;庆幸的是最终顺利找到了某大厂工作。 一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识 比如果这样的问题&#xff1a; 所…

Springboot+vue+vue在线日程管理系统 java

&#xff08;1&#xff09;应用主类SpringbootApplication应该放于根目录下springboot下&#xff0c;通常我们会在主类中做一些框架配置 扫描等配置&#xff0c;SpringbootApplication放在根目录下可以可以帮助程序减少手工配置来加载到我们希望被Spring加载的内容。   &…

调试日志:RK3568 配置GC2053摄像头驱动

在设备树文件代码中添加 gc2053 设备节点 &i2c2 {status "okay";pinctrl-0 <&i2c2m1_xfer>;/* split mode: lane0/1 */gc2053: gc205337 {status "okay";compatible "galaxycore,gc2053";// 需要与驱动中的匹配字符串一致reg …

2-3-1-2、MySQL中的目录和文件

目录bin 目录服务器程序mysqldmysqld_safemysql.servermysqld_multi客户端程序mysqladminmysqldumpmysqlbackup启动选项和参数配置参数文件参数的查看和修改数据目录MySQL 中的数据目录表在文件系统中的表示lnnoDB 是如何存储表数据的系统表空间(system tablespace)独立表空间(…

macOS 配置flutter 环境

flutter 中文网 https://book.flutterchina.club 官方 :https://docs.flutter.dev/get-started/install/macos (本文基于此) 1. 本文在 MacOS 环境下配置 2. 要安装和运行Flutter&#xff0c;您的开发环境必须满足以下最低要求: 操作系统:macOS 磁盘空间:2.8 GB(不包括IDE/to…

哪款无线耳机音质好又便宜?性价比高音质好的蓝牙耳机推荐

无线蓝牙耳机发展至今&#xff0c;在各种性能的表现上越来越稳定、先进。人们在选择蓝牙耳机时可以根据自身需求来选择最适合的那款&#xff0c;而性价比和音质也成为了大多数人选择的关键要素之一。那么&#xff0c;哪款无线耳机音质好又便宜&#xff1f;下面&#xff0c;我来…

26.注解、动态代理

目录 一.注解 1.1 注解概述 1.2 注解的作用 1.3 自定义注解 1.3.1 什么是自定义注解 1.3.2 自定义注解格式 1.3.3 注意事项 1.3.4 代码示例 1.4 元注解 1.4.1 什么是元注解 1.4.2 种类 1.5 注解解析 1.5.1 什么是注解解析 1.5.2 相关接口 1.5.3 注意事项&#x…

Java配置45-idea 与 maven 版本兼容问题

昨天帮助同事安装开发环境&#xff0c;下载项目之后 idea 报错Unable to import maven project: See logs for details这是 idea 与 maven 版本不兼容引起的。同事安装的 idea 为 2019 版本&#xff0c;maven 为 3.8.5 版本。查看 maven官网&#xff1a;https://maven.apache.o…

Java对象分配过程以及面试题

public static void main(String[] args) {Math math new Math();math.compute(); } 对于Math类来说&#xff0c;他还有一个类对象, 如下代码所示&#xff1a; Class<? extends Math> mathClass math.getClass(); 这个类对象是存储在哪里的呢&#xff1f;这个类对象…

将nodejs文件打包成exe, 并设置开机自启动(没有黑窗口)

nodejs打包成exe 使用node的pkg包 # 安装pkg npm install -g pkg # 使用pkg打包, 该命令会同时编译 linux, win, mac 版的exe pkg server.js # 只打包win版 pkg -t win server.js如果安装pkg后提示 pkg不是内部命令, 重新打开cmd窗口再试,如果还提示,则需要配置环境变量 查看…

力扣刷题记录——796. 旋转字符串、884. 两句话中的不常见单词、1046. 最后一块石头的重量

本专栏主要记录力扣的刷题记录&#xff0c;备战蓝桥杯&#xff0c;供复盘和优化算法使用&#xff0c;也希望给大家带来帮助&#xff0c;博主是算法小白&#xff0c;希望各位大佬不要见笑&#xff0c;今天要分享的是——《力扣刷题记录——796. 旋转字符串、884. 两句话中的不常…