将Python程序转换为Java

2 投票
8 回答
1322 浏览
提问于 2025-04-15 18:19

我刚开始上我的第二门计算机科学课!第一门课我们用的是Python,这门课我们用Java。我们的第一个作业(基本上就是练习)是把一个乱七八糟的程序从Python转换成Java,我真是搞得一头雾水。

有没有人能帮我看看我做的这些,给我一些建议?或者推荐一个适合初学者的网站……我对Python的了解也就来自于第一门计算机课。

1) 在Python中

def winCraps():
roll = rollDice()
if roll == 7 or roll == 11:
    return True
elif roll == 2 or roll == 3 or roll == 12:
    return False
else:
    return rollForPoint(roll)

这是我尝试把它转换成Java的代码

public int winCraps{
    roll = rollDice();
    if (roll = 7 && 11){
    return (true);
    }
    else (roll =2 && 3 && 12){
    return(false);
    }
    else{
    return rollforPoint(roll);
}
}

2) Python

def rollDice():
raw_input("Press <Enter> to roll...")
die1 = randrange(1,7)
die2 = randrange(1,7)
sum = die1 + die2
print "You rolled", die1, "+", die2, "=", sum
return sum

这个让我非常困惑。Java中randrange应该是什么呢??

Java

static int rollDice(){
System.out.print("Press <Enter> to roll...");
double die1 = Math.random();
double die2 = Math.random();
die1 = (int) die1*6+1;
 die2 = (int) die2*6+1;
 int sum = (int)die1 + (int)die2;
 System.out.println("You rolled  "+die1+ " + "+die2+ " = "+sum+".");
 return sum;
 }

*请记住,我只是刚开始学习这些东西,哈哈

8 个回答

1

Randrange可以用java.util.Random里的方法来替代。和Python一样,Java也有一个很丰富的标准库,你可以去查阅一下。

2

Java中randrange是什么?

在Java中,你可以通过调用Random类的 nextInt(int n) 方法来获取一个特定范围内的随机整数。例如,

Random rand = new Random();
int a = rand.nextInt(7);

这段代码会给你一个大于等于0且小于7的随机整数。这和Python中的randrange不完全一样,但你可以把它用作对象数组的索引,或者作为掷骰子的结果。

2

你需要修正你的if语句,"=="这个符号是用来检查两个东西是否相等的,你必须在每个语句的部分中放入你要检查的变量。

public int winCraps{
    roll = rollDice();
    if (roll == 7 || roll == 11) {
        return true;
    }
    else if(roll == 2 || roll == 3 || roll == 12) {
        return false;
    }
    else{
        return rollforPoint(roll);
    }
}

在你的rollDice()方法中,你给每个骰子赋值的方式是不对的。我建议你去了解一下随机数(因为这是作业,我就不多说了)。

另外,记住在Java中,你必须每个语句后面都加一个分号

撰写回答