Transfer to Python

Free Calculator

Now we will get our hands dirty to play with Python in the Command-Line. Python can be run in REPL(Read–eval–print loop). It is a simple way to code in Python. Type python without any parameters in the shell.

python

You will get something like this:

Python 3.9.7 | packaged by conda-forge | (default, Sep 29 2021, 19:24:02)
[Clang 11.1.0 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Try to type a simple calculation formula here.

>>> 26374 + 88140
114514

Then you have a simple CLI calculator! To use it as a calculator, _ refers to the last output, just like the ANS in calculators.

>>> _ + 1805296
1919810

We can also set a variable and let it remember.

>>> a = -1

And we can just type a and we can get its value

>>> a
-1

Writing Python Hello World.

Now using Ctrl + D to quit REPL. And let's try to write some Python code by Vim. First, cd to anywhere you like. Then:

vim hello.py

And press i to Enter INSERT mode to type the code.

print("Hello, World")

Python allows you not to type ; at the end of a line. Press the Esc key and type :x to exit Vim. Then run the code by:

python hello.py

Complex Data Types

In Python, we have List, Set, Dictionary, Tuple.

>>> a = {1, 2, 3}
>>> type(a)
<class 'set'>

>>> b = [1, 2, 3]
>>> type(b)
<class 'list'>

>>> c = {1: 'a', 2: 'b'}
>>> type(c)
<class 'dict'>

>>> d = (1, 2, 3)
>>> type(d)
<class 'tuple'>

To access a list item by index, the syntax is the same as Java.

arr = [1, 2, 3, 4, 5]
print(arr[3])    # This will output 4

To work with dictionaries, we can use the key to get the value.

dict = {"Alice": 12, "Bob": 13, "Charlie": 14}
print(dict["Alice"])    # This will output 12

Loop and Condition

We want to print out all of the items in a list, we can simply use a for-each loop:

arr = [1, 2, 3, 4, 5]
for a in arr:
    print(a)

Or something similar as Java:

arr = [1, 2, 3, 4, 5]
for i in range(len(arr)):
    print(arr[i])
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

Or If we want to loop a dictionary:

dict = {"Alice": 12, "Bob": 13, "Charlie": 14}
for key in dict:
    print(key, dict[key])

if and else are very similar to that in Java:

num = 10
if num >= 10:
    print("num >= 10")
else:
    print("num < 10")
int num = 10;
if (num >= 10) {
    System.out.println("num >= 10");
} else {
    System.out.println("num < 10");
}

And Python can make checking easier:

primes = [2, 3, 5, 7, 11, 13, 17, 19]
if 10 in primes:
    print("10 is prime")
else:
    print("10 is composite")

Functions

Defining a function in Python is also similar to that in Java.

def say_hello():
    print("Hello")
public static void sayHello() {
    System.out.println("Hello");
}

Adding return value. And if __name__ == '__main__': means the main method.

import math

def quadratic(a, b, c):
    delta = b * b - 4 * a * c
    if delta >=0:
        root_A = ( -b - math.sqrt(delta) ) / 2 * a
        root_B = ( -b + math.sqrt(delta) ) / 2 * a
        return root_A, root_B
    else:
        return None

if __name__ == '__main__':
    roots = quadratic(2, 3, 1)
    print(roots)

Try an Example

👍 Goal: Rewrite this Java code into Python code(script)

class HelloWorld {
    static boolean isPrime(int num) {
        if (num == 0) return false;
        if (num == 1) return false;
        boolean flag = true;
        for (int i = 2; i <= num / 2; i++) {
          if (num % i == 0) {
            flag = false;
            break;
          }
        }
        return flag;
    }
    
    public static void main(String[] args) {
        for (int i = 0; i < 100; i++) {
            if (isPrime(i)) System.out.println(i);
        }
    }
}

Note that:

  • Boolean value in Python is True or False

Activity: Clash of Code

Last updated