python数据结构输入输出及控制和异常

目录
  • 1. 输入 input
  • 2. 输出 print
    • 2.1 普通输出
    • 2.2 格式化输出
  • 3. 控制语句
  • 4. 异常处理

前言:

python数据类型: python数据结构之数据类型.
今天我们主要来介绍一些内置函数,比如输入输出,控制,和异常的用法,尤其是输出和控制,用的太多了,写算法题,输出数据格式问题,对以后都会很有帮助。

1. 输入 input

程序经常需要与用户进行交互,以获得数据或者提供某种结果。Python 提供了一个函数,它使得我们可以要求用户输入数据并且返回一个字 符串的引用。这个函数就是 input

#input案例
a=input("请输入你的名字:")
print('你的名字是:',a)

需要注意的是,input 函数返回的值是一个字符串,它包含用户在提示字符串后面输入的所有字符。如果需要将这个字符串转换成其他类型,必须明确地提供类型转换。在下面的语句中, 用户输入的字符串被转换成了浮点数,以便于后续的算术处理。

type(a)
#结果为str
a=float(a)
type(a)
#结果为float

2. 输出 print

2.1 普通输出

print 函数为输出 Python 程序的值提供了一种非常简便的方法。它接受零个或者多个参数, 并且将单个空格作为默认分隔符来显示结果。通过设置 sep 这一实际参数可以改变分隔符。此外,每一次打印都默认以换行符结尾。这一行为可以通过设置实际参数 end 来更改。下面是一些例子。

print('hello')
#结果:hello
print('hello','world')
#结果:hello world
print('hello','world',sep='***')#sep指定特定的分隔符
#结果:hello***world
print('hello','world',end='****')#end 设置结尾参数
#结果:hello world****

2.2 格式化输出

表达式的左边部分是模板(也叫格式化字符串),右边部分则是一系列用于格式化字符串的值。 需要注意的是,右边的值的个数与格式化字符串中%的个数一致。这些值将依次从左到右地被换入格式化字符串。
格式化字符串可以包含一个或者多个转换声明。转换字符告诉格式化运算符,什么类型的值会被插入到字符串中的相应位置。在上面的例子中,%s 声明了一个字符串,%d 则声明了一个整数。其他可能的类型声明还包括 i、u、 f、e、g、c 和%,

具体如下表所示:

可以在%和格式化字符之间加入一个格式化修改符。格式化修改符可以根据给定的宽度对值 进行左对齐或者右对齐,也可以通过小数点之后的一些数字来指定宽度。

格式化修改符表如下:

让我们来看看一些案例:

name="apple"
price=6
print("the %s costs %d cent" %(name,price))
#结果:the apple costs 6 cent

print("The %+10s costs %5.2f cents" % (name,price))#+代表右对齐,10代表占用10个字符
#结果:The      apple costs  6.00 cents
print("The %+10s costs %10.2f cents" % (name,price))#10.2代表占用10个字符,并保留2位小数。
#结果:The      apple costs       6.00 cents
itemdict = {"item":"banana","cost":24}#使用字典传递参数
print("The %(item)s costs %(cost)7.1f cents" % itemdict)
#结果:The banana costs    24.0 cents

3. 控制语句

算法需要两个重要的控制结构:迭代和分支。Python 通过多种方式支持这两种控制结构。程序员可以根据需要选择最有效的结构。对于迭代,Python 提供了标准的 while 语句以及非常强大的 for 语句。while 语句会在给定条件为真时重复执行一段代码。

count=1
while count<=5:
    print("河南加油!")
    count+=1
#结果如下:
河南加油!
河南加油!
河南加油!
河南加油!
河南加油!

for item in '河南加油!':
    print(item)
# 结果如下
河
南
加
油
!

for i in range(5):
    print(i)
# 结果如下

0
1
2
3
4

#通过for语句输出单个字符
wordlist = ['cat','dog','rabbit']
letterlist = []
for aword in wordlist:
    for aletter in aword:
        letterlist.append(aletter)

letterlist
#结果如下:
['c', 'a', 't', 'd', 'o', 'g', 'r', 'a', 'b', 'b', 'i', 't']

分支语句允许程序员进行询问,然后根据结果,采取不同的行动。绝大多数的编程语言都提 供两种有用的分支结构:ifelse if。以下是使用 ifelse 语句的一个简单的二元分支示例。

import math
n=float(input("请输入一个数"))
if n < 0:
       print("Sorry,")
else:
       print(math.sqrt(n))
#结果:请输入一个数 3
# 1.7320508075688772

#多条件分支
score=float(input("请输入一个数"))
if score >= 90:
       print('A')
elif score >= 80:
       print('B')
elif score >= 70:
       print('C')
elif score >= 60:
       print('D')
else:
       print('F')
# 请输入一个数 90 A

列表可以通过使用迭代结构和分支结构来创建。这种方式被称为列表解析式。通过列表解析式,可以根据一些处理和分支标准轻松创建列表。举例来说,如果想创建一个包含前 10 个完全平方数的列表,可以使用以下的 for 语句。

