99. for循环练习题-3种方式输出0-9

news2024/11/24 4:12:09

【目录】

文章目录

  • 99. for循环练习题-3种方式输出0-9
    • 1. for循环和while循环的区别
    • 2. 输出 0~(n-1)的数字
      • 2.1 基础代码
      • 2.2 自定义函数代码
      • 2.3 异常处理语句代码

【正文】

99. for循环练习题-3种方式输出0-9

1. for循环和while循环的区别

for循环和while循环都用于重复执行特定的代码块。

【for循环语法】

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

【while循环语法】

while 条件表达式:
    循环体

【区别】

while循环中,只有一个循环条件,如果为真,则执行循环体代码;否则,跳出循环。

while循环没有明确的计数器或循环变量,需要在循环体中手动更新条件或使用break语句来跳出循环。

有明确的条件,用while循环。

不确定条件,但明确了在某个范围之内,用fo循环。

2. 输出 0~(n-1)的数字

【目标任务】

在同一行内输出 0-n 中的前 n 个数字,输出的每个数字后跟一个空格

【输入要求】

输入一个不大于10的正整数n。

【输出要求】

在同一行中输出 0~(n-1) 的数字。

【示例】

输入:3

输出:0 1 2

【思路解析】

输出 0~(n-1) 的数字,0~(n-1)这是一个范围。

在某个范围内,我们用for语句来实现。

2.1 基础代码

【代码示例】

n = int(input("请输入数字 n: "))

for i in range(n):
    print(i, end=" ")

【终端输出】

0 1 2 

终端输入3,输出结果为0 1 2

【代码解析】

n = int(input("请输入数字 n: "))

input函数获取用户输入的数字,注意input函数接收的数据类型为字符串类型。

int函数其字符串类型的数据转换为整数类型后赋值给变量 n

for i in range(n):

for循环语法:

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

