《我的世界》Python编程入门(7) 使用Python中的for循环语句放置多个方块

用Python实现简易版《Minecraft》 """"""setup()main()import sys# 每秒帧数# 你可以走的大小# 行走速度与飞行速度# 重力与跳跃高度"""return [""""""dx = x * mdy = y * m""""""FACES = [Parameters----------Returns-------"""Parameters----------Returns-------""""""o = n -15continuecontinue。 阅读详情

一、for循环

1.1 for循环格式

前面学过的while循环满足某条件时循环。
Python还有一种for循环,其基本格式如下:

for 临时变量  in   可迭代对象:
    循环体

其中,可迭代对象常见的有字符串、列表、元组、字典等,可迭代对象往往具有一系列元素,通常用临时变量代表其中的一个元素。for循环执行时,会按照可迭代对象元素的顺序依次循环,每次循环即执行一次循环体,因此for循环有时候也被称为遍历或迭代。

1.2 range函数

在本节课中,我们使用range()函数作为可迭代对象。
range()函数是Python内置函数,可以返回一系列整数。
range()函数有3种写法:

1. range(起始值, 终止值, 步长)

这种写法有3个参数,依次为起始值、终止值、步长值
返回的整数从起始值开始,间隔为步长值,最后一个值应小于终止值
例如:

for i in rage(1,9,2):
    print(i)

结果为:

1
3
5
7
2. range(起始值, 终止值)

这种写法有2个参数,依次为起始值、终止值,省去了步长,默认步长为1
range(起始值, 终止值)相当于range(起始值, 终止值,1)
返回的整数从起始值开始,间隔为1,最后一个值应小于终止值
返回整数范围:起始值<= 返回值 <终止值
例如:

for i in rage(1,5):
    print(i)

结果为:

1
2
3
4
3. range(终止值)

这种写法有1个参数终止值,默认起始值为0,步长为1
range(终止值)相当于range(0, 终止值,1)
返回的整数从起始值开始,间隔为1,最后一个值应小于终止值
返回整数范围:0<= 返回值 <终止值
例如:

for i in rage(5):
    print(i)

结果为:

0
1
2
3
4

补充:range()三种写法的等价关系

>>> range(5)
range(0, 5)
>>> range(0,5)
range(0, 5)
>>> range(0,5,1)
range(0, 5)

案例1 :使用for循环以及range函数建造建筑

在这里插入图片描述

案例分析

解决此案例的关键仍在确定方块的坐标,之前的案例手工修改坐标,效率太低,如果用for循环和range函数自动化确定坐标值呢?
在此案例中,所有方块的x坐标、z坐标相同,y坐标依次间隔1。因此,上面的方块的y坐标,总比下面一个方块的y坐标大2。
回想下range()函数的作用,它可以返回一系列的数字,还可以设置步长,在这个案例里步长为2。

案例代码

import mcpi.minecraft as minecraft
import mcpi.block as block

mc = minecraft.Minecraft.create()
pos = mc.player.getTilePos()

for i in range(2, 13 ,2):
    mc.setBlock(pos.x + 3, pos.y + i,pos.z, block.DIAMOND_BLOCK.id)

关键代码

  1. for i in range(2, 13 ,2):
    range(2,13,2)返回的值依次为2,4,6,8,10,12
    i作为临时变量,指代上述值,即循环时,i分别等于2,4,6,8,10,12
  2. pos.x + 3, pos.y + i, pos.z
    此案例中,每个方块x,z坐标都相同,因此,每次循环时x、z坐标值不变。需要改变的是y高度坐标,要求每个方块间隔一个高度,即每个方块的y坐标相差2,每次循环时,y坐标值应递增2,原y坐标值加上临时变量i即符合要求。

三、continue语句

break语句:退出整个循环
continue语句:跳出本次循环,回到循环语句起始继续执行循环
例如:

for i in range(6):
    if i==4:
        continue
    print(i)

结果为:

0
1
2
3
5

执行continue之后,循环体内后面的语句不再执行,直接回到for循环语句,进入下一个循环。

例如:

for i in range(6):
    if i==4:
        break
    print(i)

结果为:

0
1
2
3

执行break之后,终止循环,退出循环。

案例2:使用for循环、range函数、continue语句实现类似建筑,要求range函数只有1个参数。在这里插入图片描述

案例分析

