2 つの数値を比較するために、Python プログラム (Python 3.x で作成) を実行しようとしています。IDE: Eclipse JAR: jython-standalone-2.5.3.jar
Eclipse のコンソールでプログラムを実行すると、「最初の整数を入力してください:」と表示されます。整数を入力した後、プログラムはそれ以上実行されません。何が問題になる可能性がありますか?注: Python IDLE では問題なく動作します。
JAVA CODE:(ExperimentWithPython.java)
===============
import org.python.core.PyException;
import org.python.util.PythonInterpreter;
public class ExperimentWithPython{
public static void main(String[] args) throws PyException{
try
{
PythonInterpreter.initialize(System.getProperties(), System.getProperties(),new String[0]);
PythonInterpreter interp = new PythonInterpreter();
interp.execfile("D:/Development/comparisons01.py");
}
catch(Exception e)
{
System.out.println(e.toString());
e.printStackTrace();
}
}
}
PYTHON CODE: (comparisons01.py)
===============
print("Enter two integers and I will tell you")
print("the relations they satisfy")
number1 = input( "Please enter the first integer: " )
number1 = int(number1)
number2 = input( "Please enter the second integer:" )
number2 = int(number2)
if number1 == number2:
print ("%d is equal to %d" % (number1, number2))
if number1 != number2:
print ("%d is not equal to %d" % (number1, number2))
if number1 < number2:
print ("%d is less than %d" % (number1, number2))
if number1 > number2:
print ("%d is greater than %d" % (number1, number2))
if number1 <= number2:
print ("%d is less than or equal to %d" % (number1, number2))
if number1 >= number2:
print ("%d is greater than or equal to %d" % ( number1, number2 ))
dummy=input()
コードとjarの互換性のために、実際にはソリューションが機能していないことがわかりました。
Python 2.x標準でコードを書き直し、Python 2.7をインストールし、ビルドパスでjython-standalone 2.7 jarを使用しました。それはうまくいっています。このコードを試すことができます:
import random
import time
##Declare Variables
user_num=0
##lottery_num=random.randint(10,99)
lottery_num=12
##Input
print("Welcome to the Lottery Program!")
user_num=int(input("Please enter a two digit number: "))
print("Calculating Results.")
for i in range(3):
time.sleep(1)
print(".")
##Calc & Output
lottery_tens = lottery_num // 10
lottery_ones = lottery_num % 10
user_tens = user_num // 10
user_ones = user_num % 10
if lottery_num == user_num:
print("All your numbers match in exact order! Your reward is $10,000!\n")
elif lottery_tens == user_ones and lottery_ones == user_tens:
print("All your numbers match! Your reward is $3,000!\n")
elif lottery_tens == user_tens or lottery_ones == user_ones \
or lottery_ones == user_tens or lottery_tens == user_ones:
print("One of your numbers match the lottery. Your reward is $1,000!\n")
else:
print("Your numbers don't match! Sorry!")