鱼C论坛

 找回密码
 立即注册
查看: 2822|回复: 8

[已解决]这个切片为什么不对?百思不得其解

[复制链接]
发表于 2020-1-7 14:53:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
不多说,上图:
这个按我的代码来实现,不应该是要切出两行的值的吗?为什么只有一个, 我没想明白,求指导!附上代码:
while True:
  s = input()
  if not s:
    break
  values = s.split(" ")
  print(values)
最佳答案
2020-1-7 15:23:53
我的解答:
input 函数只能接受一行的用户输入,你回车写的 "D 300" Python 压根都没放到 s 这个变量里。
所以,你用 split 分割出的只有一行。
解决方案就是在接受一个用户输入。

正确代码:
  1. while True:
  2.   s = input()
  3.   s2 = input()
  4.   if not s or not s2:
  5.     break
  6.   values = s.split(" ")
  7.   temp = s2.split(" ")
  8.   values.extend(temp)
  9.   print(values)
复制代码
QQ截图20200107145218.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-1-7 15:07:07 | 显示全部楼层
没看懂你要啥,返回一个列表,有什么不对吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-7 15:10:20 | 显示全部楼层
hrp 发表于 2020-1-7 15:07
没看懂你要啥,返回一个列表,有什么不对吗

我输入的是两行,切片只返回了一行,第二行的数据没有切到
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-7 15:10:22 | 显示全部楼层
没啥不对的啊

e:\pytest>python ex23.py
sdf 222
['sdf', '222']
sdfasf 5556
['sdfasf', '5556']
dfadfa  555 sdf
['dfadfa', '', '555', 'sdf', '']
sdfas 21s sdfa  sadf
['sdfas', '21s', 'sdfa', '', 'sadf', '', '', '', '', '', '']


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-7 15:12:12 | 显示全部楼层
sinapark 发表于 2020-1-7 15:10
我输入的是两行,切片只返回了一行,第二行的数据没有切到

啥叫切片  你再翻翻资料
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-7 15:17:20 | 显示全部楼层
你这是打了两行
D 100
D 300

你换个解释器

我用 pycharm ,效果如下:
D 100
D 300
['D', '100\nD', '300']

我用 idle,效果如下:
================== RESTART: C:\Users\admin\Desktop\test.py ==================
D 100
D 300
['D', '100']
['D', '300']
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-7 15:17:31 | 显示全部楼层
你这不叫切片
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-7 15:23:53 | 显示全部楼层    本楼为最佳答案   
我的解答:
input 函数只能接受一行的用户输入,你回车写的 "D 300" Python 压根都没放到 s 这个变量里。
所以,你用 split 分割出的只有一行。
解决方案就是在接受一个用户输入。

正确代码:
  1. while True:
  2.   s = input()
  3.   s2 = input()
  4.   if not s or not s2:
  5.     break
  6.   values = s.split(" ")
  7.   temp = s2.split(" ")
  8.   values.extend(temp)
  9.   print(values)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-1-7 16:11:02 | 显示全部楼层
pokeyboa 发表于 2020-1-7 15:17
你这是打了两行
D 100
D 300

是的,input只能一行行输入,我理解错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-6 05:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表