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

news/2024/11/16 19:41:22/

【目录】

文章目录

  • 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.ppmy.cn/news/1028038.html

相关文章

Netty:ByteBuf跳过一定长度的字节

说明 io.netty.buffer.ByteBuf可以调用skipBytes(int length)函数跳出length个字节&#xff0c;并将buffer的readerIndex增长length。 示例 package com.thb;import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.util.ByteProcessor;public …

运维监控学习笔记2

硬件监控&#xff1a; 1&#xff09;使用IPMI 2&#xff09;机房巡检 路由器和交换机&#xff1a; 使用SNMP&#xff08;简单网络管理协议&#xff09;进行监控。 Linux 安装snmp&#xff1a; yum install -y net-snmp net-snmp-utils 说明&#xff1a;net-snmp是安装在snm…

JavaScript基础之基于数据类型和引用数据类型

原文合集地址如下&#xff0c;有需要的朋友可以关注 本文地址 数据类型 JavaScript的数据类型有7中&#xff0c;包括6个基本类型和一个引用类型 基本数据类型&#xff1a;number, string, boolean, null, undefined, symbol 引用数据类型&#xff1a;object&#xff08;数组…

Linux命令 -- vim

Linux命令 -- vim 前言一般模式光标移动复制粘贴内容查找 底线命令行模式 前言 用vim指令进入文件。 刚进入时是命令行模式&#xff0c;也叫一般模式。 按i或者insert进入编辑模式&#xff0c;此时可以编辑文件内容。 按esc可从编辑模式退回到一般模式&#xff0c;输入冒号进…

mysql 技术总结

一、mysql 索引&#xff08;左小右大&#xff09; 下图中为二叉树 mysql索引类型以及数据结构 BTREE结构 BTree又叫多路平衡搜索树&#xff0c;一颗m叉的BTree特性如下&#xff1a; 树中每个节点最多包含m个孩子。 除根节点与叶子节点外&#xff0c;每个节点至少有[ceil(m/2…

从零开始学Python(三)函数与lambda表达式

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Python的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.函数 1.函数与方法的区别 2.函数的定…

华为网络篇 RIP的Slient-Interface-26

难度1复杂度 1 目录 一、实验原理 二、实验拓扑 三、实验步骤 四、实验过程 总结 一、实验原理 在默认情况下&#xff0c;RIP会在所有的接口泛洪路由更新信息&#xff08;整个路由表&#xff09;&#xff0c;这里有一个问题&#xff0c;当RIP路由器连接的是一个末端网络时…

8.12学习笔记

在PyTorch中&#xff0c;Dataset和DataLoader是用于处理数据的两个重要类。Dataset类是一个抽象类&#xff0c;用于表示数据集。它的主要作用是将数据加载到内存中&#xff0c;并提供一种统一的方式来访问数据。为了使用Dataset类&#xff0c;你需要继承它并实现两个方法&#…