我为什么选择了Python

目前,Python语言的发展势头在国内国外都是不可阻挡的,Python凭借其简单优雅的语法,强大的生态圈从众多语言中脱颖而出,如今已经是稳坐编程语言排行榜前三的位置。国内很多Python开发者都是从Java开发者跨界过来的,我自己也不例外。我简单的跟大家交代一下,我为什么选择了Python。

Python vs. Java

我们通过几个例子来比较一下,做同样的事情Java和Python的代码都是怎么写的。

例子1:在终端中输出“hello, world”。

Java代码:

  1. class Test {
  2. public static void main(String[] args) {
  3. System.out.println("hello, world");
  4. }
  5. }

Python代码:

  1. print('hello, world')

例子2:从1到100求和。

Java代码:

  1. class Test {
  2. public static void main(String[] args) {
  3. int total = 0;
  4. for (int i = 1; i <= 100; i += 1) {
  5. total += i;
  6. }
  7. System.out.println(total);
  8. }
  9. }

Python代码:

  1. print(sum(range(1, 101)))

例子3:双色球随机选号。

Java代码:

  1. import java.util.List;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. class Test {
  5. /**
  6. * 产生[min, max)范围的随机整数
  7. */
  8. public static int randomInt(int min, int max) {
  9. return (int) (Math.random() * (max - min) + min);
  10. }
  11. public static void main(String[] args) {
  12. // 初始化备选红色球
  13. List<Integer> redBalls = new ArrayList<>();
  14. for (int i = 1; i <= 33; ++i) {
  15. redBalls.add(i);
  16. }
  17. List<Integer> selectedBalls = new ArrayList<>();
  18. // 选出六个红色球
  19. for (int i = 0; i < 6; ++i) {
  20. selectedBalls.add(redBalls.remove(randomInt(0, redBalls.size())));
  21. }
  22. // 对红色球进行排序
  23. Collections.sort(selectedBalls);
  24. // 添加一个蓝色球
  25. selectedBalls.add(randomInt(1, 17));
  26. // 输出选中的随机号码
  27. for (int i = 0; i < selectedBalls.size(); ++i) {
  28. System.out.printf("%02d ", selectedBalls.get(i));
  29. if (i == selectedBalls.size() - 2) {
  30. System.out.print("| ");
  31. }
  32. }
  33. System.out.println();
  34. }
  35. }

Python代码:

  1. from random import randint, sample
  2. # 初始化备选红色球
  3. red_balls = [x for x in range(1, 34)]
  4. # 选出六个红色球
  5. selected_balls = sample(red_balls, 6)
  6. # 对红色球进行排序
  7. selected_balls.sort()
  8. # 添加一个蓝色球
  9. selected_balls.append(randint(1, 16))
  10. # 输出选中的随机号码
  11. for index, ball in enumerate(selected_balls):
  12. print('%02d' % ball, end=' ')
  13. if index == len(selected_balls) - 2:
  14. print('|', end=' ')
  15. print()

相信,看完这些例子后,你一定感受到了我选择了Python是有道理的。