python中的读入函数 python 把值传入函数

Python中的input()、isinstance()函数如何使用

Python解释器内置了许多函数,这意味着我们无需定义,始终可以它们。接下来和大家一起讨论一个常用的内建函数-input()和isinstance()。

站在用户的角度思考问题,与客户深入沟通,找到阿勒泰网站设计与阿勒泰网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广、申请域名虚拟主机、企业邮箱。业务覆盖阿勒泰地区。

input()

input()函数读取用户输入,并转换成字符串:

a = input()  # 将input()返回的值赋值给a

Python

a            # 查看a的值(为字符串'Python')

'Python'

input()函数可以提供一个参数,用来提示用户:

b = input('请输入你最喜欢的水果:  ')   # 给用户必要的提示

请输入你最喜欢的水果:  香蕉

b

'香蕉'

需要注意的是,input()函数返回的值总是字符串,当用户输入的是数字也是这样,所以当使用它时一定要注意:

num = input('请输入一个数字: ')

请输入一个数字: 10

num + 9                            # 试图把num和数字相加

Traceback (most recent call last):

File "", line 1, in

TypeError: must be str, not int

num

'10'

type(num)                           # 查看num的数字类型

class 'str'

isinstance()

isinstance()函数用于检查对象是否为指定类(或者说数据类型)的实例。isintance()的第一个参数为一个对象,第二个参数为要检查的数据类型。

举个例子,比如有有一个变量,你想检查它是否为数字类型,可以使用isinstance()函数:

score = 90

result = isinstance(score, int)

if result:

...     print('score为int数据类型')

... else:

...     print('score不为int数据类型')

...

score为int数据类型

除了能检查是否为int类型外,isintance()还能检查其他数据类型(当然了),下面是一个综合示例:

pi = 3.14

name = 'Wang'

complex_num = 1 + 2j

isinstance(pi, float)              # 3.14为浮点数类型

True

isinstance(name, str)              # 'Wang'为字符串类型

True

isinstance(complex_num, complex)   #  1 + 2j为复数

True

isinstance()还可以验证某个对象是否为自定义的类型:

class Developer:                             # 定义一个叫做Developer的类

...

...     def __init__(self, name):                # __init__方法中,需要输入名字

...         self.name = name

...     def display(self):                       # 定义了display()方法

...         print("Developer:", self.name, "-")

...

class PythonDeveloper(Developer):            # PythonDeveloper类,继承了Developer类

...

...     def __init__(self, name, language):

...         self.name = name

...         self.language = language

...

...     def display(self):                        # 覆盖了父类的display方法

...         print("Python Developer:", self.name, "language:", self.language, "-")

...

dev = Developer('Zhang')                     # 创建一个Developer对象

dev.display()                                # 调用display()方法,以查看该对象

Developer: Zhang -

isinstance(dev, Developer)                   # 判断dev是否为Developer类,答案是肯定的

True

isinstance(dev, PythonDeveloper)             # 判断dev是否为PythonDeveloper类,当然不是

False

python_dev = PythonDeveloper('Liu', 'Python')  # 创建一个PythonDeveloper对象,注意PythonDeveloper是Developer的子类

python_dev.display()                          # 调用display方法

Python Developer: Liu language: Python -

isinstance(python_dev, Developer)             # 判断python_dev是否为Developer类,答案是肯定的

True

isinstance(python_dev, PythonDeveloper)      # 判断python是否为PythonDeveloper类,答案也是肯定的

True

关于Python的基础问题可以看下这个网页的视频教程,网页链接,希望我的回答能帮到你。

Python读取二进制文件

实际项目中经常遇到读取二进制问题,Python下读取二进制文件一般用Python的文件打开读写相关函数和struct.

1。获取文件名filename,可用对话框,也可以直接手写

2。打开文件,这里中是打开,像看书一样,只是打开书,还没有看里面的内容,可以看,也可以不看

binFile=open(filename,'rb')

3。那就看看吧,binFile现在就是书的名字了。这里我们读入4个字,如果read()将读入整个文件

context=binFile.read(4)

4。读入之后问题来了,context包含四个字(4Bytes),但这四个字是加密的(二进制)。这时要找翻译struct.unpack

realContext=struct.unpack(format,context)

5。format的就是加密规则了,由1,2,4,8个字节组成其他类型,或者其他类型的数组。

a,b,c,d=struct.unpack('4c',context)

