+ -
当前位置:首页 → 问答吧 → python上机题目 把输入的文字转成古代竖排输出怎么做

python上机题目 把输入的文字转成古代竖排输出怎么做

时间:2011-02-12

来源:互联网

今天我去笔试...结果遇到这题目...顿时...无语- -....请高手帮帮我.
如:输入" 床前明月光 疑是地上霜 举头望明月 低头思故乡"
题目是要用python做的. 可是..我想用c语言的 "\0"来控制..段落的结尾.可是..python不认这个指令.........我又想了各种方法...始终..还是无果..因为 python..的字符串...从头到脚我只看到 英文的...因为 英文和中文的又不一样.一个是 算 1位 1个算2位..
所以一直乱码.........我的汗...飘的...
句子要一次性输入. 带空格的..
输出:
低 举 疑 床
头 头 视 前
思 望 地 明
故 明 上 月 
乡 月 霜 光  
这样....... 求帮助

作者: jkl8007   发布时间: 2011-02-12

2D矩阵右旋90度,py312写的
Python code

#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='');


作者: I_NBFA   发布时间: 2011-02-12

再来个C的,python的其实可以当5列判断
C/C++ code

#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;
}


作者: I_NBFA   发布时间: 2011-02-12