파이썬 개발자를 위한 C언어 & Java 기본 문법 가이드
•
yeonliyou
정처기 실기를 위한 C & Java 요약 렛츠고.
(이러고 시험 보러 안감ㅋ)
프로그램 구조 차이
| 구분 |
Python |
C |
Java |
| 실행 시작점 |
위에서부터 실행(순차적) |
main() 함수에서 시작 |
public static void main() 메서드에서 시작 |
| 파일 확장자 |
.py |
.c |
.java |
| 컴파일 필요 여부 |
X |
컴파일 필요 (gcc 등) |
컴파일 + JVM 실행 |
| 출력 |
print("Hello") |
printf("Hello"); |
System.out.println("Hello"); |
기본 문법 비교
| 항목 |
Python |
C |
Java |
| 주석 |
# 주석 |
// 한 줄, /* 여러 줄 */ |
C와 동일하게 //, /* */ |
| 변수 선언 |
x = 10 (자동 타입) |
int x = 10; |
int x = 10; |
| 세미콜론 |
X |
문장 끝마다 ; |
문장 끝마다 ; |
| 블록(들여쓰기) |
들여쓰기 |
{} 중괄호 |
{} 중괄호 |
| 타입 필수 여부 |
자동 |
필수 |
필수 |
기본 자료형
| 자료형 |
Python |
C |
Java |
| 정수 |
int |
int, short, long |
int, short, long |
| 실수 |
float |
float, double |
float, double |
| 문자 |
str, 'a' |
char c = 'a'; |
char c = 'a'; |
| 문자열 |
'문자열' |
char str[] = "문자열"; |
String s = "문자열"; |
| 불리언 |
True/False |
없음 (0=false, 그 외 true) |
boolean x = true; |
입력/출력 비교
| 동작 |
Python |
C |
Java |
| 입력 |
x = input() |
scanf("%d", &x); |
Scanner sc = new Scanner(System.in); int x = sc.nextInt(); |
| 출력 |
print(x) |
printf("%d", x); |
System.out.println(x); |
제어문 (조건문 / 반복문)
if문
- 파이썬
# Python
if x > 0:
print("양수")
else:
print("음수")
- C
// C
if (x > 0) {
printf("양수");
} else {
printf("음수");
}
- Java
// Java
if (x > 0) {
System.out.println("양수");
} else {
System.out.println("음수");
}
for문
- python
for i in range(5):
print(i)
- C
// C
for (int i = 0; i < 5; i++) {
printf("%d\n", i);
}
- Java
// Java
for (int i = 0; i < 5; i++) {
System.out.println(i);
}
while문
- python
i = 0
while i < 5:
print(i)
i += 1
- C
int i = 0;
while (i < 5) {
printf("%d\n", i);
i++;
}
- Java
int i = 0;
while (i < 5) {
System.out.println(i);
i++;
}
함수 / 메서드
- python
def add(a, b):
return a + b
- C
int add(int a, int b) {
return a + b;
}
- Java
// Java (클래스 안에 있어야 함)
public static int add(int a, int b) {
return a + b;
}
배열 (리스트)
- python
nums = [1, 2, 3]
print(nums[0])
- C
int nums[3] = {1, 2, 3};
printf("%d", nums[0]);
- Java
int[] nums = {1, 2, 3};
System.out.println(nums[0]);
클래스 (파이썬 vs 자바)
- python
class Person:
def __init__(self, name):
self.name = name
def greet(self):
print("Hi, I'm", self.name)
p = Person("Jiyeon")
p.greet()
- Java
class Person {
String name;
Person(String name) {
this.name = name;
}
void greet() {
System.out.println("Hi, I'm " + name);
}
}
public class Main {
public static void main(String[] args) {
Person p = new Person("Jiyeon");
p.greet();
}
}
기타 문법 비교
| 기능 |
C |
Java |
Python |
|
|
| 문자열 길이 |
strlen(str) |
str.length() |
len(str) |
|
|
| 문자열 연결 |
없음 (수동 처리) |
+ |
+ |
|
|
| 증감연산자 |
a++, ++a |
동일 |
a += 1 사용 |
|
|
| 타입변환 |
(int)x |
(int)x |
int(x) |
|
|