MYXY 发表于 2019-11-14 23:12:36

求助为什么不对

1字符串循环左移(10分)
题目内容:

给定一个字符串S,要求把S的前k个字符移动到S的尾部,如把字符串“abcdef”前面的2个字符‘a’、‘b’移动到字符串的尾部,得到新字符串“cdefab”,称作字符串循环左移k位。

输入一个字符串和一个非负整数N,要求将字符串循环左移N次。

可以使用以下语句实现字符串s的输入:

s=str(input())

可以使用以下语句实现非负整数n的输入:

n=int(input())



输入格式:

输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。



输出格式:

在一行中输出循环左移N次后的字符串。



输入样例:

abcd

2



输出样例:

cdab



s=str('abcd')
n=int(2)
print(s+s)


为什么不对啊

冬雪雪冬 发表于 2019-11-14 23:31:12

1,题目要求input输入。你的程序
s=str('abcd')
n=int(2)
不符合。
2.s+s
5是什么,用户输入,开始你并不知道字符串的长度。
改为:
s + s[:n]

MYXY 发表于 2019-11-14 23:41:09

冬雪雪冬 发表于 2019-11-14 23:31
1,题目要求input输入。你的程序
s=str('abcd')
n=int(2)


input输入是什么?
s=str(input('abcd'))
这样嘛?

冬雪雪冬 发表于 2019-11-14 23:41:46

是的

jackz007 发表于 2019-11-15 00:04:57

本帖最后由 jackz007 于 2019-11-15 13:23 编辑

s = input('输入字符串 s : ') . strip()
if len(s) > 0:
    n = input('输入循环左移次数n : ') . strip()
    if len(n) > 0:
      n = int(n) % len(s)
      s = s + s[: n]
      print(s)

MYXY 发表于 2019-11-15 12:05:48

jackz007 发表于 2019-11-15 00:04



s = input('输入字符串 s : ') . strip()
if len(s) > 0:
    n = input('输入循环左移次数n : ') . strip()
    if len(n) > 0:
      n = int(n) % len(s)
      s = s + s[: n]
      print s
用例测试结果        运行时间        占用内存        提示        得分
用例1未通过        0ms        0kb       
程序异常,exit code非0
0
用例2未通过        0ms        0kb       
程序异常,exit code非0
0
为什么还是错误

jackz007 发表于 2019-11-15 13:25:02

MYXY 发表于 2019-11-15 12:05
s = input('输入字符串 s : ') . strip()
if len(s) > 0:
    n = input('输入循环左移次数n : ')...

       不好意思,我的代码是在 Python 2 下写的,在 Python 3 下运行确实会有问题,现在已经改好了,代码还在 5 楼,请楼主再试。

MYXY 发表于 2019-11-15 18:39:57

jackz007 发表于 2019-11-15 13:25
不好意思,我的代码是在 Python 2 下写的,在 Python 3 下运行确实会有问题,现在已经改好了, ...

还是报错,

jackz007 发表于 2019-11-15 18:45:56

本帖最后由 jackz007 于 2019-11-15 18:53 编辑

MYXY 发表于 2019-11-15 18:39
还是报错,

      那你在 Python 3 环境中实际运行过吗?

      如果再报错,唯一最大的可能就是文件编码了,试试下面的代码呢?

      注意,文件的实际编码必须与声明相符,所以,务必用附件中的代码文件再试。

MYXY 发表于 2019-11-15 18:47:55

MYXY 发表于 2019-11-15 18:39
还是报错,

exit code非0

jackz007 发表于 2019-11-15 18:55:36

本帖最后由 jackz007 于 2019-11-15 18:57 编辑

MYXY 发表于 2019-11-15 18:47
exit code非0

      你是怎么运行的?我希望的运行方式是开出 CMD 窗口,用:
Python x.py
      命令行来运行代码
      exit code 是不是 0 不用太在意,因为那只是 Python 解释器的退出状态,并不能说明什么,只要代码能完整运行到底就 ok 了。

MYXY 发表于 2019-11-15 20:27:36

jackz007 发表于 2019-11-15 18:55
你是怎么运行的?我希望的运行方式是开出 CMD 窗口,用:

      命令行来运行代码


温馨提示:

1.本次作业属于Online Judge题目,提交后由系统即时判分。

题目是慕课网的作业

jackz007 发表于 2019-11-15 20:57:22

本帖最后由 jackz007 于 2019-11-15 20:59 编辑

MYXY 发表于 2019-11-15 20:27
温馨提示:

1.本次作业属于Online Judge题目,提交后由系统即时判分。


      原来你不是学知识,纯粹应付差事,而且,自己也根本没是非判断能力,完全依赖外援,本坛居然有阁下这种人,我也是醉了!

MYXY 发表于 2019-11-15 21:29:11

jackz007 发表于 2019-11-15 20:57
原来你不是学知识,纯粹应付差事,而且,自己也根本没是非判断能力,完全依赖外援,本坛居然有 ...

让你失望了很抱歉
我还是想为自己辩解下
我的基础很差,跟不上视频的进度,我刚刚看到这个题目的时候,甚至想不到是用‘切片’操作来达到左移结果。
我思考后得出
s=str('abcd')
n=int(2)
print(s+s)
这个我在PyChamy上运行是得到了cdab的结果
但是放到作业上报错
我来到论坛提问
1楼大佬告诉我要用s=str(input('abcd'))这样的格式
我把代码改成了
s=str(input('abcd'))
n=int(input(2))
print(s + s[:n]
但是还是不行
之后看到了你的回答,我复制过去是想得到一个参考答案,并不是为了应付差事。就算这个作业不做也不影响我继续看慕课的课程啊。

页: [1]
查看完整版本: 求助为什么不对