学習10:Pythonの重要な知識
8504 ワード
Pythonは知識を無視しやすい
(1)printのデフォルト出力は改行されています.改行しない場合は、変数の末尾にend=""""":
(2)isinstanceとtypeの違いは,type()が子クラスを親クラスタイプとは思わないことである.isinstance()は、子クラスが親クラスタイプであると考えられます.親:動物;子類:猫.isinstance()は猫を動物、type()は猫を動物ではないと考えています.
(3)数値の除算には2つの演算子があります:/浮動小数点数を返し、//整数を返します.
(4)Pythonでは単文字タイプはサポートされておらず、単文字はPythonでも文字列として使用されている.
(5)反復器とジェネレータ.反復はPythonの最も強力な機能の一つであり、集合要素にアクセスする方法である.反復オブジェクトは、すべての要素がアクセスされるまで、コレクションの最初の要素からアクセスを開始します.反復器は前に進むしか後退しない.反復器には2つの基本的な方法がある:iter()とnext().1つのクラスを反復器として使用するには、クラスで2つのメソッドiter()とnext()を実現する必要があります. Pythonではyieldを用いた関数をジェネレータ(generator)と呼ぶ.ジェネレータは反復操作にのみ使用できる反復器を返す関数であり、ジェネレータが反復器であることをより簡単に理解します.yieldに遭遇するたびに関数は一時停止し、現在のすべての実行情報を保存し、yieldの値を返し、次のnext()メソッドの実行時に現在の位置から実行を続行します.yieldを使用してフィボナッチ数列を実現:
(6)リストのスタックとキュー
(7)出力値を文字列に変換し、repr()またはstr()関数を用いて実現することができる. str():関数は、ユーザーが読みやすい表現を返します. repr():解釈器の読みやすい表現を生成します.
(8)クラスはinit()メソッドを定義し,クラスのインスタンス化操作はinit()メソッドを自動的に呼び出す.クラスのメソッドは、通常の関数とは特別な違いがあります.通常、selfという名前の追加の最初のパラメータ名が必要です.一般的な関数定義とは異なり、クラスメソッドにはパラメータselfが含まれ、最初のパラメータである必要があります.selfはクラスのインスタンスを表します.selfの名前は死に決まっているわけではありませんが、thisを使ってもいいですが、約束通りselfを使ったほうがいいです.
(9)**__private_attrs:2つの下線の先頭に、この属性がプライベートであることを宣言し、クラスの外部で使用または直接アクセスできません.クラス内のメソッドで使用する場合self._private_attrs**.
(10)urlsから受信データを処理するurllib.requestおよびEメール送信用smtplib:
(11)doctestはモジュールをスキャンし、プログラムに組み込まれたドキュメント文字列に基づいてテストを実行する.ユーザーが提供した例では、doctestモジュールがコードの結果がドキュメントと一致するかどうかを確認できるようにドキュメントを強化します.
(12)Python例まとめhttps://www.runoob.com/python3/python3-examples.html
(13)Pythonは検索とソートを実現する:https://www.runoob.com/python3/python3-examples.html
(14)re.matchは文字列の開始位置からモードをマッチングしようとし、開始位置マッチングが成功しなければmatch()はnoneを返します.flagsで大文字と小文字を区別するかどうか.
(15)re.matchとre.searchの違い.re.matchは文字列の開始のみを一致させ、文字列の開始が正規表現に合致しない場合、一致に失敗し、関数はNoneを返す.そしてre.searchは、一致が見つかるまで文字列全体に一致します.
(16)Python接続MySQL
(17)フォーマット日:
(18)Python操作MongoDBサービス を開始 MongoDB
(19)WSDIアプリケーションと一般的なWebフレームワーク Django の導入 Flask の導入
ファイルを作成するpy、コードは次のとおりです.
次のコマンドを実行します.
転載先:https://www.cnblogs.com/baiboy/p/11014657.html
(1)printのデフォルト出力は改行されています.改行しない場合は、変数の末尾にend=""""":
(2)isinstanceとtypeの違いは,type()が子クラスを親クラスタイプとは思わないことである.isinstance()は、子クラスが親クラスタイプであると考えられます.親:動物;子類:猫.isinstance()は猫を動物、type()は猫を動物ではないと考えています.
(3)数値の除算には2つの演算子があります:/浮動小数点数を返し、//整数を返します.
(4)Pythonでは単文字タイプはサポートされておらず、単文字はPythonでも文字列として使用されている.
(5)反復器とジェネレータ.
class MyNumbers:
def __iter__(self):
self.a = 1
return self
def __next__(self):
x = self.a
self.a += 1
return x
myclass = MyNumbers()
myiter = iter(myclass)
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
#!/usr/bin/python3
import sys
def fibonacci(n): # -
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(10) # f ,
while True:
try:
print (next(f), end=" ")
except StopIteration:
sys.exit()
(6)リストのスタックとキュー
(7)出力値を文字列に変換し、repr()またはstr()関数を用いて実現することができる.
(8)クラスはinit()メソッドを定義し,クラスのインスタンス化操作はinit()メソッドを自動的に呼び出す.クラスのメソッドは、通常の関数とは特別な違いがあります.通常、selfという名前の追加の最初のパラメータ名が必要です.一般的な関数定義とは異なり、クラスメソッドにはパラメータselfが含まれ、最初のパラメータである必要があります.selfはクラスのインスタンスを表します.selfの名前は死に決まっているわけではありませんが、thisを使ってもいいですが、約束通りselfを使ったほうがいいです.
(9)**__private_attrs:2つの下線の先頭に、この属性がプライベートであることを宣言し、クラスの外部で使用または直接アクセスできません.クラス内のメソッドで使用する場合self._private_attrs**.
(10)urlsから受信データを処理するurllib.requestおよびEメール送信用smtplib:
>>> from urllib.request import urlopen
>>> for line in urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl'):
... if 'EST' in line or 'EDT' in line.decode('utf-8'):
... print(line)
>>> import smtplib
>>> server = smtplib.SMTP('localhost')
>>> server.sendmail('[email protected]', '[email protected]',
... """To: [email protected]
... From: [email protected]
...
... Beware the Ides of March.
... """)
>>> server.quit()
(11)doctestはモジュールをスキャンし、プログラムに組み込まれたドキュメント文字列に基づいてテストを実行する.ユーザーが提供した例では、doctestモジュールがコードの結果がドキュメントと一致するかどうかを確認できるようにドキュメントを強化します.
def average(values):
return sum(values) / len(values)
import doctest
print(doctest.testmod()) #
(12)Python例まとめhttps://www.runoob.com/python3/python3-examples.html
(13)Pythonは検索とソートを実現する:https://www.runoob.com/python3/python3-examples.html
(14)re.matchは文字列の開始位置からモードをマッチングしようとし、開始位置マッチングが成功しなければmatch()はnoneを返します.flagsで大文字と小文字を区別するかどうか.
re.match(pattern, string, flags=0)
(15)re.matchとre.searchの違い.re.matchは文字列の開始のみを一致させ、文字列の開始が正規表現に合致しない場合、一致に失敗し、関数はNoneを返す.そしてre.searchは、一致が見つかるまで文字列全体に一致します.
(16)Python接続MySQL
import MySQLdb
#
mydb = MySQLdb.Connect(
host='localhost',
user='root',
passwd='root',
database='all_news'
)
mycursor = mydb.cursor()
mycursor.execute("SHOW DATABASES")
for x in mycursor:
print(x)
print("*"*20)
#
# mycursor.execute("CREATE TABLE sites (name VARCHAR(255), url VARCHAR(255))")
mycursor.execute("SHOW TABLES")
for x in mycursor:
print(x)
#
# mycursor.execute("ALTER TABLE sites ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")
#
# sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"
# val = ("RUNOOB", "https://www.runoob.com")
# mycursor.execute(sql, val)
# mydb.commit() # ,
# print(mycursor.rowcount, " 。")
#
# sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"
# val = [
# ('Google', 'https://www.google.com'),
# ('Github', 'https://www.github.com'),
# ('Taobao', 'https://www.taobao.com'),
# ('stackoverflow', 'https://www.stackoverflow.com/')
# ]
# mycursor.executemany(sql, val)
# mydb.commit() # ,
# print(mycursor.rowcount, " 。")
#
print("="*20)
mycursor.execute("SELECT * FROM sites")
myresult = mycursor.fetchall() # fetchall()
# myresult = mycursor.fetchone() #
for x in myresult:
print(x)
#
# sql = "DELETE FROM sites WHERE name = 'stackoverflow'"
# mycursor.execute(sql)
# mydb.commit()
# print(mycursor.rowcount, " ")
#
sql = "UPDATE sites SET name = 'ZH' WHERE id = 4"
mycursor.execute(sql)
mydb.commit()
print(mycursor.rowcount, " ")
#
# SQL
sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
try:
# SQL
cursor.execute(sql)
#
db.commit()
except:
#
db.rollback()
(17)フォーマット日:
#!/usr/bin/python3
import time
# 2016-03-20 11:45:39
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# Sat Mar 28 22:24:24 2016
print (time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
(18)Python操作MongoDB
D:\mongodb\bin>mongod --dbpath D:\mongodb\data\db --logpath=D:\mongodb\log\mongo.log --logappend
# Python MongoDB
print("*"*50)
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["runoobdb"]
dblist = myclient.list_database_names()
if "runoobdb" in dblist:
print(" !")
#
mycol = mydb["sites"]
collist = mydb.list_collection_names()
if "sites" in collist: # sites
print(" !")
#
mydict = [
{ "_id": 1, "name": "RUNOOB", "cn_name": " "},
{ "_id": 2, "name": "Google", "address": "Google "},
{ "_id": 3, "name": "Facebook", "address": " "},
{ "_id": 4, "name": "Taobao", "address": " "},
{ "_id": 5, "name": "Zhihu", "address": " "}
]
# x = mycol.insert_one(mydict)
# x = mycol.insert_many(mydict)
# print(x.inserted_ids)
#
myquery = { "alexa": "10000" }
newvalues = { "$set": { "alexa": "12345" } }
mycol.update_one(myquery, newvalues)
# "sites"
# for x in mycol.find():
# print(x)
# , find() , 1。
# for x in mycol.find():
# print(x)
# for x in mycol.find({},{"_id":0}):
# print(x)
# myquery = { "name": "RUNOOB" }
# for x in mycol.find(myquery):
# print(x)
# myresult = mycol.find().limit(3)
#
# for x in myresult:
# print(x)
#
# myquery = { "name": " " }
# myquery = { "name": {"$regex": "^F"} }
# mycol.delete_one(myquery)
# mycol.delete_many(myquery)
#
for x in mycol.find():
print(x)
# , sort("alexa"), sort("alexa", -1)
# mydoc = mycol.find().sort("alexa")
# for x in mydoc:
# print(x)
(19)WSDIアプリケーションと一般的なWebフレームワーク
[uwsgi]
socket = 127.0.0.1:3031
chdir = /home/foobar/myproject/
wsgi-file = myproject/wsgi.py
processes = 4
threads = 2
stats = 127.0.0.1:9191
uwsgi yourfile.ini
ファイルを作成するpy、コードは次のとおりです.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "I am app 1"
次のコマンドを実行します.
uwsgi --socket 127.0.0.1:3031 --wsgi-file myflaskapp.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191
転載先:https://www.cnblogs.com/baiboy/p/11014657.html