基本数据类型.png-142.8kB 标准数据类型--None None是一个特殊的常量 None和False不同 None不是0 None不是空字符串 None和任何其他的数据类型比较永远返回...False None有自己的数据类型NoneType 你可以将None复制给任何变量,但是你不能创建其他NoneType对象 标准数据类型--Number 整数类型int,最大2147483647...长整数类型long,超过2147483647的整数,比如百万亿条海量数据记录 浮点数类型float,带小数点的单位,比如商品价格 复数类型complex,虚数单位为j,例如3+4j 复数由实数部分和虚数部分构成...格式字图示.png-11.8kB 上面代码的运行结果是: His name is LeiKun, his age is 18 His height is 1.74 m print()在python3...与python2中的区别 1.python3中print是一个内置函数,有多个参数,而python2中print是一个语法结构 2.python2打印时可以不加括号,python则必须加括号。
今天听网课的时候遇到了这样一个问题:TypeError: __str__returned non-string (type NoneType)以及解决方法,分享给大家。(我学的是python3) ?...错误提示翻译成中文的意思是:“类型错误:返回的非字符串类型”。 我想到这是类__str__ 中的问题,这部分代码如下: ?...看来在python3中,在__str__中获取字符串都需要使用return来返回。
#4.1 配置 #4.1.1 pc-master #4.1.2 pc-slave2 #4.2 本地主机脚本 #4.3 启动 #5 报错 #5.1 not found in known_hosts #5.2 TypeError...: 'NoneType' object is not callable 远程启动ROS节点 #1 环境 Ubuntu 16.04 机器配置 : pc-master 192.168.3.230 本地...根据日志报错的提示来修改python底层源码,没有效果,日志显示, ros依然是运行在python2.7上,试着将ros运行在Python3上 把系统默认Python替换成Python3 sudo rm...-rf /usr/bin/python sudo ln -s /usr/bin/python3 /usr/bin/python 2....#5.2 TypeError: ‘NoneType’ object is not callable 修改Python底层代码 ?
执行期间我们可以在屏幕上看到一系列的日志输出,在有报错问题的时候,查询执行日志是必须使用的定位手段: [INFO ] [Logger ] Record log in /home/dechin...但是由于本地环境中依赖都比较缺乏,因此为了避免环境切换混乱,这里我们使用虚拟环境来展示安装和使用的基本方法,但是实际应用场景下,我们还是直接使用了本地的python3环境,而不是虚拟环境。...这里有个区别需要注意,buildozer每次初始化会在特定帐号和环境的目录下产生一个.buildozer的目录,而普通帐号和root帐号的~/目录是不一样的,这点首先要明确。...但这并不是终点,我们发现在手机上用apk安装的app会出现闪退,这一般都是由于程序报错而导致的,我们可以在连接USB调试的状态下,进入adb shell查看日志: [dechin@dechin-manjaro...requirements = python3,kivy 修改后如下: requirements = python3,kivy==2.0.0 然后在重新执行buildozer debug deploy run
kivy_hello_world.py的指令来执行,执行结果如下图所示: 执行期间我们可以在屏幕上看到一系列的日志输出,在有报错问题的时候,查询执行日志是必须使用的定位手段: 1 2 3 4 5...但是由于本地环境中依赖都比较缺乏,因此为了避免环境切换混乱,这里我们使用虚拟环境来展示安装和使用的基本方法,但是实际应用场景下,我们还是直接使用了本地的python3环境,而不是虚拟环境 安装buildozer...这里有个区别需要注意,buildozer每次初始化会在特定帐号和环境的目录下产生一个.buildozer的目录,而普通帐号和root帐号的~/目录是不一样的,这点首先要明确。...但这并不是终点,我们发现在手机上用apk安装的app会出现闪退,这一般都是由于程序报错而导致的,我们可以在连接USB调试的状态下,进入adb shell查看日志: 1 2 3 4 5 6 7 8 9 10...321无损音乐网 requirements = python3,kivy 修改后如下: requirements = python3,kivy==2.0.0 然后在重新执行buildozer debug
' object has no attribute 'remove' 错误原因分析与解决方案: 这种错误比较隐蔽一些,表面看上去好像是某个类型的对象不具有某某某属性,而实际上是函数或方法的误用。...不过,这种错误又比较明显,因为一般是'NoneType' object has no attribute......,这里的'NoneType'是个很好的提示。...,是不允许修改其中元素值的,也不允许删除其中的元素。...遇到这种错误时,一般是调用了其他函数或方法而不知道该函数或方法返回的是元组或字符串或其他不可变容易对象,应仔细检查出现错误的代码之前的函数或方法调用代码。...sequence of size 1 to extended slice of size 3 错误原因分析与解决方案: 在使用切片操作修改列表中元素值时,如果切片不连续(也就是abs(step)>1),则等号两侧必须含有同样多的元素数量
第2行要匹配字符串Hello, World,如果不能匹配则返回None,通过这段代码,我们要知道: 判断是否是None对象,应该使用is或is not, 而不是使用==或者!=。...行条件判断中,并没有显式地写some_result is None,这是因为None本身就是假,与之类似,下面的这些对象也是假: 空列表 空字典 空元组 空字符串 0 False 在Python中,变量必须与对象关联...但是,返回值是在上一次调用返回结果中增加了新元素。这就是问题所在,每次重新调用此函数,参数starter_list=[]居然不起作用了。 所以,正如函数名字显示的,这样定义的函数不是一个“好”函数。...即NoneType类型: >>> type(None) 它是Python内置的类型之一。...Traceback (most recent call last): File "", line 1, in TypeError: type 'NoneType' is
大家好,又见面了,我是你们的朋友全栈君。 我是精神抖擞王大鹏,不卑不亢,和蔼可亲~ 计算机硕士,目前小米大数据开发。日常会分享总结一些自己面试实际问题的回答,欢迎一起讨论。...公众号:diting_dapeng 一.前言 Kivy 是一个开源的 Python 框架,用于快速开发应用,实现各种当前 流行的用户界面,比如多点触摸等等。...而.buildozer目录通常在1G以上,每个项目目录如果都复制一份,不久就会耗尽虚拟机的硬盘空间。...进入到/home/kivydev//test是测试目录,该目录下的py2apk是py27打包,py3apk是py35打包,这两个版本的差别只在于不同版本的py配置文件,在该目录下的py文件,必须使用main.py...命名才能进行打包,先在该目录下对main.py进行编译,看能否成功执行:python3 main.py 4.
Python3 的整型可以当作 Long 类型(更 长的整型)使用,所以 Python3 没有 Python2 的 Long 类型。 2....如果 x 是个浮点数,则截去小数部分。 float(x) :将 x 转换到一个浮点数。 complex(x) :将 x 转换到一个复数,实数部分为 x,虚数部分为 0。...complex(x, y): 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。...空值是 Python 里一个特殊的值,用 None 表示(首字母大写)。None 不能理解为 0, 因为 0 是整数类型,而 None 是一个特殊的值。...None 也不是布尔类型,而是 NoneType。
前言 一、可能出错的原因 二、错误代码示例 三、解决方案 方案一:检查变量是否为None 方案二:提供默认值 方案三:异常处理 过程中的注意事项 总结 前言 在Python编程中,TypeError 是一种常见的错误类型...print(3*None) 报错原因跟我们想的一样: TypeError: unsupported operand type(s) for *: ‘int’ and ‘NoneType’ 所以可以更改代码...函数返回None:调用的函数可能在某些条件下返回None,而调用者未进行适当的检查。 错误的数据类型转换:在类型转换过程中可能产生了错误,导致期望的整数类型变成了None。...= get_multiplier() result = 5 * multiplier # 这里会抛出TypeError,因为multiplier可能是None 三、解决方案 方案一:检查变量是否为None...使用默认值:在逻辑允许的情况下,为变量提供默认值可以避免NoneType错误。 异常处理:使用try-except块来捕获并处理可能发生的TypeError,这样可以提供更优雅的错误处理。
为例,Python3是未来,大家都懂的) Python作为一个功能强大又语法简洁的语言,其应用已无需多言。...但其实意义不大,写好的Python代码并不是以一个独立的app进程运行的,只不过是在QPython这个应用中运行而已。...另外,就语法而言,Python比Java更加简洁,同时又功能强大,既可面向过程亦可面向对象,而不像Java一样,是一种纯粹的面向对象语言,哪怕打印一句话也需要先创建类。...什么是kivy,可自行了解,但要解决Android平台上Java与Python的交互,kivy确实是一个方向,而且是一个醍醐灌顶的方向。...kivy实际上已经解决我们需要实现的目的,模仿Android平台上的kivy实现机制即可。
Python 中的 None None是一个特殊的常量。 None和False不同。 None不是0。 None不是空字符串。...None有自己的数据类型NoneType。 你可以将None复制给任何变量,但是你不能创建其他NoneType对象。...>>> type(None) >>> None == 0 False >>> None == '' False >>> None == None True >>>...None == False False python2 和 python3 的区别 在python3中如果输入的是一个表达式,不会对表达式进行计算,但是在python2中会对表达式进行计算,然后返回计算结果...在python3 中,对input采用 eval函数 可以实现对表达式的计算,如下图所示: ?
在python3中, 整型没限制大小, 可以当做long类型使用....>>>type(1.5) 复数 complex 复数由实数部分和虚数部分组成, 可以用a+bj或complex(a,b)表示....>>>type(1+2j) 字典 字典格式 d={key1:value1,key2:value2} 字典由多个键值对组成,其中键必须是唯一的,且必须是不可变类型的...需要占用大量内存,内存浪费多 列表的特点: 查找和插入时间随着元素的增加而增加 占用空间小,浪费内存很少 所以,字典是使用空间换取时间 字典常用方法 fromkeys dict.fromkeys(seq...可以使用大括号 { } 或者 set() 函数创建集合, 注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
做界面并不是它的优势项目。但即便如此,本可以靠实力的 Python,偏偏也能靠脸走出一片天。...该库适用于 Python2 和 Python3,能在所有桌面平台运行。...wxPython 在主流的三大桌面平台都有不错的表现,但目前仅支持 Python2,Python3 需安装 wxPython_phoenix。...它最大的优点是不但可以在桌面平台上运行,还可以在移动设备上运行,包括 Android、iOS,甚至是树莓派。...而且,Kivy 可以看作许多模块的超集:许多知名的模块如 PyGame、SDL、GStreamer 都是 Kivy 的组成部分。Kivy 的 API更加高级、统一,方便使用。
4.问:为什么使用pip命令安装扩展库是提示“不是内部或外部命令,也不是可运行的程序或批处理文件”?...11.问:在我的代码中x是一个列表,我使用y=x.sort()语句把它排序后的结果赋值给y,然后使用y.index(3)查看3在y中的下标时,为什么会提示“AttributeError: 'NoneType...答:列表的sort()方法是原地排序,没有返回值。在Python中,没有返回值的方法,都认为返回空值None,而空值是没有index()方法的。...答:在Python中,不可哈希(unhashable)和可变的意思是一样的。整数、实数、复数、字符串、元组这些是不可变的,或者说是可哈希的。而列表、字典、集合是可变的,或者说是不可哈希的。...字典的“键”和集合的元素都要求必须是不可变的,也就是可哈希的。
(注:本教程使用Python3版本,因此,如果您使用的是Python2版本,那么执行后的输出结果可能和本教程中的示例输出略有不同。) ...然后对该列表进行排序和组合, 使得再次形成的是字符串而不是列表。 ...: ' not supported between instances of 'NoneType' and 'int' 当您尝试比较两个不可比较的值而不使用sorted()时, 也会引发同样的...您可以使用key参数中定义的lambda函数,而不是编写独立函数。...如果数据是副本,如果它是不重要的工作数据,如果没有人会因为可以检索而失去它,那么.sort()可以是一个很好的选择。
当加号两边的变量类型不一样的时候,又不能进行类型转化,就会抛出TypeError的异常。...而进行类型检查首先想到的就是用types(),比如使用types判断一个int类型: Source Code: #!...datetime.timedelta.days types.MethodType # 方法类型 types.ModuleType # module类型 types.NoneType...如上所示说明i和n的类型是不一样的,而实际上UserInt是继承int的,所以这个判断是存在问题的,当我们对Python内建类型进行扩展的时候,type返回的结果就不够准确了。...type比较的结果a和b的类型是一样的,结果明显是不准确的。这种古典类的实例,type返回的结果都是一样的,而这样的结果不是我们想要的。
如果我们想它让提供非默认以外的功能,我们必须指定更多的参数。在这个例子中,我们想要展示一个不同的目录:pypy。我们所做的是指定所谓的位置参数。...当我们使用 --verbosity 选项时,还必须指定一些值,任意值都可以。 上面的例子对于 --verbosity 还可以接受任意整数,但对我们的程序来说,只有 True 和 False 是有用的。...help show this help message and exit --verbose increase output verbosity 代码解释如下: 现在这个选项更像是一个标记,而不是仅仅需要一个值...然而,我们的帮助信息对这一个新功能解释得不是很好,但这一点仍旧是可以通过修改脚本代码来修复的(通过 help 关键字)。 最后一个输出暴露了我们程序的一个 bug。...: '>=' not supported between instances of 'NoneType' and 'int' 开始的输出结果很理想,并且修复了之前的bug。
for i in 100: print(i) 上述代码会报错 TypeError: 'int' object is not iterable,即整型 int 不是 iterable,即整型不是可以迭代的...: iter() returned non-iterator of type 'NoneType'` # 这是因为,一个可迭代对象如果想要被 `for...in` 循环,它必须要有一个迭代器 4....实际上,在使用 next() 函数的时候,调用的就是迭代器对象的 __next__ 方法(Python3 中是对象的 __next__ 方法,Python2 中是对象的 next() 方法)。...但这还不够,Python 要求迭代器本身也是可迭代的,所以我们还要为迭代器实现 __iter__ 方法,而 __iter__ 方法要返回一个迭代器,迭代器自身正是一个迭代器,所以迭代器的 __iter_...迭代器还有其他许多应用场景,例如处理大型数据集时,可以使用迭代器逐行读取文件而不需要一次性将整个文件加载到内存中;在生成器函数中,yield语句可以用于构建迭代器,以节省内存等。
面向对象高级语法部分 经典类vs新式类 把下面代码用python2 和python3都执行一下 #_*_coding:utf-8_*_ class A: def __init__(self...File "/Users/jieli/PycharmProjects/python基础/自动化day7面向对象高级/静态方法.py", line 17, in d.eat() TypeError...is not callable, 因为eat此时已经变成一个静态属性了, 不是方法了, 想调用已经不需要加()号了,直接d.eat就可以了 Traceback (most recent call last...: 'NoneType' object is not callable 正常调用如下 d = Dog("ChenRonghua") d.eat 输出 ChenRonghua is eating 好吧...well, 以后你会需到很多场景是不能简单通过 定义 静态属性来实现的, 比如 ,你想知道一个航班当前的状态,是到达了、延迟了、取消了、还是已经飞走了, 想知道这种状态你必须经历以下几步: 1.
领取专属 10元无门槛券
手把手带您无忧上云