字母转换器小写到大写(反之亦然):我的代码有什么问题?

时间:2017-08-12 13:12:42

标签: python-2.7

我想用upperandlower字母组合字母输入一个单词然后当我按Enter键时它会改变反之亦然

def changer(word):
for letter in word:
    if letter.isupper():
     letter.lower()
    elif letter.islower():
        letter.upper()
print word

word = raw_input() 变换器(字)

2 个答案:

答案 0 :(得分:0)

您必须将转换后的字母附加到新字符串,并且返回新字符串也很有帮助。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class scene1 extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception {
        Button button=new Button("problem");
        Pane pane1=new Pane();
        pane1.setPrefSize(600, 600);
        Scene sceneNew=new Scene(pane1, Color.AQUAMARINE);
        primaryStage.setScene(sceneNew);
        primaryStage.show();

    }
    public static void main(String[] args) {
        launch(args);
    }
}

答案 1 :(得分:0)

......你什么都不回。和python中的字符串是不可变的;你不能就地改变它们。

这是你可以尝试的:

def swapcase(word):
    return ''.join(c.lower() if c.isupper() else c.upper() for c in word)

print(swapcase(word='Hello'))  # hELLO

其中我使用str.join加入生成器,该生成器使用交换的大小写迭代字符。

速度str.translate可能是更好的选择:

from string import ascii_lowercase, ascii_uppercase

trans_table = str.maketrans(ascii_lowercase + ascii_uppercase,
                            ascii_uppercase + ascii_lowercase)

def swapcase(word):

    return word.translate(trans_table)

print('Hello'.translate(trans_table))  # hELLO