之前小编告诉大家最初是学Java的,现在转向python,那对于两者之间有什么互通的嘛?其实有,比如可以将Java转成python代码,一起来看下吧。
首先给大家带来一组示例演示。
Java代码如下:
package program.calculation.exercise22; import java.util.Scanner; /** * 22.读取5个数(1—50)的整数值,每读取一个值, 程序打印出该值个数的*。 */ public class StarPrint { public static void main(String[] args) { System.out.println("请输入5个整数(1-50):"); @SuppressWarnings("resource") Scanner scanner = new Scanner(System.in); int[] arr = new int[5]; for(int i=0;i<arr.length;i++){ arr[i] = scanner.nextInt(); } printStar(arr); } //打印* private static void printStar(int[] arr) { for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); for (int j=0; j<arr[i]; j++) { System.out.print("*"); } System.out.println(); } } }
Python代码转换如下:
ls=[] for i in range(5): n=int(input('输入dao一个整回数答')) ls.append(n) for i in ls: for j in range(i): print('*',end='') print('\n')
运行结果:
需要注意:
1、在java类中直接执行python语句,需要引用 org.python包,需要下载Jpython。
如果使用maven依赖添加的话,使用下面的语句
<dependency> <groupId>org.python</groupId> <artifactId>jython-standalone</artifactId> <version>2.7.0</version> </dependency>
以上准备好了,就可以直接在java类中写python语句了,具体代码如下:
PythonInterpreter interpreter = new PythonInterpreter(); interpreter.exec("a=[5,2,3,9,4,0]; "); interpreter.exec("print(sorted(a));"); //此处python语句是3.x版本的语法 interpreter.exec("print sorted(a);"); //此处是python语句是2.x版本的语法
2、使用Runtime.getRuntime()执行脚本文件
为了验证该方法可以运行含有python第三方库的程序,我们先写一个简单的python脚本,代码如下:
import numpy as np a = np.arange(12).reshape(3,4) print(a)
可以看到程序中用到了numpy第三方库,并初始化了一个3×4的一个矩阵。
下面来看看怎么用Runtime.getRuntime()方法来调用python程序并输出该结果,java代码如下:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Demo1 { public static void main(String[] args) { // TODO Auto-generated method stub Process proc; try { proc = Runtime.getRuntime().exec("python D:\\demo1.py");// 执行py文件 //用输入输出流来截取结果 BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream())); String line = null; while ((line = in.readLine()) != null) { System.out.println(line); } in.close(); proc.waitFor(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }
输出的结果如下图所示:
即运行成功~
同时存在两个python,而不想用默认的那个,也不想修改默认的python解释器,这种情况下,可以写一个bat文件,在bat文件中通过dos命令切换到该python所在目录,然后运行py文件(py文件要放在该目录下)
bat文件:
@echo off C: cd C:\Anaconda2\envs\py3 start python test.py Exit
跟着以上示例,大家可以尝试将Java代码转为python试试看哦。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试