본문 바로가기

자바, 파이썬

[자바, 파이썬] 기본 문법

입력, 출력

자바

import java.util.Scanner;

Scanner scanner = new Scanner(System.in);  
		
System.out.println("Enter string");
String string = scanner.nextLine();  
	    
System.out.println("Enter int");
int a = scanner.nextInt();  
	    
System.out.println("Enter double");
double b = scanner.nextDouble(); 
	    
System.out.println(string); 
System.out.println(a); 
System.out.println(b); 
	    
scanner.close();

파이썬

input = input("Enter")

print(input)

자바스크립트

var input = prompt("Enter")

console.log(input)

파일 입출력

자바

import java.io.File;
import java.util.Scanner;

File file = new File("경로");
Scanner scanner = new Scanner(file);
        
while(scanner.hasNextLine()){
   System.out.println(scanner.nextLine());
}
        
scanner.close();

파이썬

file = open('file.txt') # 기본 r / w (새로쓰기)/ a (추가쓰기)/ r+ (rw,덮어쓰기) / w+ (rw,새로쓰기)

data = file.read() # 파일 전체를 1개의 string으로 읽기

file.seek(0) # 읽기 위치를 파일 처음으로

lines = file.readlines() # 파일 전체의 각 줄을 요소로 배열로 읽기

file.seek(0)

while True:
    line = file.readline(); # 파일을 1줄 읽기, 읽은 줄에 \n이 있으면 1줄 더 띄게 된다
    if not line:
        break
        
file.close()


# open(), close() 대신
with open('file.txt') as file:
    data = file.read()

데이터 타입

자바

  • char 
  • int
  • double
  • boolean - true/false
  • 배열: int[] nums = {1,2,3}

파이썬

  • 배열: nums = [1,2,3]
  • 집합: numSet = {1,2,3}
  • 딕셔너리: users = { 1 : "Jack", 2 : "Hamilton" , 3 : "Joe" }, users[1]
  • True/False

자바스크립트

  • var
  • let
  • const
  • true/false
  • 배열: var nums = [1,2,3]

for 루프

자바

for(int i = 0; i < 10; i++) {
	System.out.println(i);
}

for(int i = 0; i < users.length; i++)
{
    System.out.println(users[i]);
}

파이썬

for i in range(10):
	print(i)
  
for user in users:
	print(user)
    
new_users = [user for user in users]

자바스크립트

for(var i = 0; i < 10; i++) {
  console.log(i);
}

for (var i = 0; i < users.length; i++) {
  console.log(users[i]);
}

함수

자바

// public/private, 반환할 데이터 타입, 이름
public void printUser(int id, String name) {
    System.out.println(id + ": " + name);
}

private int getId() {
    return this.Id;
}

파이썬

def printUser(id, name):
  print(id + " " + name)

자바스크립트

function printUser(id, name) {
  console.log(id + " " + name);
}

클래스

자바

public class User {
	// field
	private int id;
  	private String name;
    
    // Constructor
    public User(){
    	this.id = 0;
    	this.name = "";
    }
    
    // Constructor with 1 argument
    public User(int id, String name){
    	this.id = id;
    	this.name = name;
    }
    
    // Method
    public void getInfo(){
    	System.out.println(this.id + ": " + this.name);
    }

	// main
  	public static void main(String[] args) {
        User user = new User(1,"Jack"); 
        user.getInfo()
  	}
}

파이썬

class User:
  def __init__(self, id, name):
    self.id = id
    self.name = name

  def getInfo(self):
    print(self.id + ": " + self.name);

user = User(1, "Jack")
user.getInfo()

자바스크립트

class User {
  constructor(id,name) {
    this.id = id;
    this.name = name;
  }
  
  getInfo() {
    console.log(this.id + ": " + this.name);
  }
}

var user = new User(1,"Jack");
user.getInfo();

map, filter, 람다식

자바

List<String> nums = Arrays.asList("1", "2", "3", "4", "5");
List<Integer> odd = nums.stream()
                        .map(s -> Integer.valueOf(s))
                        .filter(number -> number % 2 == 1)
                        .collect(Collectors.toList());

파이썬

# 배열의 요소 1개씩 함수의 인자로 들어간다
result = map(함수 이름만, 배열) # 각 요소마다 산술 계산 등 실행하여 iterator 객체로 반환
result = map(lambda x : x+1, 배열)
print(list(result)) # iterator 객체이기에 배열로 반환

result = filter(함수 이름만, 배열) # 각 요소마다 True/False 구분해 True인 것들로만 iterator 객체로 반환
result = filter(lambda x : x % 2 == 1, 배열)
print(list(result))

자바스크립트

var nums = nums.map(function (num) {
  return num + 1;
});

var nums = officers.map(num => num + 1);

var odds = nums.filter(function(num){
  return num % 2 == 1;
});

var odds = nums.filter(num => num % 2 == 1);