Jupyter Python2.7中使用.join去除打印结果[]时出现语法错误
问题分析与解决
首先看你遇到的语法错误,核心问题有两个:
.join()是字符串对象的方法,你直接写.join(age_100)时,Python不知道这个方法属于哪个字符串,所以直接触发语法错误。你得指定一个字符串(比如空字符串'')来调用这个方法,比如''.join(...)。- 另外,
age_100列表里的元素是整数类型,而join()只能连接字符串元素,直接用会触发类型错误,所以得先把整数转成字符串。
不过其实这里完全没必要把年份放到列表里,因为它就是一个单独的数值,直接计算输出更简单。我给你两种解决方案:
方案一:简洁写法(推荐)
直接计算出100岁对应的年份,然后转成字符串拼接:
import datetime year = int(datetime.date.today().year) age = int(raw_input("How old are you? ")) age_100 = (year - age) + 100 print("You will be 100 years old in " + str(age_100))
方案二:如果坚持用列表和join的方式
需要先把列表里的整数转成字符串,再用空字符串连接:
import datetime year = int(datetime.date.today().year) age = int(raw_input("How old are you? ")) age_100 = [(year - age) + 100] # 先把列表中的每个元素转成字符串,再用空字符串连接 print("You will be 100 years old in " + ''.join(str(item) for item in age_100))
这样修改后,既解决了语法错误,也能正确输出不带方括号的年份啦。
内容的提问来源于stack exchange,提问作者Evan
相关产品推荐
相关产品推荐

