|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- name = input().split()
- newname = ()
- i = 0
- while i < 1:
- try:
- newname += tuple(name[i])
- i += 1
- except:
- break
- print(newname)
复制代码
心中预期输出 ('abc')
因为你输入的字符串为 abc,通过 split 函数切割后,返回的结果为 ["abc"]
但,你对一个字符串调用 tuple 转换为元组,返回的结果是将每个元素都作为元组的一单独的元素
即 tuple(name[ i ]) = tuple("abc") = ("a", "b", "c"),所以当 newname + ("a", "b", "c") 时, newname 初始化为 () 空元组,返回的结果自然也是("a", "b", "c")
而且对元组使用 + 号,是两个元组连接,即 (xxx, yyy) + (zzz, www) 结果为 (xxx, yyy, zzz, www)
所以就算你你这里循环是 ("a",) 、("b",)、("c",) 这样单个元素,也依旧是将每个字符串中的字符,进行元组的 + 连接操作,最终结果依然为 ("a", "b", "c")
所有如果你想实现你预计的结果,那么可以将列表直接转换为元组就没问题,即 tuple(name[ i ]) 改成 tuple(name)
参考代码:
- name = input().split()
- newname = ()
- i = 0
- while i < 1:
- try:
- newname += tuple(name)
- i += 1
- except:
- break
- print(newname)
复制代码
|
|