此案例与案例1要求效果一样,区别仅在于range函数,由于只能用1个参数,因此,步长默认值只能为1。实现案例的关键点在于如何通过continue语句实现步长为2的效果。
在整数中,相邻的奇数或偶数之间的差值均为2,因此,判断临时变量i为奇数或偶数时再放置方块即可满足要求。当临时变量i不满足要求时不放置方法。

案例代码

import mcpi.minecraft as minecraft
import mcpi.block as block

mc = minecraft.Minecraft.create()
pos = mc.player.getTilePos()

for i in range(13):
    if i % 2 ==0:
        continue
    mc.setBlock(pos.x + 3, pos.y + i,pos.z, block.DIAMOND_BLOCK.id)

关键代码

  1. for i in range(13):
    range(13)返回的值依次为
    0,1,2,3,4,5,6,7,8,9,10,11,12
 if i % 2 ==0:
       continue

i%2==0,即i除以2的余数为0,i为偶数。此段代码含义为当i为偶数时,跳出本次循环,即不执行mc.setBlock(pos.x + 3, pos.y + i,pos.z, block.DIAMOND_BLOCK.id),不放置方块。这样只有i为奇数时才放置方块,满足了案例的要求。

课后练习

只使用for循环和带一个参数的range函数实现案例3。
要求:不使用continue语句
提示:思考下奇数、偶数有什么特点

总结

1. for循环

基本格式:

for 临时变量 in 可迭代对象:
    循环体

2. range函数

作用:返回一系列整数
三种形式:

range(start,end,step)#起始值<= 返回值 <终止值
range(start,end)     #step等于几?
range(end)           #start、step分别等于几?
【Python】《我的世界》简简单单就可以完成?OMG~(附教学) 我的世界 Minecraft》大家应该都听说过,但你有没有想过自己写一个这样的游戏呢?太难、太复杂了?也许吧,但是不试一试你怎么知道能不能成呢?国外有位叫fogleman的开发者就用Python做了这样的一件事——自制《我的世界 Minecraft》,谁能想到,仅仅900行的代码,玩起来竟然还像模像样的:接下来,我们就带你运行这个项目,并对这个开源的小游戏做一下简单的更改,让它变成“你的”世界。 阅读详情

相关推荐

【Python】新手入门:Python循环语句如何使用?while 循环怎么使用?无限循环怎么用?while 循环使用 else 语句?for语句如何使用?

python提供两种循环结构(for和while):当型循环基于条件成立持续执行代码块,遍历型循环逐项处理序列元素。支持嵌套结构实现多层迭代,配合跳出终止循环或跳过忽略当次迭代。循环可附加否则子句在正常结束时执行特定操作。内置范围函数生成数字序列,结合遍历实现精确次数控制。此机制是自动化重复任务的核心支撑。

专注Python编程与网络安全领域,分享原创技术文章与靶机渗透实战经验。以清晰的逻辑解构复杂技术,用深入浅出的笔触呈现:从Python基础到高级特性,从漏洞原理到攻防实践。在这里,代码与安全交织,思考与成长同行。 1292

用python实现Minecraft

用python制作一个Minecraft

xyx2023的博客 1万+

《Python入门到精通》循环语句 while循环,for循环

while 用来「反复执行」某一段代码,「满足条件」时进入循环,「不满足条件」时跳出循环。

wangyuxiang946的博客 1万+

2021-05-11

给大家提供一个python程序,是迷你世界的仿真版。 """ from zifan.site version 1.1.0 python 3.x """ import sys import random import time from collections import deque from pyglet import image from pyglet.gl import * from pyglet.graphics import TextureGroup from pyglet.window im

march20110303的博客 725

Python少儿编程入门篇(7)for 循环语句

for 循环格式: for 变量 variable 成员运算 in 序列 sequence: 语句行(块) else: 语句与while-else中的一样,非必须有且只有当循环正常结束才会执行到......

汉阳Hann's Home 1258

Python实现的我的世界源码,可直接使用

基于pygame实现的Python游戏 我的世界,游戏源码 可以直接使用,可以作为Python毕业设计和期末考试课题 环境Python3.8以上都可以直接使用编译器使用pycharm 没有装相关库的小伙伴,直接安装相对应的库就可以直接使用

《我的世界》Python编程入门(6) 使用Python在我的世界游戏中放置方块

