Python程序转换成Java
所以我开始上我的第二节计算机科学课!对于我的第一个类,我们使用python,对于这个类,我们使用Java。我们的第一个任务(基本上只是练习)是将这个垃圾程序从Python转换成Java,而我正经历着一段痛苦的时光 有人能帮我做些什么,嗯,给我一些建议吗?也许对初学者来说是个不错的网站。。。。有点了解Python的人(仅从第一门CS课程的角度) 1) 用pythonPython程序转换成Java,java,python,Java,Python,所以我开始上我的第二节计算机科学课!对于我的第一个类,我们使用python,对于这个类,我们使用Java。我们的第一个任务(基本上只是练习)是将这个垃圾程序从Python转换成Java,而我正经历着一段痛苦的时光 有人能帮我做些什么,嗯,给我一些建议吗?也许对初学者来说是个不错的网站。。。。有点了解Python的人(仅从第一门CS课程的角度) 1) 用python def winCraps(): roll = rollDice() if roll == 7 or roll == 11:
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) 蟒蛇
def rollDice():
原始输入(“按下滚动…”)
die1=随机范围(1,7)
die2=随机范围(1,7)
总和=die1+die2
打印“您滚动”,die1,“+”,die2,“=”,和
回报金额
这件事把我弄糊涂了。randrange在Java中会是什么
爪哇
static int rollDice(){
系统输出打印(“按滚动…”);
double die1=数学随机();
double die2=数学随机();
die1=(int)die1*6+1;
die2=(int)die2*6+1;
int sum=(int)die1+(int)die2;
System.out.println(“您滚动了”+die1+“+”+die2+“=”+sum+”);
回报金额;
}
*请记住,我只是在学习这些东西lol您需要修复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中,您必须始终以分号结束每个语句我建议您在
randrange()
上查找文档。一旦你知道了它的确切功能,谷歌搜索这些关键词,再加上Java这个词
在使用语言的过程中,您会很快发现,API可能非常不同。Java中可能没有与之等价的
randrange
,但您可能会找到两个或三个函数,可以组合起来做同样的事情。randrange可以用中的方法代替。与Python一样,Java有一个广泛的标准库,您应该参考它。在Java转换中,您的第一个程序中的一个主要错误是条件
类似(roll=2&&3&&12)的操作将2指定给roll,然后应用and运算符。你也忘了if。您还有其他Python版本
你想要的是:
否则如果(滚动==2 | |滚动==3 | |滚动==12)
至于随机数,Java中有一个函数
randrange在Java中是什么
通过调用该方法,可以从Java的random类中获得特定范围内的随机整数。比如说,
Random rand = new Random();
int a = rand.nextInt(7);
将为您提供一个大于等于0且小于7的随机整数。这与Python中的
randrange
不完全相同,但您可以将其用作对象数组的索引,或者用作单个骰子的卷值。System.out.print
不会导致系统等待有人按enter键。为此,您需要对系统执行一些操作。在
中,很可能是因为它在等待输入时阻塞
此外,在Java中,程序开始使用main方法执行。确切地说,一个可执行类是这样开始的:
// You'll need the Random class, as per other answers
import java.util.Random;
// assuming WinCraps is the class name
public class WinCraps {
// args in this example is a string array of command-line arguments
public static void main(String[] args) {
// This is where your main method (that calls winCraps?) would be
}
// Other methods
}
另外,这个类中直接从main调用的任何方法在Java中也必须是静态的1),或者在Python中“操作符是”| |“不是”&&”,而比较操作符是“==”
所以
应该是
if( roll == 7 || roll == 11 ) {
而不是
if( roll = 7 && 11 ){
2)randrange是:从那里您可以搜索:
这将引导您实现以下目标:
使用此算法(a)在Internet上搜索Python函数,b)了解它的功能c)在java中搜索它)查找您的下一个作业,您就完成了
您可以在这里再次询问,这就是本网站的全部内容用英语写出Python程序的功能。一行一行地看一遍,然后向自己解释什么是计算,换句话说……发生了什么 然后,根据该描述编写Java程序
永远不要试图将程序文本从一种语言转换成另一种语言。这样你会遇到很多问题,因为每种语言都是不同的,不管它们看起来有多相似。你不应该用“| |”而不是“&&”?我想你从OP的Java代码中继承了这个错误。Python正确地使用了“or”,但它不应该是
返回false代码>而不是返回(false)代码>(真的也是一样)?@Fred,我当然知道。你指出来后我就注意到了。接得好。@R.Bemrose作为标准答案是的,但无论哪种方式,它的语法都是正确的。看在上帝的份上,继续使用你从PythonMaybe中学到的缩进技巧可能是因为你有“roll==7或roll==1”跟“应该是”,后面跟你第一次做的完全一样的文本?@Kaleb:可能是!,这就是为什么下层选民应该发表评论,这样我们就可以修正它。谢谢
if roll == 7 or roll == 11:
if( roll == 7 || roll == 11 ) {
if( roll = 7 && 11 ){