1-4関数、モジュール、ネットワークプログラミング

3816 ワード

6.関数
共通機能(コード)を関数に設定すると、いつでもインポートして使用できます.
숫자입력받는 함수 :
	num = input()
   	num = int(num)
後で数字の関数だけを再入力する場合は、次の2行を省略できます.
1)関数の作成方法

def 함수이름(매개변수1, 매개면수2, ...) :
	함수에서 실행할 코드
	return 반환값
returnやパラメータがなくてもいいです
2)関数実行時(呼び出し時)
함수이름()         만약에 매개변수를 만들었다면 매개변수도 입력해야함
3)パラメータ
関数を実行するユーザから受信したい(入力する値)
ex)
2つの数値を加算するプログラム
def mySum(num1, num2) : 
	print(numm1 + num2)

mySum(10, 10)
mySum(30, 10)
    
4) return
関数の値を返します
5)ゾーン変数とグローバル変数
≪領域変数|Area Variables|oem_src≫:変数を作成するコード・ブロックでのみ使用可能な変数
グローバル変数は、プログラム内の任意の場所で使用できます.
def test() :
    result = 0                          이름이 result인 지역 변수
    return result

result = 10                             이름이 result인 전역변수
test()
print(result)


# 이때 result값은 0일까 10일가?
답은 10임 
왜냐하면 함수안에 들여쓰기한 result는 지역 변수이고
들여쓰기 안한 result는 전역변수여서 어디서든지 사용가능한 변수이기 때문이다.
그냥 이름이 같은 거였을 뿐이기 때문에 함수내에서 뭐 만들때 조심히 만들어야함
領域変数resultの前にglobalを付けるとグローバル変数になります.
result = 10

def test() :
    global result
    result = 0
    return result


test()
print(result)

함수안에서 전역변수의 값에 접근하려면 global 전역변수이름 을 실행하고 난 다음에 변수 사용 가능
7.モジュール
モジュールは、関数の集合として関数を事前に作成します.
他のPythonファイルから読み込み、使用
モジュールの読み込みは、同じフォルダでもPythonがインストールされているディレクトリでも可能です
Libディレクトリにはモジュールファイルが必要です.
1)モジュールの基本的な使い方
モジュールを使用するには、ストレージ関数のファイルをインポートします.
モジュール内の関数を使用する場合は、モジュール名を使用します.関数名(パラメータ)として使用します.
2)名称の簡略化方法
(1) from
ex)
from ex01(파일명) import func1, func2(가져올 함수들)

func1()
func2()
(2) as
ex) import ex06 as e 				# ex06이라는 파일이름을 이제부터 e라고 한다.
e.func1()
e.func2()
3)モジュールの追加
pipはPythonモジュールを簡単にダウンロードして私のプロジェクトに応用します.
(1)pipを用いてモジュールを取り付ける
開発ツール端末はcmdに似ている
8.ネットワークプログラミング
ここでは定義のみを簡略化し,後で詳細にまとめる.
1)ネットワーク
複数のコンピュータデバイスがデータを共有できる「通信網」
(1)ネットワーク分類
ㄱ)大きさ別に分類する
a)LAN:近距離通信網
b)WLAN:遠隔通信網
接続形式による分類
a)スター:すべてのノードが中央コンピュータに接続されている
利点:便利な近接接続
欠点:中央コンピュータの故障はすべての装置の機能に影響する.
b)メッシュ:複数のノードがネットワークのようにそれぞれのコンピュータに接続されている
利点:1台の機器が故障しても、他の機器は正常に動作する
短所:費用が高い.
c)ハイブリッド型:実際のインターネットは多様な形式のハイブリッドである
LAN集約WLAN
(2)ネットワークプロトコル
ㄱ)協議:約束の形式
どのノードがどのノードにデータを送信するかを作成するフォームです.
プロトコルの種類
a)近くに連絡する場合
b)遠方に連絡する場合
c)各種プログラムによる連絡の場合
2)インターネット
グローバルに接続するネットワーク(最大のネットワークはインターネット)
3)Webサービス
ドキュメント図などのデータをインターネットで転送するサービス
4)サーバクライアント型式
(1)サーバ
프로그램, 서버 프로그램이 실행중인 컴퓨터가 서버 컴퓨터
(2)クライアント
게임, 웹브라우저(대표적인 클라이언트 프로그램)

* 네트워크를 통해서 데이터를 주고 받는 모든 것들은 클라이언트 프로그램과 
  서버 프로그램이 서로 연결된후 데이터를 주고 받는다
5)Pythonソケットサーバープログラミング
* 서버만드는 코드 *

import socket   # 네트워크 입출력(하드웨어 장치와의 통로)

host = '0.0.0.0'              	#ip주소   0.0.0.0 은 어떤 ip주소든 다 허용한다는 의미
port = 9999             	#포트번호


#서버 소켓 생성, 사용할 프로토콜은 ipV4, TCP
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
                        #위에 소켓은 함수
                        #(ip라는 프로토콜 쓰겠다, ~라는 프로토콜 쓰겠다)

server_socket.bind((host, port))

server_socket.listen(0)     # 서버를 상태를 listen(클라이언트의 접속 대기)으로 하겠다.


client_socket, addr = server_socket.accept()  #클라이언트가 접속했을때 클라이언트를 받아들이겠다.


while True :
    print(addr, '접속 중')
* 클라이언트 만드는 코드 *
import socket
host = '172.30.1.111'    #옆자리 ip주소
port = 9999
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
클라이언트 소켓 = 사용할 프로토콜은 ipv4,TCP

# 서버의 IP주소와 포트번호로 접속
client_socket.connect((host, port))

while True :
    print("접속 유지 중")