案例1:放置方块 案例分析 导入案例用到的库 连接游戏 放置方块 案例代码 import mcpi.minecraft as minecraft #导入minecraft接口 import mcpi.block as block #导入方块接口 mc = minecraft.Minecraft.create() #通过接口连接游戏 pos = mc.player.getTilePos() #获取玩家当前坐标 mc.setBlock(pos.x + 3, pos.y, pos.z, block.STONE

mighty13的专栏 2万+

WRF模式学习入门基础(建议收藏!!!)

本文详细介绍了WRF-ARW(Advanced Research WRF)模式的结构组成,重点讲解了前处理系统(WPS)和主模式中的各个关键程序的功能与流程。通过对geogrid、ungrib、metgrid、real和wrf等模块的逐步解析,帮助初学者全面理解数值天气预报模型在初始化和运行过程中所需的关键步骤。

2503_90234341的博客 3075

【Python入门篇】——Python中循环语句(for循环的基础语法)

【Python入门篇】Python中循环语句(for循环的基础语法)

2201_75366661的博客 1万+

别再怕无霍尔BLDC了!手把手教你用反电动势过零检测搞定电机换向(附STM32代码片段)

本文详细介绍了无霍尔传感器BLDC电机的驱动方法,重点讲解反电动势过零检测技术及其在STM32上的实现。通过硬件电路设计、信号调理和软件算法优化,手把手教你完成电机换向控制,并提供实用的调试技巧和代码片段,帮助开发者快速掌握无霍尔BLDC驱动技术。

weixin_42522575的博客 492

LabVIEW+数据库应用系列保姆级教程,第一篇数据库连接

目录LabVIEW连接数据库的方法连接MySQL连接Oracle,SQL Server,Access等 LabVIEW连接数据库的方法 1、创建udl(Universal Data Link)是通用数据连接文件。界面操作,简单快捷。 2、编写连接字符串。需要熟悉连接字符串的结构,容易出错。 3、其他… 本教程教你使用第1种方法,也是最简单、最常用的方法。 连接MySQL 1、在MySQL Installer内安装MySQL Connector/ODBC,建议安装32位(X86),如下图: 2、创建ODBC

wwplh5520370的博客 1万+

【Python入门】Python循环语句(for循环的嵌套应用)

【Python入门】Python循环语句(for循环的嵌套应用)

m0_75058342的博客 6416

使用 VPN 访问太理内部网相关问题总结【太原理工大学】

电脑连接 VPN,访问校园内部网相关问题总结,太原理工大学。

m0_52861684的博客 9878

Python for循环语句

简介: Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。本文主要介绍一下Python中,for循环语句的使用。 1、Python for循环 for循环用于遍历一个序列(列表,元组,字典,集合或字符串)。 这不太像其他编程语言中的for关键字,而更像其他面向对象编程语言中的迭代器方法那样工作。 使用for循环,我们可以执行语句,对列表,元组,集合等中的每个项目执行一次。 例如: 打印输出列表: langs = ["c", "java", "python","cjavapy"] fo

weixin_52026996的博客 3万+

CoMP 协同多点传输技术

CoMP CoMP是什么 解决什么问题 有什么缺点 CoMP(Coordinated Multiple Points)协同多点传输,通信术语,LTE-A的重要技术之一。 CoMP传输是指地理位置上分离的多个传输点,协同参与为一个终端的数据(PDSCH)传输或者联合接收一个终端发送的数据(PUSCH),参与协作的多个传输点通常指不同小区的基站。CoMP技术将边缘用户置于几个基站的同频率上,几...

ilean_J的博客 2万+

【VS2017】“LNK1104 cannot open file ‘python39_d.lib‘ “

记录一下编译调用了python代码的C语言源程序时遇到的问题 版本:以python3.9.1为例 先确保你安装了python的debug版本,如果没有,用对应版本安装包可以修改已经安装的python,如图。 选择 “Modify” 选择next 确保最后一项勾选,然后install。 光安装了还不够,需要配置一下C语言编译器。 以VS2017为例: 将python37_d.lib(在安装目录下的libs文件夹里有python39_d.lib)所在文件夹的路径添加到库目录里面,右键你的解决方案,选.

m0_46296905的博客 6474

[Python入门]Python中的循环语句(for循环语句)

range ( ) 为 Python 的自有类,range() 带有内置的迭代方法__iter__() 和 __next()__ ,它是一个可迭代对象,我们可以通过 for 访问 range() 创建的迭代器。注:for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict 等,任何可迭代对象都可以作用于 for 循环,而内部如何迭代我们通常并不用关心。通常可迭代对象一般具备 iter() 和 next() 方法或者 __iter__() 和 __next()__ 方法。