sqlist = [x*x for x in range(1,11) if x%2 != 0]
# [1, 9, 25, 49, 81]
[ch.upper() for ch in 'comprehension' if ch not in 'aeiou']
#['C', 'M', 'P', 'R', 'H', 'N', 'S', 'N']

4. 异常处理

在编写程序时通常会遇到两种错误:

  • 第一种是语法错误,也就是说,程序员在编写语句或者表达式时出错。例如,在写 for 语句时忘记加冒号。
  • 第二种是逻辑错误,即程序能执行完成但返回了错误的结果。这可能是由于算法本身有错, 或者程序员没有正确地实现算法。有时,逻辑错误会导致诸如除以 0、越界访问列表等非常严重的情况。这些逻辑错误会导致运行时错误,进而导致程序终止运行。通常,这些运行时错误被称为异常。

当异常发生时,我们称程序“抛出”异常。可以用 try 语句来“处理”被抛出的异常。

  • 可以在 try 语句块中调用 print 函数来处理这个异常。对应的 except 语句块“捕捉”到 这个异常,并且为用户打印一条提示消息。
  • except 会捕捉到 sqrt 抛出的异常并打印提示消息,然后会使用对应数字的绝对值来保证 sqrt 的参数非负。这意味着程序并不会终止,而是继续执行后续语句。
anumber = int(input("Please enter an integer "))
try:
     print(math.sqrt(anumber))
except:
     print("Bad Value for square root")
     print("Using absolute value instead")
     print(math.sqrt(abs(anumber)))

结果如下:

也可以使用 raise 语句来触发运行时异常。例如,可以先检查值是否为负,并在值为负时抛出异常,而不是给 sqrt 函数提供负数。下面的代码段显示了创建新的 RuntimeError 异常的结果。注意,程序仍然会终止,但是导致其终止的异常是由我们自己手动创建的。

anumber=-21
if anumber < 0:
    raise RuntimeError("You can't use a negative number")
else:
    print(math.sqrt(anumber))

结果如下:

参考资料:

  • 《python数据结构与算法》
  • 《大话数据结构》