读入四个字符

对应格式参考

6。打开文件后用完一定要关闭,和看书一个样,看完后要合上,不合上后果自己去想

binFile.close()

7。查找内容,文件内容可以一个一个字的按顺序读出,但如果已经知道内容在什么位置,可以用查找方式读出。

binFile.seek(100)

context=binFile.read(4)

读出100位置后面的4个字,(101,102,103,104)

8。Python还提供也一些高级读写功能,如整行读取等

python中isread函数么

文件对象(open() 函数的返回值)提供了read()函数可以按字节或字符读取文件内容,到底是读取字节还是字符,取决于使用 open() 函数打开文件时,是否使用了 b 模式,如果使用了 b 模式,则每次读取一个字节;反之,则每次读取一个字符。

read() 函数的基本语法格式如下:

file.read([size])

其中,file 表示打开的文件对象;size 作为一个可选参数,用于指定要读取的字符个数,如果省略,则默认一次性读取所有内容。

【例 1】采用循环读取整个文件的内容。

# a.txt 文件内容为:C语言中文网

f = open("a.txt", 'r', True)

while True:

# 每次读取一个字符

ch = f.read(1)

# 如果没有读到数据,跳出循环

if not ch:

break

# 输出ch

print(ch, end='')

f.close()

运行结果为:

C语言中文网

上面程序采用循环依次读取每一个字符(因为程序没有使用 b 模式),每读取到一个字符,程序就输出该字符。

正如从上面程序所看到的,当程序读写完文件之后,推荐立即调用 close() 方法来关闭文件,这样可以避免资源泄露(后续章节会详细介绍 close() 函数)。

注意,在调用 read() 函数读取文件内容时,成功读取的前提是在 open() 函数中使用 r 或 r+ 的模式打开文件,否则(比如将上面程序中 open()的打开模式改为 w),程序会抛出io.UnsupportedOperation异常:

Traceback (most recent call last):

File "C:\Users\mengma\Desktop\demo.py", line 4, in

ch = f.read(1)

io.UnsupportedOperation: not readable

【例 2】调用 read() 方法时不传入参数,该方法默认会读取全部文件内容。例如:

f = open("a.txt", 'r', True)

# 直接读取全部文件

print(f.read())

f.close()

运行结果为:

C语言中文网

read()函数抛出UnicodeDecodeError异常的解决方法

当使用 open() 函数打开文本文件时,默认会使用当前操作系统的字符集,比如 Windows 平台,open() 函数默认使用 GBK 字符集。因此,上面程序读取的 a.txt 也必须使用 GBK 字符集保存;否则,程序就会出现UnicodeDecodeError错误。

如果要读取的文件所使用的字符集和当前操作系统的字符集不匹配,则有两种解决方式:

使用二进制模式读取,然后用 bytes 的 decode() 方法恢复成字符串。

利用 codecs 模块的 open() 函数来打开文件,该函数在打开文件时允许指定字符集。

例如,下面程序使用二进制模式来读取文本文件:

# 指定使用二进制方式读取文件内容,a.txt 以 utf-8 编码存储

f = open("a.txt", 'rb', True)

# 直接读取全部文件,并调用bytes的decode将字节内容恢复成字符串

print(f.read().decode('utf-8'))

f.close()

上面程序在调用 open() 函数时,传入了 rb 模式,这表明采用二进制模式读取文件,此时文件对象的 read() 方法返回的是 bytes 对象,程序可调用 bytes 对象的 decode() 方法将它恢复成字符串。由于此时读取的 a.txt 文件是以 UTF-8 的格式保存的,因此程序需要使用 decode() 方法恢复字符串时显式指定使用 UTF-8 字符集。

下面程序使用 codes 模块的 open() 函数来打开文件,此时可以显式指定字符集:

import codecs

# 指定使用utf-8 字符集读取文件内容

f = codecs.open("a.txt", 'r', 'utf-8', buffering=True)

while True:

# 每次读取一个字符

ch = f.read(1)

# 如果没有读取到数据,则跳出循环

if not ch : break

# 输出ch

print (ch, end='')

f.close()

上面程序在调用 open() 函数时显式指定使用 UTF-8 字符集,这样程序在读取文件内容时就完全没有问题了。


当前标题:python中的读入函数 python 把值传入函数
标题链接:http://scyanting.com/article/hjdisc.html