Pythonはまた、非常に強力な一般的なスクリプト言語ですが、このような様々な爬虫類の側面、ネットワークツール、科学計算、ラズベリーパイ、Web開発者としてほとんど何を行うことができ、ゲームが便利になることができます。関係なく、どのプラットフォームのそれと同時に、システムは、Pythonでプログラムすることができます。
機械学習は、このような一般的に使用さTensorFlow人工知能として、実装するためにいくつかのPythonライブラリを使用することができます。NLTKも、自然言語処理(NLP)を持つため、このPythonライブラリのようにすることができます。
この記事では、基本的なPythonプログラミングを説明し、フォローアップは、実際の例いくつかのPythonプログラミングを書き込みます。
pythonを学習するときに我々は確かに新しい技術の追求だけでなく、多くの困難に遭遇する、ここで私たちはPythonのバックルqunを学ぶお勧めしますものです:784758214、ここではPythonの学習者が集まる場所です!!同時に、彼はゼロベースのデータに対処するためにWeb開発に基本的な、爬虫類、ジャンゴ、データマイニングや他のプロジェクトから上級開発エンジニアパイソン、Pythonスクリプトだっ仕上げています。どんな小さなPythonのパートナーに与えられました!毎日の株式学習と細部に注意を払う必要がありますいくつかの方法
文字列操作
Pythonの文字列は不変であり、直接変更することはできません。文字列の内容を変更すると、新しいコピーを生成する必要があります。
Pythonのプロセス内の文字列は非常に簡単です。
文字列の連結
str = "welcome " + "to Python"
print (str)
これは、接続文字列は、あなたが文字列で乗算を行うことができます:
繰り返し文字列
str = "Python" * 2
print (str)
そして、非文字列の連結
あなたは、することができます str()
以下に示すように、接続した後の文字列に文字列以外の値に機能し:
str = "This is test number " + str(15)
print (str)
サブストリング検索
あなたは使用することができる find()
次のように、メソッドの部分文字列検索を:
str = "welcome to Python"
print(str.find("Python"))
あなたは、文字列「パイソン」を見つけた場合、 find
メソッドは文字列が最初に現れる位置を返します。
何も見つからない場合は、-1が返されます。
find
次のようにデフォルトの関数は、n番目の文字から開始することができ、最初の文字から検索を開始します。
str = "welcome to Python"
print(str.find("Python",12))
我々は最初の12個の文字から始まっているので、Pythonは言葉を見つけることができないので、それは-1を返します。
部分文字列を取得します
だから我々は、検索するためにGoogleのインデックスの文字列を持って、そして今、私たちは、文字列の一致を印刷したいです。
次のように、印刷された出力ケーブル文字列を押すことができます:
str = "first second third"
print(str[:2])
print(str[2:])
print(str[3:5])
print(str[-1])
コードの2行目に第一及び第二の文字が印刷され、3行目を終了する第二の文字から印刷を開始します。結腸接合における位置コードことに留意されたいです。カウントから0の文字列。
あなたが負の数を使用している場合は、それが最後のカウントから開始します。コードの第5行は、最後の文字が印刷されます。
置換文字列
あなたは、次のような方法で文字列を置き換えることができます。
str = "This website is about programming"
str2 = str.replace("This", "That")
print(str2)
あなたは文字列を置換したい場合は複数回表示されますが、最初のオカレンスだけを交換したい、あなたは場所を指定することができます。
str = "This website is about programming I like this website"
str2 = str.replace("website", "page",1)
print(str2)
最初の単語のみを交換します。
空白の文字列の両端を削除します
あってもよい strip
次のように、文字列の両端にスペースを削除する方法:
str = " This website is about programming "
print(str.strip())
あなたはできるrstrip
ボックスの唯一の右端を削除するか、との lstrip
一番左のボックスの除去。
文字のケースを変更
いくつかのケースでは、大文字と小文字を変更する必要があります。
str="Welcome to likegeeks"
print(str.upper())
print(str.lower())
デジタルに文字列を変換します
以前の私たちは、と学んだ str()
文字列に機能番号が、これは他に、唯一のPythonの変換関数ではありません int()
、float()
、long()
およびその他のキャスト機能。
int()
入力文字列を整数に変換することができるfloat()
浮遊するファンクション文字列。
str="10"
str2="20"
print(str+str2)
print(int(str)+int(str2))
行3は、二つの文字列、2つの値の最初の4行に接続され、その結果を出力します。
文字列の数
することができますmin()
ASCII値の最小の文字列で見つかった、max()
と、最大の文字を見つけるlen()
文字の長さの合計を取得する機能。
str="welcome to Python"
print(min(str))
print(max(str))
print(len(str))
文字列の反復
それはかもしれ for
次のように、各文字列の繰り返しと別の操作:
str="welcome to likegeeks website"
for i in range(len(str)):
print(str[i])
前記 len()
関数は、文字列の長さを得るために使用されます。
文字列のエンコーディング
あなたは、Python 3を使用している場合は、すべての文字は、Unicodeのデフォルトの文字セットエンコーディングケースですが、Pythonの2場合は、次のように、文字列をエンコードする必要があります。
str="welcome to Python"
str.encode('utf-8')
操作デジタル
Pythonで定義された数値変数は次のとおりです。
a=15
あなたは、浮動小数点数も定義することができ、整数を定義することができます。
浮動小数点数ができ int()
、次のように、丸め関数であります:
a=15.5
print(int(a))
数字を丸め
これは、使用可能な round()
デジタル丸め機能のために:
a=15.5652645
print(round(a,2))
単純に必要ないくつかの小数点以下の切り上げを指定します。
精密カスタム番号
多くの場合、カスタム精度の浮動小数点数を使用します。
これは、小数精度のユーザ定義のモジュールの数を扱うことができます。
このようなインポートモジュールと使用:
from decimal import *
a=Decimal(5.5)
乱数を生成します
Pythonのランダムなモジュールは、乱数を生成するための機能を提供します。
import random
print(random.random())
0.0と1.0の間の乱数を生成します。
次のようにその定義の範囲の乱数を生成することがあり、次のとおりです。
import random
numbers=[1,2,3,4,5,6,7]
print(random.choices(numbers))
オペレーティング日付と時刻
あなたは、以下に示す日付から目的の値を抽出することができます。
import datetime
cur_date = datetime.datetime.now()
print(cur_date)
print(cur_date.year)
print(cur_date.day)
print(cur_date.weekday())
print(cur_date.month)
print(cur_date.time())
以下のように、2回または日付の差を求めることができます。
import datetime
time1 = datetime.datetime.now()
time2 = datetime.datetime.now()
timediff = time2 - time1
print(timediff.microseconds())
上記の例では timediff
、変数である timedelta
オブジェクトタイプ、あなたも、このオブジェクト自体を作成することができます。
time1 = datetime.datetime.now()
time2 = datetime.timedelta(days=3)
time3=time1+time2
print(time3.date())
書式の日付と時刻
あなたは使用することができる strftime()
日付または時刻をフォーマットします。
次の表は、いくつかの一般的な書式設定オプションを指定します。
- %Yは、2桁の年(00-99)を表します
- %Yは4桁の年(000から9999)を示し
- %M(01-12)
- 月の%d個の日内(0-31)
- %H 24時間(0-23)時間製
- %I 12時間の時間(01-12)
- 分%のM個(= 59 00)
- %のS秒(00-59)
- %週にはローカル名を簡素化
- 地元%完全な曜日名
- %のB地元の簡素化の月名
- 地元の%のB完全な月の名前
- %Cは、ローカルを表し、対応する日付と時刻を表します
- ある日(001〜366)%jの年
- %PローカルAMまたはPMと同等の文字
- 日曜日から始まる週の年の%U週数(00から53)
- %のW週(0-6)、日曜日が週の始まりです
- 月曜日から始まる週の年の%W週数(00から53)
- %Xは、対応するローカル日付を示し
- %Xは、対応するローカル時間を示します
- 名%Z現在のタイムゾーン
- %%%数そのもの
import datetime
date1 = datetime.datetime.now()
print(date1.strftime('%d. %B %Y %I:%M%p'))
文字列から作成日
あなたは、することができ strptime()
、次のように日付の文字列関数から作成されました:
date1=datetime.datetime.strptime(“2015-11-21”, “%Y-%m-%d”)
また、このようなものを作成することができます。
date1= datetime.datetime(year=2015, month=11, day=21)
プロセスファイルシステム
Pythonのファイルでは、あなたがそれを信じるかどうか、に対処するのは非常に簡単です、それは希望の言語であることは最も簡単です。もちろん、あなたもPythonがすべてをやっ一種の、最も簡単な言語であると言うことができます。
ファイルのコピー
shutil
モジュールは、ファイルをコピーするための機能が含まれています。
import shutil
copied_path = shutil.copy('my_file.txt', 'copied_file.txt')
my_file.txtはソフトリンクであれば、上記のコードは、別のファイルとして作成されたcopied_file.txtを入れます。
また、コピーは次のソフトリンクを作成することができます。
copied_path = shutil.copy('my_file.txt', 'copied_file.txt',follow_symlinks=False)
ファイルを移動
あなたは、このようなファイルを移動することができます。
import shutil
shutil.move('file1.txt', 'file3.txt')
また、使用することができる os
モジュールで rename
、次のように、ファイルの名前を変更機能:
import os
os.rename('file1.txt', 'file3.txt')
テキストファイルを読み取り、書き込み
使用可能な open
ファイル関数を開くには、その後 read
、またはwrite
メソッドを読み書きします。
fd = open('file1.txt')
content = fd.read()
print(content)
まず、使用して open
ファイルを開いて読むための機能を、次に私が使用し read
たファイルの内容を読み取るための機能を、そして最後に、変数に結果のコンテンツ content
インチ
あなたが割り当てることができる read()
バイト数の()関数をお読みください。
fd.read(20)
ファイルが大きすぎない場合は、リストの内容全体を読み、[リストプリントアウト経由することができます。
content = fd.readlines()
print(content[0])
オープンモードを指定してファイルに書き込むことができます。書き込みモード、ライトモードと追加モードの2種類があります。
ここでは書き込みモードがあり、ファイルが古い内容を上書きします。
fd = open('file1.txt','w')
content = fd.write('YOUR CONTENT GOES HERE')
次の追加のモードです。
fd = open('file1.txt','a')
content = fd.write('YOUR CONTENT GOES HERE')
ディレクトリを作成します
することができます os
モジュール mkdir
次のように、新しいディレクトリ機能を作成します。
import os
os.mkdir('./NewFolder)
ディレクトリがすでに存在する場合は、エラーが発生します。しかし、心配しないでください、例外処理について説明します今後の記事では、あなたがこのようなエラーを回避できます。
そして修正および作成時間へのアクセスを得ます
それは使用することができ getmtime()
、getatime()
および getctime()
修正時刻、アクセス時刻と作成時刻を取得しています。
次のように返されたタイムスタンプのUnix時刻形式は、我々は、人間が読める形式に変換することができます:
import os
import datetime
tim=os.path.getctime('./file1.txt')
print(datetime.datetime.fromtimestamp(tim))
反復ファイル
あなたは使用することができ os
、モジュール listdir()
ファイルを取得する機能を:
import os
files = os.listdir('.')
print(files)
また、あなたがすることができ glob
、同じ操作モジュールを実行します。
import glob
files = glob.glob('*')
print(files)
あなたがすることができます glob()
任意の拡張子を設定し、例えば、に設定されている * .doc
すべてのWord文書を取得。
Pythonオブジェクトのシリアライズ
この手順は、後で再利用オブジェクトのPythonバイトストリームをシリアル化するために使用されます。
あなたは使用することができ pickle
、それを行うには、モジュールを:
import pickle
fd = open('myfile.pk ', 'wb')
pickle.dump(mydata,fd)
することができ load()
、次のように関数は、データをデシリアライズ:
import pickle
fd = open('myfile.pk ', 'rb')
mydata = pickle.load(fd)
圧縮ファイル
Pythonの標準ライブラリあなたは、タール、郵便番号、GZIP、BZIP2など圧縮ファイルの異なるフォーマットを扱うことができるように。
対処するため zip
のファイルは、使用することができます zipfile
モジュールを:
import zipfile
my_zip = zipfile.ZipFile('zipped_file.zip', mode='r')
print(file.namelist())
次のようにあなたは、zip形式にファイルを圧縮することができます:
import zipfile
file=zipfile.ZipFile('files.zip','w')
file.write('file1.txt')
file.close()
使用可能な extractall()
圧縮されたzipファイルのパッケージ方法を抽出するために:
import zipfile
file=zipfile.ZipFile('files.zip','r')
file.extractall()
file.close()
次のようにさらに追加のモードも、既存のzipファイルにファイルを添付するために使用することができます。
import zipfile
file=zipfile.ZipFile('files.zip','a')
file.write('file2.txt')
file.close()
GZまたはBZファイルを処理し、それは上記のルーチンと同じであってもよいです。ただし、インポートする gzip
モジュールまたは bz2
モジュールを。
import gzip
import bz2
gz_file=gzip.GzipFile('files.gz','r')
bz_file=bz2.BZ2File('fiels.bz2','r')
そして、同じように読みます。
あなたは使用することができる のunrar RARファイルにパッケージ契約を。まず、パッケージをインストールします。
pip install unrar
そして、同じように使用します。
import unrar.rarfile
m=unrar.rarfile.RarFile('file.rar')
m.namelist()
m.extractall()
CSVファイルを解析
非常に便利なパッケージにはパンダと呼ばれます。これは、CSVやExcelのファイルを解析し、簡単にデータを抽出することができます。
まず、インストールパッケージ
pip install pandas
次のように、あなたは、独自のコードでそれを使用することができます。
import pandas
data=pandas.read_csv('file.csv)
デフォルトでは、パンダは、それぞれの行の最初の列のラベルを考えます。列インデックスは渡すことで、最初の列でない場合は index_col
、列のインデックスを指定するパラメータを。
文書がラベルを行いない場合は、パラメータを使用する必要があります index_col = False
。
CSVファイルを作成するには、使用することができる to_csv()
方法を。
data.to_csv('file.csv)
パースExcelファイル
パンダモジュールとすることができる read_excel()
Excelドキュメントを解決する方法。
data = pd.read_excel('file.xls', sheetname='Sheet1')
あなたが複数のワークシートを持っている場合は、それをロードすることができます。
ta = pd.ExcelFile('file.xls')
このような書き込みは、ファイルをエクセル:
ta.to_excel('file.xls', sheet='Sheet1')
ネットワークとの接続性
Pythonは持っている socket
多くのネットワークプロトコルをサポートしている低レベルのAPIを介して、ネットワークにアクセスする方法を提供するクラスを。
import socket
host = '192.168.1.5'
port = 5050
m_sock = socket.create_connection ((host, port))
このコードと192.168.1.5のホストのIPアドレスは、ポート5050を介して接続します。
オープンソケットは、データを送受信することができます。
m_sock.sendall(b'Hello World')
データはバイト文字列にする必要があるので、私は、前の文字のb列を使用することに注意してください。
データ伝送が大きすぎる場合は、次のように、ループを分割して送信する必要があります。
msg = b'Longer Message Goes Here'
mesglen = len(msg)
total = 0
while total < msglen:
sent = m_sock.send(msg[total:])
total = total + sent
データを受信するには、指示する必要があります recv()
に読み込まれたバイト数一度方法を。
data_in = m_sock.recv(2000)
あなたが送信されたメッセージの長さが2000バイト未満であるかを決定することができますので、これは効果的です。
メッセージが大きい場合、サイクルは、全ての受信されたデータ・ブロックまで繰り返されなければなりません。
buffer = bytearray(b' ' * 2000)
m_sock.recv_into(buffer)
これは、空のバッファとして定義され、そのメッセージバッファを書き込みされます。
POPメールサーバーから電子メールを受信します
poplib
モジュールを使用すると、POPサーバーと通信することを可能にします。
import getpass,poplib
pop_serv = poplib.POP3('192.168.1.5')
pop_serv.user("myuser")
pop_serv.pass_(getpass.getpass())
getpass
暗号モジュールは、安全に取り扱うことができます。
あなたは安全な接続が必要な場合は、POP3_SSLクラスを使用することができます。
メーリングリストやメッセージカウントのために、あなたはこれを行うことができます。
msg_list = pop_serv.list() # to list the messages
msg_count = pop_serv.msg_count() # to get message count
処理が完了したら、開いているすべての接続を閉じるように覚えておく必要があります。
pop_serv.quit()
IMAPメールサーバーから電子メールを受信します
それはかもしれ imaplib
通信モジュールIMAPメールサーバ。
import imaplib, getpass
my_imap = imaplib.IMAP4('imap.server.com')
my_imap.login("myuser", getpass.getpass())
あなたのIMAPサーバ、アプリケーションIMAP4_SSLクラスにSSLを使用している場合。
電子メールのリストを取得するには、クエリ操作を実行する必要があります。
data = my_imap.search(None, 'ALL')
次いで、反復を通じて data
指標取得メッセージ内容変数メッセージ
msg = my_imap.fetch(email_id, '(RFC822)')
最後に、接続を閉じることを忘れないでください:
my_imap.close()
my_imap.logout()
メールを送信
あなたは、SMTPプロトコルを介して電子メールを送信します。それは使用することができます smtplib
。
import smtplib, getpass
my_smtp = smtplib.SMTP(smtp.server.com')
my_smtp.login("myuser", getpass.getpass())
SMTPサーバ、アプリケーションSMTP_SSLクラスのSSLの場合。
接続を開いた後、あなたは電子メールを送信することができます:
from_addr = '[email protected]'
to_addr = '[email protected]'
msg = 'From: [email protected]\r\nTo: [email protected]\r\n\r\nHello, this is a test message'
my_smtp.sendmail(from_addr, to_addr, msg)
ウェブをクロール
Webサーバーと通信するには、あなたが使用する必要がある urllib.request
サブモジュールを。
import urllib.request
my_web = urllib.request.urlopen('https://www.google.com')
print(my_web.read())
Webフォームの提出
あなたはWebフォームを提出する場合は、WebページへのPOSTリクエストを送信する必要があります。
import urllib.request
my_data = b'Your Data Goes Here'
my_req = urllib.request.Request('http://localhost', data=my_data,method='POST')
my_frm = urllib.request.urlopen(my_req)
print(my_frm.status)
また、この機能を実装するための多くの方法がある、またはurllib2のモジュールを機械化することができます。
ミニサーバーを作成します。
socket
クラスは、接続要求をリッスンサポートしています。
import socket
host = ''
port = 3535
my_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
my_server.bind((host, port))
my_server.listen(1)
今、あなたは、接続要求を受け入れることができます。
addr = my_server.accept()
print('Connected ... ', addr)
data = conn.recv(1024)
操作が完了した後に接続を閉じることを忘れないでください。
conn.close()
Pythonのスレッドで
並行して実行中のタスクは、Pythonが指名した、非常に便利です threading
含むモジュール、 Thread
クラスを。
import threading
def print_message():
print('The message got printed from a different thread')
my_thread = threading.Thread(target=print_message)
my_thread.start()
関数が完了するまでに長い時間がかかる場合は、使用することができ is_alive()
、それはまだ実行されているかどうかを確認する方法を。
時には、あなたは安全なグローバルリソースのスレッドにアクセスする必要があります。今回は、ロックを使用する必要があります。
import threading
num = 1
my_lock = threading.Lock()
def my_func():
global num, my_lock
my_lock.acquire()
sum = num + 1
print(sum)
my_lock.release()
my_thread = threading.Thread(target=my_func)
my_thread.start()
ラズベリーパイを使用してください
ラズベリーPiは価格の安いシングルボードコンピュータである、あなたはそれで興味深いさまざまなアプリケーションを開発することができます使用してください。
Pythonででき RPi.GPIO 外部センサモジュールとそのラズベリーパイ通信。
まず、次のように、あなたのラズベリーパイのパッケージをインストールします。
$ sudo apt-get install python-dev python-rpi.gpio
そして、あなたはPythonスクリプトでそれを使用することができるようになります。出力は、ラズベリーパイGPIOバスに書き込むことができます。
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(1, GPIO.OUT, initial=GPIO.LOW)
GPIO.output(1, GPIO.HIGH)
ラズベリーパイGPIOは、内のデータを読み込みます
あなたは使用することができ RPi.GPIO
、次のように、GPIOからデータを読み出すためのインタフェースモジュールを:
import RPi.GPIO
RPi.GPIO.setup(1, GPIO.IN)
if RPi.GPIO.input(1):
print('Input was HIGH')
else:
print('Input was LOW')
これらは、基本のほんの一部です、Pythonのニーズを行くには長い道のりがまだあります。
実際には、我々は、Pythonのごく一部を紹介している、導入する必要がある多くのものがあります。あなたは、この魅力的なPython言語を学ぶのを助けるために多くの記事は、私に注意を払ってくださいがあります。