到此这篇关于python数据结构输入输出及控制和异常的文章就介绍到这了,更多相关python数据结构内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解python数据结构之队列Queue

    一.前言 队列Queue是一种先进先出(FIFO,First In First Out)的线性表.允许一端进行插入(rear),对应的另一段进行删除(front). 本篇包含以下内容: (1)Queue的基本格式 (2)入队列en_queue (3)删除数据函数 de_queue 二.Queue的基本格式 class Queue(): def __init__(self,size): self.size = size self.front = -1 #设置front初始值,每出队列一个数据就加

  • Python基础之数据结构详解

    一.列表 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来 示例: list01 = ['a','b','c'] 1.1 列表更新元素 一个列表是可以储存不同的类型的数据结构,并且修改的新元素也不一定需要和原来的元素类型一致,但是要注意的是,更新列表的索引必须是已存在的索引,不能对超出列表的索引更新元素 1.2 列表增加元素 增加元素的方法: 1.append方法:在列表的最后增加一个元素. list01 = ['a', 'b', 'c'] list01 .append('d') pr

  • Python数据结构详细

    目录 1. 关于列表更多的内容 1.1. 把列表当作堆栈使用 1.2. 把列表当作队列使用 1.3. 列表推导式 1.4. 嵌套的列表推导式 2. del 语句 3. 元组和序列 4. 集合 6. 循环技巧 7. 深入条件控制 8. 比较序列和其它类型 1. 关于列表更多的内容 Python 的列表数据类型包含更多的方法.这里是所有的列表对象方法: list.``append(x) 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x] list.``extend(L) 将一个给定

  • python数据结构:数据类型

    目录 1.数据是什么? 2.数据类型 2.1内建原子数据类型 2.2 内建集合数据类型 3.集合数据类型的方法 3.1 列表 3.2 字符串 3.3 元祖 3.4 集合 3.5 字典 1.数据是什么? 在 Python 以及其他所有面向对象编程语言中,类都是对数据的构成(状态)以及数据 能做什么(行为)的描述.由于类的使用者只能看到数据项的状态和行为,因此类与抽象数据类 型是相似的.在面向对象编程范式中,数据项被称作对象.一个对象就是类的一个实例. 2.数据类型 2.1内建原子数据类型 Pyth

  • python数据结构输入输出及控制和异常

    目录 1. 输入 input 2. 输出 print 2.1 普通输出 2.2 格式化输出 3. 控制语句 4. 异常处理 前言: python数据类型: python数据结构之数据类型. 今天我们主要来介绍一些内置函数,比如输入输出,控制,和异常的用法,尤其是输出和控制,用的太多了,写算法题,输出数据格式问题,对以后都会很有帮助. 1. 输入 input 程序经常需要与用户进行交互,以获得数据或者提供某种结果.Python 提供了一个函数,它使得我们可以要求用户输入数据并且返回一个字 符串的引

  • python数据结构之栈、队列及双端队列

    目录 1.线性数据结构的定义 2.栈 2.1 栈的定义 2.2 栈的数据类型 2.3 用python实现栈 2.4 栈的应用 3. 队列 3.1 队列的定义 3.2 队列抽象数据类型 3.3 用python实现队列 3.3 队列的应用 4. 双端队列 4.1 双端队列的定义 4.2 双端队列抽象数据类型 4.3 用python实现双端队列 4.3 双端队列的应用 5.链表 5.1 链表定义 5.2 用python实现链表 前文学习: python数据类型: python数据结构:数据类型. py

  • python数据结构算法分析

    目录 1.算法分析的定义 2. 大O记法 3. 不同算法的大O记法 3.1 清点法 3.2 排序法 3.3 蛮力法 3.4 计数法 4. 列表和字典操作的复杂度 4.1 列表 4.2 字典 前文学习: python数据类型: python数据结构:数据类型. python的输入输出: python数据结构输入输出及控制和异常. python面向对象: python数据结构面向对象. 今天我们来学习的内容是面试题中都避免不小了的问题,就是算法分析了,什么是算法分析,算法分析是用来分析一个算法的好坏

  • python数据结构之面向对象

    目录 1. 面向对象编程 2. 构建类 3. 继承 3.1 继承案例 python数据结构:数据类型.  python数据结构输入输出及控制和异常. 今天我们来学习面向对象编程,面向对象这种编程方式非常重要,我们以后学习到的栈.队列.链表都是通过面向对象的方式实现的. 1. 面向对象编程 定义:面向对象是按照人们客观世界的系统思维方式,采用基于对象(实体)的概念建立模型 ,模拟客观世界分析,设计,实现软件的办法.通过面向对象的理念使计算机软件系统能与现实世界中的系统的一一对应. 听到这很多同学应

  • python数据结构之递归方法讲解

    目录 1.递归概念 2. 递归三原则 2.1 实现任意进制的数据转换 今天我们来学习python中最为重要的内容之递归,对以往内容感兴趣的同学可以查看下面: python数据类型: python数据结构:数据类型. python的输入输出: python数据结构之输入输出.控制和异常. python面向对象: python数据结构之面向对象. python算法分析: python数据结构算法分析. python数据结构之栈.队列和双端队列 递归是在进行重复性工作中经常考到的问题,非常值得学习.

  • python数据结构之搜索讲解

    目录 1. 普通搜索 2. 顺序搜索 1.1 无序下的顺序查找 1.2 有序下的顺序查找 2.二分查找 3.散列查找 3.1 几种散列函数 3.2 处理散列表冲突 3.3 散列表的实现(加1重复) 4.参考资料 往期学习: python数据类型: python数据结构:数据类型. python的输入输出: python数据结构之输入输出及控制和异常. python面向对象: python数据结构面向对象. python算法分析: python数据结构之算法分析. python栈.队列和双端队列:

  • Python学习笔记之错误和异常及访问错误消息详解

    本文实例讲述了Python错误和异常及访问错误消息.分享给大家供大家参考,具体如下: 错误和异常 当 Python 无法解析代码时,就会发生语法错误,因为我们没有遵守正确的 Python 语法. 当在程序执行期间出现意外情况时,就会发生异常,即使代码在语法上正确无误.Python 有不同类型的内置异常. 指定异常 可以指定要在 except 块中处理哪个错误,如下所示: try: # some code except ValueError: # some code 现在它会捕获 ValueErr

  • 详解Python数据结构与算法中的顺序表

    目录 0. 学习目标 1. 线性表的顺序存储结构 1.1 顺序表基本概念 1.2 顺序表的优缺点 1.3 动态顺序表 2. 顺序表的实现 2.1 顺序表的初始化 2.2 获取顺序表长度 2.3 读取指定位置元素 2.4 查找指定元素 2.5 在指定位置插入新元素 2.6 删除指定位置元素 2.7 其它一些有用的操作 3. 顺序表应用 3.1 顺序表应用示例 3.2 利用顺序表基本操作实现复杂操作 0. 学习目标 线性表在计算机中的表示可以采用多种方法,采用不同存储方法的线性表也有着不同的名称和特

  • Python数据结构之双向链表详解

    目录 0. 学习目标 1. 双向链表简介 1.1 双向链表介绍 1.2 双向链表结点类 1.3 双向链表优缺点 2. 双向链表实现 2.1 双向链表的初始化 2.2 获取双向链表长度 2.3 读取指定位置元素 2.4 查找指定元素 2.5 在指定位置插入新元素 2.6 删除指定位置元素 2.7 其它一些有用的操作 3. 双向链表应用 3.1 双向链表应用示例 3.2 利用双向链表基本操作实现复杂操作 0. 学习目标 单链表只有一个指向直接后继的指针来表示结点间的逻辑关系,因此可以方便的从任一结点

随机推荐