2020-07-30 11:12发布
Python解释器内置了许多函数,这意味着我们无需定义,始终可以它们。接下来和大家一起讨论一个常用的内建函数-input()和isinstance()。
input()
input()函数读取用户输入,并转换成字符串:
>>> a = input() # 将input()返回的值赋值给a Python >>> a # 查看a的值(为字符串'Python') 'Python'
>>> a = input() # 将input()返回的值赋值给a
Python
>>> a # 查看a的值(为字符串'Python')
'Python'
input()函数可以提供一个参数,用来提示用户:
>>> b = input('请输入你最喜欢的水果: ') # 给用户必要的提示 请输入你最喜欢的水果: 香蕉 >>> b '香蕉'
>>> 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'>
>>> 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数据类型
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
>>> pi = 3.14
>>> name = 'Wang'
>>> complex_num = 1 + 2j
>>> isinstance(pi, float) # 3.14为浮点数类型
True
>>> isinstance(name, str) # 'Wang'为字符串类型
>>> isinstance(complex_num, complex) # 1 + 2j为复数
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
>>> 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.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类,答案是肯定的
>>> 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类,答案是肯定的
>>> isinstance(python_dev, PythonDeveloper) # 判断python是否为PythonDeveloper类,答案也是肯定的
描述
isinstance()函数来判断一个对象是否是一个已知的类型,类似type()。
isinstance()与type()区别:
type()不会认为子类是一种父类类型,不考虑继承关系。
isinstance()会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用isinstance()。
语法
以下是isinstance()方法的语法:
isinstance(object,classinfo)
object–实例对象。classinfo–可以是直接或间接类名、基本类型或者由它们组成的元组。
返回值
如果对象的类型与参数二的类型(classinfo)相同则返回True,否则返回False
例子:
classCavalry:
defattack(self):
print("见识一下暗影岛的力量!")
defdefend(self):
print("骑兵防守")
classArcher:
print("明智之选,我瞄的很准,正对眉心!")
print("弓箭手防守")
classMaster:
print("即使是死亡,也会因为我的出场而颤抖不已!")
print("法师防守")
if__name__=='__main__':
Army=[]
c=Cavalry()
a=Archer()
m=Master()
Army.append(c)
Army.append(a)
Army.append(m)
command=input("请将军下令:")
ifcommand=="一起上":
forvarinArmy:
var.attack()
elifcommand=="布阵":
var.defend()
elifcommand=="弓箭手":
#判断var是Archer的实例
ifisinstance(var,Archer):
else:
elifcommand=="骑兵":
ifisinstance(var,Cavalry):
elifcommand=="法师":
ifisinstance(var,Master):
print("没听清命令!")
换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...
十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...
前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...
迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...
python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写
第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...
head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...
挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了
Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...
相当于 ... 这里不是注释
还有FIXME
python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。
单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:# 单行注释print(hello world)注释可以放在代码上面也可以放在代...
主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...
或许是里面有没被注释的代码
自学的话要看个人情况,可以先在B站找一下视频看一下
最多设置5个标签!
Python解释器内置了许多函数,这意味着我们无需定义,始终可以它们。接下来和大家一起讨论一个常用的内建函数-input()和isinstance()。
input()
input()函数读取用户输入,并转换成字符串:
input()函数可以提供一个参数,用来提示用户:
需要注意的是,input()函数返回的值总是字符串,当用户输入的是数字也是这样,所以当使用它时一定要注意:
isinstance()
isinstance()函数用于检查对象是否为指定类(或者说数据类型)的实例。isintance()的第一个参数为一个对象,第二个参数为要检查的数据类型。
举个例子,比如有有一个变量,你想检查它是否为数字类型,可以使用isinstance()函数:
除了能检查是否为int类型外,isintance()还能检查其他数据类型(当然了),下面是一个综合示例:
isinstance()还可以验证某个对象是否为自定义的类型:
描述
isinstance()函数来判断一个对象是否是一个已知的类型,类似type()。
isinstance()与type()区别:
type()不会认为子类是一种父类类型,不考虑继承关系。
isinstance()会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用isinstance()。
语法
以下是isinstance()方法的语法:
isinstance(object,classinfo)
object–实例对象。classinfo–可以是直接或间接类名、基本类型或者由它们组成的元组。
返回值
如果对象的类型与参数二的类型(classinfo)相同则返回True,否则返回False
例子:
classCavalry:
defattack(self):
print("见识一下暗影岛的力量!")
defdefend(self):
print("骑兵防守")
classArcher:
defattack(self):
print("明智之选,我瞄的很准,正对眉心!")
defdefend(self):
print("弓箭手防守")
classMaster:
defattack(self):
print("即使是死亡,也会因为我的出场而颤抖不已!")
defdefend(self):
print("法师防守")
if__name__=='__main__':
Army=[]
c=Cavalry()
a=Archer()
m=Master()
Army.append(c)
Army.append(a)
Army.append(m)
command=input("请将军下令:")
ifcommand=="一起上":
forvarinArmy:
var.attack()
elifcommand=="布阵":
forvarinArmy:
var.defend()
elifcommand=="弓箭手":
forvarinArmy:
#判断var是Archer的实例
ifisinstance(var,Archer):
var.attack()
else:
var.defend()
elifcommand=="骑兵":
forvarinArmy:
ifisinstance(var,Cavalry):
var.attack()
else:
var.defend()
elifcommand=="法师":
forvarinArmy:
ifisinstance(var,Master):
var.attack()
else:
var.defend()
else:
print("没听清命令!")
相关问题推荐
换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...
十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...
前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...
迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...
python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写
第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...
head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...
挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了
Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...
相当于 ... 这里不是注释
还有FIXME
python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。
单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:# 单行注释print(hello world)注释可以放在代码上面也可以放在代...
主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...
或许是里面有没被注释的代码
自学的话要看个人情况,可以先在B站找一下视频看一下