2023.05.09 centos7 주피터 서버 , 함수
dr-xr-x---. 19 root root 4096 5월 8 17:33 .
d = 디렉터리
r = 읽기권한
x = 실행권한
root 소유자
P.150 함수
함수 = 일부 기능을 표현하는 프로그램
우리가 사용하는 모든 Class는 Object Class의 자손이다.
함수 - 1. 내장함수(선언할 필요가 없다.) : Objeck Class
- 2. 외장함수 : 부모 Class 에서 가져온다. Objeck Class + import
- 3. 사용자 정의 함수 : 내가 원하는 동작을 하기 위한 함수, Class 자기 자신에서 정으된 함수
함수지향 프로그래밍 = 공장 자동화 (반복하는 애들)
사용자함수는 변수선언보다 먼저한다. 입력과 출력을 신경쓰지 않는다.
입력---(메세지)---함수---->출력
------주소
객체지향의 가장 큰 특성 : 관계를 밝혀라
간단한 예제
입력(과일) ---------> 함수(믹서기) -------->출력(쥬스)
함수는 선언문에서 사전 정의되어야 한다.
def 믹서기 :
기능을 정의하는 코드블럭
입력처리
믹서기 호출
출력처리
def a(): #함수를 호출할 때 전달될 매개변수
Print("믹서기 돌아갑니다.")
return #결과값의 반환 / 함수의 종류 전달
#입력처리
b = input("과일의 이름")
a() #함수의 호출
print(" %s 쥬스 출력"%(b))
함수의 사용 목적 : 반복되는 패턴 정의 : 코드의 재사용성을 높인다.
여러가지의 과일을 만드는 프로그램
def a(b): #함수를 호출할 때 전달될 매개변수
print("믹서기 돌아갑니다.")
print(" %s 쥬스 출력"%(b))
return #결과값의 반환 / 함수의 종류 전달
list1 = ["사과","포도"]
b = input("과일의 이름")
if b in list1:
a(b)
else:
print("지원하지 않는 과일 입니다.")
함수의 사용 ---> 재사용성을 높인다.
#문자열의 색이 녹색 : 예약어(이미 정의된 문자열이다.)
def a():
pass
a=1 #변수명과 함수명은 구분이 가능하다.
def add(a, b):
return (a+b , True)
d, e = add(1,2)
if e ==True:
print("add()가 정상적으로 동작했습니다.")
print(d)
else:
print("함수 호출 실패")
사칙연산 프로그램.
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if b != 0:
return a / b
else:
return "Error"
num1 = float(input("첫 번째 숫자를 입력하세요: "))
num2 = float(input("두 번째 숫자를 입력하세요: "))
operation = input("사칙연산 종류를 선택하세요 (+, -, *, /): ")
if operation == "+":
result = add(num1, num2)
elif operation == "-":
result = subtract(num1, num2)
elif operation == "*":
result = multiply(num1, num2)
elif operation == "/":
result = divide(num1, num2)
else:
result = "Error: 잘못된 연산 종류입니다."
print("결과:", result)
컴퓨터가 정리되는 순서로 코드를 짜야함
코드를 점검할때는 선언부 먼저 확인
위에서 아래로 차례대로 분석
import paramiko
import time
def s_ssh(ip,cmd,user,pw):
con = paramiko.SSHClient()
con.set_missing_host_key_policy(paramiko.AutoAddPolicy())
con.connect(ip,username=user,password=pw,port=22)
(stdin,stdout,stderr)=con.exec_command(cmd)
for i in stdout:
print(i)
con.close()
def r_ssh(ip,cmd,user,pw):
con = paramiko.SSHClient()
con.set_missing_host_key_policy(paramiko.AutoAddPolicy())
con.connect(ip,username=user,password=pw,port=22)
#(stdin,stdout,stderr)=con.exec_command(cmd)
connect=con.invoke_shell()
connect.send(cmd)
time.sleep(.2)
router_out = connect.recv(65535) #65535 버퍼 사이즈
for i in router_out:
print(str(i)+"\n")
time.sleep(.2)
con.close()
ip = input("IP: ")
#user = input("user: ")
#pw = input("pw: ")
os = input("해당 OS를 입력해주세요:")
user = "root"
pw = "asd123!@"
cmd = input("cmd: ")
if os == "리눅스":
s_ssh(ip,cmd,user,pw)
elif os == "라우터":
r_ssh(ip,cmd,user,pw)
#print(result)
#print(stdout)
con.close()