`i`` 是迭代变量。

range(n) 是迭代对象。

使用 for 循环和 range(n) 来生成一个从 0n-1 的整数序列。

range(n) 函数会生成一个包含 0 到 n-1 的序列,每次循环迭代时,将当前迭代的值赋值给变量 i。

注意注意 for 循环语句后面接一个英文冒号:,冒号后面的循环体代码需要有4个空格的缩进。

注意注意 range(n)是生成的序列只到n-1,不包含n

print(i, end=" ")

这是是for语句要循环执行的代码。

注意该语句前有4个空格的缩进。

print(i, end=" ") 将每个数字打印出来,并用空格作为分隔符。

end=" " 的作用是将默认的换行符 "\n" 替换为一个空格,这样数字就会在同一行上输出。

print函数语法:

print(value,, sep=' ', end='\n', file=sys.stdout, flush=False)

一个完整的print()函数有5个参数:

end参数设定输出语句以什么结尾,默认是换行符\n结尾,即输出后会重新起一行。

注意题目要求在同一行内,且每个数字后跟一个空格,因此这里需要添加 end=' '

【没有end参数,默认 end=‘\n’】

n = 3
for i in range(n):
    print(i)

【终端输出】

0
1
2

【end=" "】

n = 3
for i in range(n):
    print(i, end= " ")

【终端输出】

0 1 2 

【区别】

默认时,end='\n'输出有换行效果。

end= " " 输出的数字以空格作为间隔。

2.2 自定义函数代码

【代码示例】

def print_numbers(n):
    for i in range(n):
        print(i, end=" ")

n = int(input("请输入数字 n: "))
print_numbers(n)

【终端输出】

0 1 2 

【代码解析】

def print_numbers(n):

def 语句定义了一个名为 print_numbers 的函数,它接收一个参数 n。

  • def 是关键字。
  • print_numbers函数名称,你可以根据自己的喜欢命名。
  • ( ) 一对英文圆括号。
  • n 是自定义函数接收的参数。

注意注意,如果有多个参数,参数之间使用英文逗号,分隔。

注意注意,如果没有参数,也必须保留一对空的英文圆括号( ),否则程序会报错。

for i in range(n):
    print(i, end=" ")

在函数内部,我们使用 for 循环和 range(n) 来生成一个从 0 到 n-1 的整数序列,并使用 print 函数将每个数字逐个打印出来。

我们使用 end=" " 参数来指定以空格作为分隔符,使得数字在同一行上输出。

n = int(input("请输入数字 n: "))

input函数从终端获取一个数字 n 。

print_numbers(n)

调用函数语法:

函数名(参数列表)

当你定义了一个函数后,你可以通过函数名加上一对圆括号来调用它。

括号里可以包含函数需要的参数。

如果函数没有参数,则括号可以为空。

  • print_numbers是函数名。
  • ( )一对英文圆括号。
  • n实际传入给函数的值。

2.3 异常处理语句代码

没有学过异常处理语句的同学,请忽略该部分内容。

要加入异常处理语句,就要先确定程序可能引发的异常错误。

上面的代码异常可能发生在终端输入。

终端输入有以下几种情况:

  • 输入一个正整数。
  • 输入一个负整数。
  • 输入0。
  • 输入一个小数。
  • 输入的内容非数据类型。

【输入一个正整数:3】

def print_numbers(n):
    for i in range(n):
        print(i, end=" ")

n = int(input("请输入数字 n: "))
print_numbers(n)

【终端输出】

0 1 2 

【输入一个负整数:-3】

def print_numbers(n):
    for i in range(n):
        print(i, end=" ")

n = int(input("请输入数字 n: "))
print_numbers(n)

终端输入-3,程序什么也没输出。

【代码解析】

print(list(range(-3)))

【终端输出】

[]

range函数语法为:

range`(start,end,step)`

range 函数有3个参数start,end,step

在 range 函数中,如果传入的 end 参数小于等于 start 参数,并且步长 step 的符号与 start - stop 的符号相同,那么生成的序列将为空。

list(range(-3))返回的是空列表。

for i in range(-3): 没有可以遍历的内容,因此for循环语句没有任何输出。

range函数相关知识可参考下面的链接:

42. range函数—生成器函数-更新

【输入0】

def print_numbers(n):
    for i in range(n):
        print(i, end=" ")

n = int(input("请输入数字 n: "))
print_numbers(n)

【代码解析】

print(list(range(0)))

【终端输出】

[]

range(0)range(-3)一样,都是空的,不会有内容返回。

【输入一个小数:0.3】

def print_numbers(n):
    for i in range(n):
        print(i, end=" ")

n = int(input("请输入数字 n: "))
print_numbers(n)

【终端输出】

ValueError: invalid literal for int() with base 10: '0.3'

range函数接收的参数必须是整数。

当输入小数时程序报错。

ValueError: invalid literal for int() with base 10: '0.3':“传入的值错误:使用十进制将 ‘0.3’ 转换为整数时出现无效字面值”。

【输入的内容非数据类型:p】

def print_numbers(n):
    for i in range(n):
        print(i, end=" ")

n = int(input("请输入数字 n: "))
print_numbers(n)

【终端输出】

ValueError: invalid literal for int() with base 10: 'p'

ValueError: invalid literal for int() with base 10: p':“传入的值错误:使用十进制将 ‘p’ 转换为整数时出现无效字面值”。

【思路解析】

输入一个正整数 - 程序正常运行
输入一个负整数 - 程序没有输出
输入0 -程序没有输出
输入一个小数- 程序报错 - ValueError: invalid literal for int() with base 10: '0.3'
输入的内容非数据类型-程序报错 - ValueError: invalid literal for int() with base 10: 'p'

【解决可能出现的异常】

输入一个负整数 - 输入的数<0,请重新输入
输入0 -输入的数=0,请重新输入
输入一个小数 - 用except语句抛出ValueError异常
输入内容非数据类型 - 用except语句抛出ValueError异常

【代码示例:99-1.py】

def print_numbers(n):    
    for i in range(n):
        print(i, end=" ")    

try:
    n = int(input("请输入数字 n: "))
    while n<= 0:
        n = int(input("输入的数字小于等于0,请重新输入数字 n: "))
    print_numbers(n)
except ValueError as e:
    print("您输入的不是正整数!", e)

源代码请到金山文档对应文件夹下载。

【终端输出】

在这里插入图片描述

【代码解析】

def print_numbers(n): 

定义了一个名为 print_numbers 的函数,该函数接受一个参数 n

for i in range(n):

使用 for 循环遍历从 0 到 n-1 的数字。

print(i, end=" ")  

打印每个数字 i,并以空格作为分隔符。

try:    

try…except 是捕获异常语句。

try 语句块中的代码会被执行。

如果执行过程中出现了异常,就会跳转到 except 语句块中的代码执行。

n = int(input("请输入数字 n: "))   

提示用户输入一个数字,并将其转换为整数类型,赋值给变量 n。

while n<= 0:      

当输入的数字小于等于 0 时,进入循环。

n = int(input("输入的数字小于等于0,请重新输入数字 n: "))    

输入的数字小于等于 0 时,提示用户重新输入一个数字,并将其转换为整数类型,赋值给变量 n。

print_numbers(n)

当输入的数字为正整数时,执行该语句。

调用函数 print_numbers,传入参数 n,以打印从 0 到 n-1 的数字序列。

调用函数语法函数名(参数列表)

except ValueError as e:   

当输入的内容不是数据类型,就会执行except语句。

  • except:关键字。

  • ValueError:异常名称。

  • as:关键字。

  • e可选参数,表示给前面的的异常指定一个别名,该别名可根据你的喜欢命名。

print("您输入的不是正整数!", e)

打印出错误消息,指示用户输入的不是一个正整数。

e可以输出该语句:ValueError: invalid literal for int() with base 10: 'p'

有关异常语句的相关内容可参考下面的链接:

95. Python基础教程:异常处理try…except语句

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

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

相关文章

AI Infra工具关键能力解析:数据准备、模型训练、模型部署与整合

在预训练大模型时代,我们可以从应用落地过程里提炼出标准化的工作流,AI Infra的投资机会得以演绎。传统ML时代AI模型通用性较低,项目落地停留在“手工作坊”阶段,流程难以统一规范。而大规模预训练模型统一了“从0到1”的技术路径,具备解决问题的泛化能力,能够赋能“从1到…

WiFi小工具homedale,可以切换同名WiFi节点

有一个很小众的需求&#xff0c;就是多个路由器组网时候&#xff0c;PC有时不会自动切换同名WiFi&#xff0c;homedale这个工具可以满足手动切换需求 这个界面可以看到所有节点列表&#xff0c;可以看到有很多同名的 可以选择自己想要的那个&#xff0c;比如信道/信号强度&am…

avd(emulator)设置代理以及与pc互访

默认pc127.0.0.1是还回ip&#xff0c;模拟器使用127.0.0.1指向了自己&#xff0c;模拟器使用10.0.2.2指代pc地址&#xff0c;这点在官方文档有说明可以查看,所以想要挂代理抓包就需要为模拟器设置代理为10.0.2.2 安卓模拟器设置代理 前提&#xff1a;本机开启了代理如&#xf…

nodejs+vue+elementui健康饮食美食菜谱分享网站系统

本系统采用了nodejs语言的vue框架&#xff0c;数据采用MySQL数据库进行存储。结合B/S结构进行开发设计&#xff0c;功能强大&#xff0c;界面化操作便于上手。本系统具有良好的易用性和安全性&#xff0c;系统功能齐全&#xff0c;可以满足饮食分享管理的相关工作。 语言 node.…

05 mysql innodb page

前言 最近看到了 何登成 大佬的 "深入MySQL源码 -- Step By Step" 的 pdf 呵呵 似乎是找到了一些 方向 之前对于 mysql 方面的东西, 更多的仅仅是简单的使用[业务中的各种增删改查], 以及一些面试题的背诵 这里会参照 MySQL Internals Manual 来大致的看一下 i…

06_Hudi案例实战

本文来自"黑马程序员"hudi课程 6.第六章 Hudi案例实战 6.1 案例架构 6.2 业务数据 6.2.1 消息数据格式 6.2.2 数据生成 6.3 七陌数据采集 6.3.1 Apache Flume 是什么 6.3.2 Apache Flume 运行机制 6.3.3 Apache Flume 安装部署 6.3.4 Apache Flume 入门程序 6.3.5 七…

springboot项目重启的shell命令

大家好&#xff0c;我是雄雄&#xff0c;微信公众号&#xff1a;雄雄的小课堂&#xff0c;欢迎关注。 前言 我们都知道&#xff0c;springboot项目启动的时候&#xff0c;需要如下过程&#xff1a; 查找 服务的进程id杀掉该进程启动服务 并且每一步都有对应的shell命令&…

torch.cat() stack()函数使用说明,含实例及运行结果

torch.cat和stack函数使用说明&#xff0c;含实例及运行结果 torch.cat() 函数torch.cat() 函数定义参数及功能二维数据实例解释参数dim0参数dim1参数dim-1 torch.stack() 函数torch.stack() 函数定义参数及功能二维数据实例解释参数dim0参数dim1参数dim2参数dim-1 参考博文及感…

关于Neo4j的使用及其基本命令

关于Neo4j的使用 文章目录 关于Neo4j的使用1、启动方式2、创建新节点&#xff0c;节点内有属性3、创建关系4、查询节点5、查询关系6、删除两个节点的关系7、删除节点8、删除某个标签的全部关系9、某个节点添加属性10、删除节点某个属性 1、启动方式 进入bin目录&#xff1a; …

成人自考-英语二-大纲要求及考试题型及分值详细介绍

感谢内容提供者&#xff1a;金牛区吴迪软件开发工作室 文章目录 一、大纲要求二、考试题型及分值1. 总览2. 样卷【2015年】(1) 阅读判断(2)阅读选择(3)概括段落大意(4)补全句子(5)填句补文(6)填词补文(7)完形补文(8)短文写作 一、大纲要求 二、考试题型及分值 1. 总览 2. 样卷…

视野狭窄--程序员的解决之道

为什么会发生这种情况&#xff1f; 这是我学到的最艰难的一课&#xff1a;辛勤工作和意图并不等同于商业影响力。我太专注于对给定问题的出色解决&#xff0c;而没有停下来考虑我是否在解决正确的问题。我在工程师身上投入的所有时间并没有使我们解决的问题变得更重要。你的主…

射频入门知识-混频器-1

5.4混频电路-视频_哔哩哔哩_bilibili ​​​​​​​

图·c++

数据结构&#xff1a; 邻接矩阵&#xff0c;邻接表 1.图的存储方式&#xff1a;邻接矩阵&#xff0c;邻接表 1.稀疏图和稠密图 2.无向图&#xff1a; n n n 个点&#xff0c;最多 n ( n − 1 ) / 2 n(n-1)/2 n(n−1)/2 条边&#xff0c; 当 m m m 接近 n ( n − 1 ) / 2 …

【面试题】1、总结面试题1

1、Java语言有哪些特点&#xff1f;❀ &#xff08;1&#xff09;【面向对象】Java是一种面向对象的语言&#xff0c;支持封装、继承和多态等面向对象的特性。Java特别强调类和对象的关系&#xff0c;要求所有代码都必须位于类中。和Java一样很流行的Python也是面向对象的语言…

NanoPi NEO移植LVGL8.3.5到1.69寸ST7789V屏幕

移植前准备 移植好fbtft屏幕驱动 参考链接&#xff1a;友善之臂NanoPi NEO利用fbtft驱动点亮1.69寸ST7789V2屏幕 获取源码 名称地址描述lvglhttps://github.com/lvgl/lvgl.gitlvgl-8.3.5lv_drivershttps://github.com/lvgl/lv_drivers.gitlv_drivers-6.1.1 创建工程目录 创…

项目实战 — 消息队列(8){网络通信设计①}

目录 一、自定义应用层协议 &#x1f345; 1、格式定义 &#x1f345; 2、准备工作 &#x1f384;定义请求和响应 &#x1f384; 定义BasicArguments &#x1f384; 定义BasicReturns &#x1f345; 2、创建参数类 &#x1f384; 交换机 &#x1f384; 队列 &#x1f38…

CSDN互利共赢玩法实战!!!

csdn项目第一波基本都顺利跑了起来&#xff0c;我们总计找来了一两千个新的项目源码&#xff0c;来让大家变现。 在实战中&#xff0c;主要两个玩法&#xff0c;一个引流&#xff0c;一个付费资源。付费资源门槛越来越高&#xff0c;所以我们这一波升级完成的号&#xff0c;就非…

AKStream+ZLM简单配置

下载AKStream源代码 下载AKStream源代码 git clone https://gitee.com/chatop2020/AKStreamVS2022打开AKStream&#xff0c;低于.net6的版本无法编译通过 打开 .sln 解决方案 如下配置AKStreamWeb 数据库配置&#xff1a; MySQL AKStreamWeb.json中配置 port 是MySQL的端口…

单片机第一季:零基础13——AD和DA转换

1&#xff0c;AD转换基本概念 51 单片机系统内部运算时用的全部是数字量&#xff0c;即0 和1&#xff0c;因此对单片机系统而言&#xff0c;无法直接操作模拟量&#xff0c;必须将模拟量转换成数字量。所谓数字量&#xff0c;就是用一系列0 和1 组成的二进制代码表示某个信号大…

掌握Python的X篇_33_MATLAB的替代组合NumPy+SciPy+Matplotlib

numPy 通常与 SciPy( Scientific Python )和 Matplotlib (绘图库)一起使用&#xff0c;这种组合广泛用于替代 MatLab&#xff0c;是一个强大的科学计算环境&#xff0c;有助于我们通过 Python 学习数据科学或者机器学习。 文章目录 1. numpy1.1 numpy简介1.2 矩阵类型的nparra…