zmx27265150667的博客 1万+

【OAG vs RAG】OAG工程实战(下):权限治理与多模型协同

本文摘要(149字): OAG工程体系的核心挑战在于权限治理与多模型协同。文章深入探讨OMA(对象管理权限)系统,实现细粒度访问控制:通过对象级权限管理行级安全,属性级权限控制敏感字段脱敏,确保AI Agent权限不越界。系统采用三层次防护:对象策略控制记录可见性,属性策略处理字段级脱敏,动作策略限制操作范围。权限验证贯穿Agent执行全流程,结合多模型交叉验证机制,构建企业级AI安全防线。这些设计使OAG系统从技术演示升级为生产可用的企业解决方案。

求知若渴、虚心若愚 105

Python循环语句(while循环、for循环)

Python循环语句(while循环、for循环)

LAO__LIN的博客 1万+

AI Agent Harness与SCADA系统集成

简单来说,AI Agent Harness是Industrial AI Agent的“中央调度室+装备库+知识库+安全网”把不同技术栈、不同部署环境(云/边/端)、不同功能(感知、推理、决策、执行、验证)的“零散Agent”组装成具备特定工业场景能力的Agent Team(如聚合反应根因诊断Agent Team);管理Agent Team的生命周期(创建、初始化、调度、监控、销毁);提供统一的工业多工具调用接口(对接SCADA、MES、PLC、DCS、巡检机器人、数字孪生平台等);内置。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 355

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Python-for循环语句

循环引入 for循环语句 for循环嵌套语句 for和else/break/pass 一、循环引入 循环结构 一般情况下,需要 多次重复执行的代码,都可以用循环的方式来完成 (循环不是必须要使用的,但是为了 提高代码的重复使用率,所以有经验的开发者都会采用循环 for的循环: for循环作为编程语言中最强力的特征之一 Python可以使用for语句循环遍历整个序列 的值 Range()函数 该函数是Python的内置函数,用于生成一系列连续的整数, 多用于for循...

weixin_50339323的博客 7585

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Python编程中的for循环语句学习教程

@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 这篇文章主要介绍了Python编程中的for循环语句学习教程,是Python入门学习中的基础知识,需要的朋友可以参考下 Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。 语法: for循环的语法格式如下: for iterating_var in sequence: statements(s) 流...

python函数基础教程 2207

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Python循环语句:for循环和while循环

Python的for循环语句和while循环语句和语句中经常用到的break、continue、pass命令,else子句在循环中的使用。

a4546565的博客 1466

15.从入门到精通:Python循环语句 while 循环 无限循环 while 循环使用 else 语句 简单语句组 for 语句 for...else

while循环的条件是i小于等于10,当i小于等于10时,执行循环体中的两行代码,即将i加到sum中,并将i加1,然后再次判断条件是否为True,如果是则继续执行循环体,直到i大于10时结束循环。其中,条件是一个布尔表达式,如果条件为True,则执行循环体中的代码,执行完毕后再次判断条件是否为True,如果是则继续执行循环体,直到条件为False时结束循环。其中,变量是循环中的变量,序列是要遍历的序列,循环体代码是要执行的代码块,else代码块是在循环结束后执行的代码块。语句,输出相应的信息。

weixin_63740705的博客 4429

python循环语句for 循环十次_Python 循环语句之 while,for语句详解

循环语句(有两种):while 语句for 语句while 语句:问题:输入一个整数n,让程序输出n行的:hello 1hello 2.......hell nwhile 语句:作用:根据一定条件,重复的执行一条语句或多条语句语法:while 真值表达式:语句块1......else:语句块2......说明:1,先执行真值表达式,测试布尔值为True或False2,如果真值表达式的测试值为T...

weixin_39582708的博客 1203

python中for循环流程图_Python编程中的for循环语句学习教程

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。语法:for循环的语法格式如下:for iterating_var in sequence:statements(s)流程图:实例:#!/usr/bin/python# -*- coding: UTF-8 -*-for letter in 'Python': # 第一个实例print '当前字母 :', letterfr...

weixin_39926749的博客 1621
上一篇: 《我的世界》Python编程入门(6) 使用Python在我的世界游戏中放置方块
下一篇: 《我的世界》Python编程入门(8)建造房屋
mighty13
博客等级 码龄23年 728粉丝 438原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值