Pythonノートの復習


  • 単純なデータ型および変数命名仕様は、他のものと同様であり、異なるリストから
  • を開始する.
    リスト#リスト#
    english = [‘c’,‘b’,‘a’]
  • リストの追加削除
  • アクセス:english[0]
  • 修正english[0]=‘d’
  • englishを追加します.Insert(0,‘e’)を指定位置に挿入
  • english.append(‘f’)追加
  • englishを削除します.Pop()ポップアップ
  • english.Pop(0)最初の要素
  • をポップアップ
  • english.remove(‘a’)指定要素を削除し、最初の
  • を削除する
  • del english(0)指定位置
  • を削除

  • 組織リスト
  • sort()永続ソートデフォルトはアルファベット順
  • sort(reverse=True)字幕逆順
  • sort()はオブジェクトアドレスを直接ソートし、ソート後は永続的な
  • である.
  • sorted()とsort()はほぼ一致するが、一時的なソートはアドレス内のオブジェクトに影響を及ぼさない.
  • sorted([1,3,2])
  • [1,3,2].sort()

  • reverse()逆シーケンスデータリスト
  • len(english)出力リスト長
  • 操作リスト
  • forサイクル
  • english = [‘a’,‘b’,‘c’,‘d’]
  •  for e in english:
     	print(e)
    

  • range()数値ループ、前含む後含まない
    	for value in range(1,5):
    		print(value)
    
  • はrange()で数値リストを作成します:list(range(1,12,2))、1-11からステップ2でlist
  • を作成します.
  • 数値リストの統計,min(),max(),sum()
  • 奇抜な書き方:squares=[value**2 for value in range(1,11)]
  • forループはvalueに値を提供し、その後value**2は平方を計算し、listに
  • を格納する.

  • リストスライス
  • english = ['a','b','c','d']
    print(english[0:3]) #  0,1,2       
         english[:3] #    0       
         english[2:] #    2   
          english[:] #      ,    list            
    

    メタグループ
  • は、カッコを使用してtuple=(‘a’,‘c’,‘d’,[‘1’,‘2’,‘3’))を定義し、tupleとlistは非常に似ているが、tupleはlistよりも可変性が多く、その要素は変更できない.要素が指すアドレスは変更できないが、アドレスの内容は可変である.例えばtuple[0]=‘e’,だめtuple[3][0]='4である.tuple[3][0]はリストを指すため、リストの数値は変化するが、リストのアドレスは可変ではない
  • if
    -Pythonでは、False、0,’,[],{},()を偽とみなすことができます.
  • とjavaでは異なり、pythonの文字列は==
  • と直接比較できます.
    if 1 == 1 :
    	print(' ')
    else :
    	print(' ')
    
  • elif
  • を使用
    age = 12
    if age < 4:
    	print('your admission cost is 0')
    if age < 18:
    	print('your admission cost is 5')
    
  • 使用&&and代替、|or代替
  • は、not inおよびinを使用して、要素がリスト内にあるかどうかを判断することができる
  • .
    辞書
  • dict={‘name’:‘json’,‘length’:30}はmapによく似ており,dict[‘name’]を用いて
  • にアクセスする.
  • 辞書変数を定義してから値
  • を追加することもできます.
    dict = {}
    dict['name']='json'
    dict['length']=30;
    
  • の修正もkeyに直接従ってdict[‘name’]=‘xml’
  • を修正する.
  • 辞書のキー値対del dict[‘length’]
  • を削除
  • 辞書を巡り、辞書のkeyはhashで格納されているので無秩序な
  • である.
    dict = {'name':'json','length':30,'age':'12'}
    for key,value in dict.items():
    	print('key:'+key+'value'+value)
    
  • dict.keys()辞書のすべてのkeyを取得し、dict.values()はすべての値
  • を取得します.
  • set()を使用して重量を除去し、set(dict.values)
  • 辞書で重複するkeyを使用すると、最後のkeyは
  • を上書きする.
    Input()とwhile()サイクル
    input()関数
  • name=input(‘あなたの名前を入力してください’)#ユーザーの入力は最もnameの値
  • になります
  • inputは文字列
  • を受け入れている.
    while
    index = 1
    while index <= 10:
    	print(index)
    	index++
    
  • break終了サイクル
  • continue今回のサイクル
  • をスキップ
    while 'a' in english:
    	english.remove('a')
    

    小結:pythonではwhileとjavaの差は多くありませんが、文法フォーマットの変更だけです.
    関数#カンスウ#
    ##     , def  ,         
    def greet_user(username):
    	print("Hello, "+ username.title() + "!")
    
    greet_user('Yunpeng.Gu')
    

    場所:
    def describe_pet(animal_type,pet_name):
    	···
    

    位置パラメータを使用する場合は、順番に
    キーワード:
    def describe_pet(animal_type,pet_name):
    	···
    

    describe_pet(pet_name=‘harry’,animal_type=‘hamster’)実パラメータを渡すときにパラメータ名で渡す
    デフォルト:
    def describe_pet(pet_name,animal_type="dog"):
    	···
    

    describe_pet(pet_name=‘harry’)またはdescribe_pet(‘harry’)
  • デフォルトパラメータを使用する場合、デフォルト値のあるパラメータは、後の
  • に書く必要があります.
    戻り値
    returnを使用して返すと、事前に宣言することなく様々なタイプを返すことができます.
    def get_formatted_name(first_name,last_name):
    	##      
    	full_name = first_name + " " + last_name
    	return full_name.title()
    	##     
    	full_name = {'first_name':first_name,'last_name':last_name}
    	return full_name
    
    	····
    
  • 関数によるオブジェクト指向コンテンツの変更は、永続的な
  • である.
  • 関数の変数に対する修正は一時的な
  • である.
    可変パラメータ
    def function_name(*value):
    	···
    * python        ,             
              ,                    
    

    可変キーワードパラメータ:接頭辞として**を使用
    def build_profile(first,last,**user_info):
    	···
    	profile={}
    	for key,value in user_info.items():
    		profile[key]=value
    
    build_profile('gu','yunpeng',location='beijing',age=21,sex='man')
    

    モジュール
    pyファイルはモジュールインポートモジュールですPythonインタプリタはモジュールファイルを開いてインポートしたコードをコピーします
  • モジュール全体
  • に導入する.
    import module_name
    ##   ,            
    import module_name mn
    
  • 特定関数
  • をインポートする.
    from module_name import function_name 
    ##   ,            
    from module_name import function_name as fn
    ##             
    from module_name import function_name1 as fn1,function_name2 as fn2
    
  • インポートモジュールのすべての関数
  • from module_name import *
    ##   Python                     
    

    クラス#クラス#
    def __init__(self,name,age):
    	self.name = name
    	self.age = age
    

    Init()メソッド、構築メソッド、selfを宣言する必要があり、他のパラメータの前にクラスのインスタンスを作成するときに実行する必要があります.
  • クラスに関連するメソッドごとにselfが自動的に渡されます.これはインスタンスへの参照です.javaのthis
  • です.
  • クラスのメソッドを使用する場合self実パラメータ
  • を手動で渡す必要はありません.
  • クラスのメソッドはselfが1つある以外は他のメソッドと何の違いもありません
  • 継承:
  • 親クラスと子クラスは、from super_などのimportを使用して導入できるファイルにある必要があります.class import SuperClass
  • 親クラスは、子クラスの前に
  • と宣言する必要があります.
    class ClassName(SuperClass):
    	def __init__(self,name,age,sex):
    		##            self
    		super().__init__(name,age,sex)
    
  • 書き換えjavaと同じ
  • ファイルと例外
    with open('pi.txt') as file_object:
    	contents = file_object.read()
    	print(contents.rstrip())
    
  • open()ファイルを使用するにはopenを使用してファイルを開き、ファイルオブジェクトを返し、asを使用してこのファイルオブジェクトの名前をfile_object
  • ファイルを使用した後、ファイルを閉じる必要があります.そうしないと、予期せぬエラーが発生します.
  • with pythonはファイルが使用済みかどうかを自動的に判断し、
  • を自動的に閉じます.
  • read()は、ファイルを
  • に読み込みます.
  • rstrip()削除文字列末尾の空白文字列
  • 行単位の読み取り
    with open('pi.txt') as file_object:
    	for line in file_object:
    		print(line)
    
  • strip()削除文字列の空白文字列
  • 文字列はstr_を使用できる文字リストです.value[:55]は、上位55ビット
  • を取得するために使用される.
  • content in str_を使用することもできますvalueはstr_を判断するvalueにcontent
  • が含まれているかどうか
    ファイルを書く
    with open(path_prefix+"file_write.txt",'w') as file_writer:
        name = input("Please Enter Your Name: ")
        file_writer.write(name)
    
  • open()の「w」は書き込みモードを表し、デフォルトは「r」
  • ′r′読み出しモード
  • 'w'書き込みモード
  • 'a’付加モード
  • 'r+'読み書きモード
  • 'rb'バイナリリード、'wb'バイナリライト
  • 書き込むファイルが存在しない場合はPythonが作成し、存在する場合はファイルオブジェクトを作成する前に
  • が空になります.
  • write()は、ファイルオブジェクトの
  • にコンテンツを書き込む.
  • Pythonは文字列のみをファイルに書き込むことができ、数値を格納するにはstr()関数を使用して文字列フォーマット
  • に変換する必要があります.
  • 書き込みたいときに改行する場合は文字列の最後に改行を加える
  • .
    異常
    try:
    	answer = int(first_number) / int(second_number)
    except ZeroDivisionError:
    	print("You can't divide by 0!")
    else:
    	print(answer)
    
  • 異常がなければelseを実行するコードブロック
  • pass何もしない
  • JSON
  • json.dump(データ、ファイルオブジェクト)
  • import json
    numbers = [1,3,5,1,2]
    with open(filename,'w') as file_obj:
    	json.dump(numbers,f_obj)
    	    json      
    
  • json.load(ファイルオブジェクト)
  • with open(filename,'r') as f_obj:
    	json.load(f_obj)
    	    json      
    

    python小結:pythonの場合はやはり後で数や爬虫類を作る機会があるのではないでしょうか.pythonのサードパーティライブラリにはそれほど慣れていないので、効率が悪いかもしれません
    csv
    1.書き込みファイル1.1通常書き込み
    	 with open('../config/data.csv', 'w') as csvfile:
         	writer = csv.writer(csvfile)
          	writer.writerow(['id', 'name', 'age']) #   
    		writer.writerow(['1001', '  ', '22']) #   
    

    1.2区切り記号の指定
    	with open('../config/data.csv', 'w') as csvfile:
    		writer = csv.writer(csvfile,delimiter = '#')
    		writer.writerow(['id', 'name', 'age']) #   
    		writer.writerow(['1001', '  ', '22']) #   
    

    1.3複数行同時書き込み
        with open('../config/data.csv', 'w') as csvfile:
            writer = csv.writer(csvfile,delimiter = '#')
            writer.writerows([['id', 'name', 'age'],['1001', '  ', '22'],['1001', '  ', '23'],['1001', '  ', '21']])
    

    1.4辞書の内容を書き込む
        with open('data.csv','w') as csvfile:
            fieldnames = ['id','name','age'] #    
            writer = csv.DictWriter(csvfile,fieldnames=fieldnames) #    
            writer.writeheader() #        
            writer.writerow({'id':'1001','name':'mike','age':'11'}) #    
    

    2ファイル2.1 pandasライブラリによる解析csv df = pd.read_csv('../config/data.csv',encoding='gbk') print(df)mysqlに格納
  • PyMySQL
  • をインストール
  • テスト接続
    	import pymysql
    	#    mysql
    	db = pymysql.connect(host='localhost',user='root',password='root',port=3306)
    	#     
    	cursor = db.cursor()
    	#   sql  
    	cursor.execute('select 1 from dual')
    	#        
    	db.close()
    
  • 挿入、更新、削除はすべてデータベースを変更する操作であり、更新操作はトランザクションとして使用する必要があります.
  • トランザクション
  • try:
    	cursor.execute(sql)
    	db.commit()
    except:
    	db.rollback()
    

    MongoDBに格納
  • PyMongo
  • を取り付ける
  • MongoDB接続
  • 接続クライアント
  • を取得する.
    import pymongo
    client = pymongo.MongoClient(host='localhost',port=27017)
    #   client = MongoClient('mongodb://localhost:27017/')
    
  • 指定データベースはtestライブラリ
  • db = client.test
    #   db = client['test']
    
  • 指定セットはstudents
  • です.
    collection = db.students
    collection = db['students']
    
  • MongoDBは、構造の辞書タイプを直接利用して
  • を挿入することができる.
    student = {
    	'id':'1001',
    	'name':'  '
    }
    result = collection.inset(student)
    
  • より多くのPyMongoのAPI