Python初学者错误:TypeError: unsupported operand type(s) for +: 'int' and 'str'

原创 2016年05月30日 11:52:49

在大神们看来print可能是一个再简单不过的函数,但是对于新手来说,在自学过程中,会碰到各种各样的问题,如果没有很好的老师或者学习思路,很有可能学习成本会相当高,所以希望大神们不要鄙视初学者的“傻X”问题,毕竟大家都是过来人


如下代码:

>>> a = 1
>>> print(a)
1
>>> b = 2
>>> print(a + b)
3
>>> type(a)
<type 'int'>

此时我们很想打印出如下效果:

>>> print(str(a) + '*' + str(b) + '=' + str(a * b))
1*2=2

可是我们不知道为什么要加’str’,于是就出现如下错误:

>>> print(a + '*' + b + '=' + a * b)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

其实错误提示已经很明确了,“类型错误:不支持操作类型为整数和字符串”,这里需要解释的最关键的东西是“+”,“+”在python中有两个作用,一个是数学运算符,是用来在整型、浮点型等数学之间进行加法操作的。另一个是用来进行字符串连接的。所以当你的“+”出现在即有数学运算和字符连接的情况下,计算机根本不知道哪两个是要进行字符串连接,哪两个之间要进行数学运算。

举一反三:

>>> print('a' + 2)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>> print(2 + "a")
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'
版权声明:本文为博主原创文章,未经博主允许不得转载。

Unsupported operand types 不支持的操作数据类型

Fatal error: Unsupported operand types意思是:致命错误:不支持的操作数据类型产生原因,将不符合数据类型的数据传送给了某些函数。尤其是容易出现在将一个数组传给了一个...
  • jallin2001
  • jallin2001
  • 2010年06月09日 14:01
  • 42462

Python PIP Install throws TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'

从source安装tensorflow时,安装到pip package命令 sudo pip install /tmp/tensorflow_pkg/tensorflow-1.2.1-py2-non...
  • hongxingabc
  • hongxingabc
  • 2017年08月11日 22:08
  • 2278

cuckoo安装指南(四)

引言: Cuckoo是一个非常流行的恶意软件或者攻击分析系统,通过cuckoo可以方便地帮助安全研究人员验证恶意程序的特征信息,本文将详细描述其运行环境的搭建过程。由于整个过程比较庞杂,故将分为4篇来...
  • blueheart20
  • blueheart20
  • 2016年09月17日 13:19
  • 5204

TypeError: unsupported operand type(s) for +: 'int' and 'str'

1、错误描述>>> import time; >>> di={1:'A',2:'B'}; >>> for key,value in dict.items(di): print(key+","+val...
  • you23hai45
  • you23hai45
  • 2017年05月08日 21:01
  • 1052

初识Python -- 关于类型的困惑

早就听闻过Python的大名,听说python以语法简洁清晰著称于世, 但是一直没有时间系统的学习一下。 我现在做Android应用开发, 对Java还算比较熟悉, 对C和C++也有一定的了解,但是没...
  • brave2211
  • brave2211
  • 2013年12月31日 18:02
  • 4037

Ubuntu16.04+Tensorflow+CUDA8.0

注:此篇为源码编译方式安装Tensorflow,不过也可以通过其他方法,比如Anaconda,我没试过:)一、参考资料:【http://blog.csdn.net/zhaoyu106/article/...
  • silence_iz
  • silence_iz
  • 2017年04月29日 00:35
  • 972

cuckoo安装指南(四)

引言: Cuckoo是一个非常流行的恶意软件或者攻击分析系统,通过cuckoo可以方便地帮助安全研究人员验证恶意程序的特征信息,本文将详细描述其运行环境的搭建过程。由于整个过程比较庞杂,故将分为4篇来...
  • blueheart20
  • blueheart20
  • 2016年09月17日 13:19
  • 5204

机器学习&深度学习实践(python版)系列----Linear Regression(线性回归)

今天和一位师兄决定复习一下Andrew Ng的机器学习和深度学习教程理论知识,用Python实现教程中的练习。教程分为: 机器学习:http://openclassroom.stanford.edu...
  • Sunshine_in_Moon
  • Sunshine_in_Moon
  • 2015年12月11日 14:33
  • 3571

学习笔记—SQLite3基本命令

11.13. sqlite3 — DB-API 2.0 interface for SQLite databases New in version 2.5. SQLite是一个提供轻量级磁盘文件数...
  • sucre_en_morceaux
  • sucre_en_morceaux
  • 2014年10月22日 03:11
  • 737

【机器学习实战-python3】树回归

本篇的数据和代码参见:https://github.com/stonycat/ML-in-Action 本篇博客部分参考Forec blog 一、数据建模问题 前面介绍了贪心算法的决策树,构建算...
  • sinat_17196995
  • sinat_17196995
  • 2017年04月07日 19:20
  • 2189
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python初学者错误:TypeError: unsupported operand type(s) for +: 'int' and 'str'
举报原因:
原因补充:

(最多只允许输入30个字)