如:输入" 床前明月光 疑是地上霜 举头望明月 低头思故乡"
题目是要用python做的. 可是..我想用c语言的 "\0"来控制..段落的结尾.可是..python不认这个指令.........我又想了各种方法...始终..还是无果..因为 python..的字符串...从头到脚我只看到 英文的...因为 英文和中文的又不一样.一个是 算 1位 1个算2位..
所以一直乱码.........我的汗...飘的...
句子要一次性输入. 带空格的..
输出:
低 举 疑 床
头 头 视 前
思 望 地 明
故 明 上 月
乡 月 霜 光
这样....... 求帮助
10 个解决方案
#1
2D矩阵右旋90度,py312写的
#coding=utf-8
a = "床前明月光 疑是地上霜 举头望明月 低头思故乡";
a += ' ';
for i in range(0, 6):
for j in range(0, 4):
c = a[(3-j)*6+i];
if(c == ' '): continue;
if(j == 3): c += '\n';
print(c, end='');
#2
再来个C的,python的其实可以当5列判断
#include "stdio.h"
int main(){
setlocale(LC_ALL, "chs");
wchar_t *s = L"床前明月光 疑是地上霜 举头望明月 低头思故乡", c;
int i, j;
for(i = 0; i < 5; ++i)
for(j = 0; j < 4; ++j){
c = s[(3-j)*6+i];
putwchar(c);
if(j == 3) putwchar('\n');
}
return 0;
}
#3
x = u'床前明月光 疑是地上霜 举头望明月 低头思故乡'
print '\n'.join(' '.join(x[::-1]) for x in zip(*map(list, x.split(' '))))
#4
有些多余的。
明天再看看,这题有点意思
#coding=utf-8
a = "床前明月光 疑是地上霜 举头望明月 低头思故乡";
for i in range(5):
for j in range(4):
c = a[(3-j)*6+i];
print(c, end='');
print();
明天再看看,这题有点意思
#5
果然达人!
楼主面的啥公司啊 面试题这么诡异
楼主面的啥公司啊 面试题这么诡异
#6
厦门网游网络....
我面试 脚本......
我面试 脚本......
#7
不管怎么搞....gbk 还是 ut8 还是不能把中文字符串分割成字啊...汗
#8
搞不定编码就先放着吧,直接:
x = u'\u5e8a\u524d\u660e\u6708\u5149 \u7591\u662f\u5730\u4e0a\u971c \u4e3e\u5934\u671b\u660e\u6708 \u4f4e\u5934\u601d\u6545\u4e61'
#9
>>> from itertools import izip
>>> s = u'床前明月光 疑是地上霜 举头望明月 低头思故乡'
>>> l = [ c for c in s if c.strip() ]
>>> for l in izip(l[:5], l[5:10], l[10:15], l[15:]):
... print ''.join(l)[::-1]
...
低举疑床
头头是前
思望地明
故明上月
乡月霜光
numpy
>>> import numpy as np
>>> s = u'床前明月光 疑是地上霜 举头望明月 低头思故乡'
>>> l = [ c for c in s if c.strip() ]
>>> a = np.array(l)
>>> for line in np.transpose((a.reshape(4, 5))):
... print ''.join(line)[::-1]
...
低举疑床
头头是前
思望地明
故明上月
乡月霜光
>>>
#10
应该没啥问题,试试下面代码
#coding=utf-8
a = u"床前明月光 疑是地上霜 举头望明月 低头思故乡";
for i in range(5):
for j in range(4):
print a[(3-j)*6+i],;
print;
注意你的文件也得是utf8保存。
#1
2D矩阵右旋90度,py312写的
#coding=utf-8
a = "床前明月光 疑是地上霜 举头望明月 低头思故乡";
a += ' ';
for i in range(0, 6):
for j in range(0, 4):
c = a[(3-j)*6+i];
if(c == ' '): continue;
if(j == 3): c += '\n';
print(c, end='');
#2
再来个C的,python的其实可以当5列判断
#include "stdio.h"
int main(){
setlocale(LC_ALL, "chs");
wchar_t *s = L"床前明月光 疑是地上霜 举头望明月 低头思故乡", c;
int i, j;
for(i = 0; i < 5; ++i)
for(j = 0; j < 4; ++j){
c = s[(3-j)*6+i];
putwchar(c);
if(j == 3) putwchar('\n');
}
return 0;
}
#3
x = u'床前明月光 疑是地上霜 举头望明月 低头思故乡'
print '\n'.join(' '.join(x[::-1]) for x in zip(*map(list, x.split(' '))))
#4
有些多余的。
明天再看看,这题有点意思
#coding=utf-8
a = "床前明月光 疑是地上霜 举头望明月 低头思故乡";
for i in range(5):
for j in range(4):
c = a[(3-j)*6+i];
print(c, end='');
print();
明天再看看,这题有点意思
#5
果然达人!
楼主面的啥公司啊 面试题这么诡异
楼主面的啥公司啊 面试题这么诡异
#6
厦门网游网络....
我面试 脚本......
我面试 脚本......
#7
不管怎么搞....gbk 还是 ut8 还是不能把中文字符串分割成字啊...汗
#8
搞不定编码就先放着吧,直接:
x = u'\u5e8a\u524d\u660e\u6708\u5149 \u7591\u662f\u5730\u4e0a\u971c \u4e3e\u5934\u671b\u660e\u6708 \u4f4e\u5934\u601d\u6545\u4e61'
#9
>>> from itertools import izip
>>> s = u'床前明月光 疑是地上霜 举头望明月 低头思故乡'
>>> l = [ c for c in s if c.strip() ]
>>> for l in izip(l[:5], l[5:10], l[10:15], l[15:]):
... print ''.join(l)[::-1]
...
低举疑床
头头是前
思望地明
故明上月
乡月霜光
numpy
>>> import numpy as np
>>> s = u'床前明月光 疑是地上霜 举头望明月 低头思故乡'
>>> l = [ c for c in s if c.strip() ]
>>> a = np.array(l)
>>> for line in np.transpose((a.reshape(4, 5))):
... print ''.join(line)[::-1]
...
低举疑床
头头是前
思望地明
故明上月
乡月霜光
>>>
#10
应该没啥问题,试试下面代码
#coding=utf-8
a = u"床前明月光 疑是地上霜 举头望明月 低头思故乡";
for i in range(5):
for j in range(4):
print a[(3-j)*6+i],;
print;
注意你的文件也得是utf8保存。