pythonを勉強した翌日

6942 ワード

主な内容
今日は主にワードクラウドの作成方法、ドキュメントに最も多く登場する人物名の抽出方法を学びます.
pythonファイルの読み取り方法
次に、具体的な例を示します.
#         open
#file='     '        ,
#.        /          
#mode='r'      
f = open(file='./threekingdom.txt',mode='r',encoding='UTF-8')
words = f.read()
print(words)
#    
#   
f.close()
print(len(words))
#        

importの使用
#from      import name1,name2...
from random import  randint
#   
import random
random randint
# import turtle
# from turtle import done

語群の描画方法
まず、サードパーティ製ライブラリファイルのインストールを習得するには、terminalの下で直接インストールするか、Webサイトにアクセスします.https://www.lfd.uci.edu/~gohlke/pythonlibs/wordcloudファイルを選択してローカルにダウンロードしてインストール
ここで注意しなければならないのは、pythonでは大文字と小文字が敏感で、英語の大文字と小文字が異なる役割を果たしています.次に、語群描画の具体的な例を示します.
#    
from wordcloud import WordCloud
#        
#      
txt = 'I like python , python is the best project language in the world'
wc = WordCloud().generate(txt)# 
wc.to_file('python.png')

三国小説の詞雲の描画
import jieba
from wordcloud import WordCloud
import imageio
#1.    
#  with               
mask = imageio.imread('china.jpg')
with open('threekingdom.txt','r',encoding='UTF-8') as f:
    #             
    words = f.read()
    # print(words)
#2.          
words_list = jieba.lcut(words)
print(words_list)
#              
words_text = ' '.join(words_list)
print(words_text)
#3.  wordcloud    
WordCloud(
    background_color = 'white',
    width = 800,
    height = 600,
    font_path = 'MSYH.TTC',
    mask = mask
).generate(words_text).to_file('    .png')

pythonのソート
li = []
for i in range(10):
    li.append(i)
print(li)
from random import shuffle
shuffle(li)
#     
print("     ",li)
li.sort(reverse=True)
print("     ",li)
  • ディクショナリソート
  • stu_info = [
        {'name':'zhangsan', 'age':33},
        {'name':'lisi', 'age':8},
        {'name':'wangwu', 'age':66},
        {'name':'tianqi', 'age':17},
    ]
    
    print(stu_info)
    # def    ():
    #        
    def sort_by_age(dict_info):
        return dict_info['age']
    #
    #           
    # key                       
    #
    stu_info.sort(key=sort_by_age,reverse=True)
    print('   ', stu_info)
    
  • 名前の逆順に並ぶ
  • stu_info = [
        {'name':'zhangsan', 'age':33},
        {'name':'lisi', 'age':8},
        {'name':'wangwu', 'age':66},
        {'name':'tianqi', 'age':17},
    ]
    
    print(stu_info)
    def sort_by_name(dict_info):
        return dict_info['name']
    
    
    stu_info.sort(key=sort_by_name,reverse=True)
    print('       ', stu_info)
    

    python変数の交換と宣言
    具体例:
    #      
    a = 100
    b = 10
    a,b = b,a
    print('a=',a)
    print('b=',b)
     #        
    c,d,e =  100,[90,33],'hehe'
    print(c)
    print(d)
    print()
    

    三国の登場する前の10人の人物の名前の詞雲は描きます
    #1.    
    import  jieba
    from wordcloud import WordCloud
    
    with open('threekingdom.txt','r',encoding='UTF-8') as f:
        words = f.read()
        print(words)
        word_list = jieba.lcut(words)
        excluss = {'  ','  ','  ','  ','   ','  ','   ','  '}
        #print(len(word_list))
        #      {'   ':788,'  ':55}
        counts = {}
        for word in word_list:
            if len(word) ==1:
                continue
            else:
                #        
                # counts[word] =           + 1
                # counts[word] = count[word] + 1
                counts[word] = counts.get(word,0) + 1
        # print(counts)
        counts['  '] = counts['   '] + counts['  ']
        counts['  '] = counts['   '] + counts['  '] + counts['  ']
        counts['  '] = counts['  '] + counts['  ']
        #            
        for word in excluss:
            del counts[word]
        # counts     
        items = list(counts.items())
        print(items)
    
        def sort_by_count(x):
            return x [1]
        items.sort(key=sort_by_count,reverse=True)
        # print(items)
        #     20   
        role_list = []
        for i in range(10):
            #       
            role_name,count = items[i]
            print(role_name,count)
            #       ,              
            for _ in range(count):
                role_list.append(role_name)
        print(role_list)
        text = ' '.join(role_list)
        WordCloud(
            background_color='white',
            width=800,
            height=600,
            font_path='MSYH.TTC',
            collocations=False
        ).generate(text).to_file('    .png')
    

    passのステーション
    def    ():
        print('haha')
        pass #           
    

    1~num間の累積和
    def caculate_num(num):
        result = 0
        for i in range(num+1):
            result += i
        return result
    sum_num = caculate_num(100)
    print(sum_num)
    

    関数とメソッド
    関数とメソッド:関数はプロシージャ向けメソッドがオブジェクト向けであることを区別しません
    匿名関数
    フォーマット:lambdaパラメータ1、パラメータ2、......:式の欠点は、特定のインスタンスを繰り返し呼び出すことができないことです.
    #      
    pf = lambda n:n*n
    add =lambda x,y:x+y
    print(pf(7))
    print(add(3,4))
    

    sorted和.sortの違い
  • .sort()はリスト特有の方法であり、sorted()は反復可能な任意のオブジェクト
  • に適用される.
  • .sort()は元のリストで修正され、sorted()は新しいリスト
  • を返す.
  • 呼び出し形式が異なる
  • リスト導出式
    #    [0,1,2,···,9]
    li = []
    for i in range(20):
       li.append(i)
    print(li)
    
  • すべての偶数
  • をスクリーニングする
    new_li = []
    for i in li:
        if i %2 ==0:
            new_li.append(i)
    print(new_li)
    #  
    li3 = [i for i in range(20) if i%2==0]
    print(li3)
    
  • 正負ランダムリスト
  • を生成する.
    from random import randint
    li5 = []
    for _ in range(10):
        li5.append(randint(-20,20))
    print(li5)
    
  • リスト導出式を用いてLi 5
  • を生成する.
    li5 = [randint(-20,20) for _ in range(10)]
    print(li5)
    
  • ゼロより大きいすべての数をフィルタする
  • res_list = [x for x in li5 if x > 0]
    print(res_list)
    
  • 構文[式for一時変数in反復可能オブジェクトフィルタ条件]
  • li2 = [i for i in range(10)]
    print(li2)
    

    スライスpythonの特色
    具体的なケースは以下の通りです.
    name = 'abcdefg'
    print(name[0:3])#       abc
    #  a c e g
    print(name[0:8:2])#          
    print(name[::2])
    #name      gfedcba
    print(name[::-1])
    #   f d b
    print(name[-2::-2])
    

    文字列出力
    i = 3
    grade = '  '
    print('        {} ,       {}  '.format(i))
    

    分析したデータの可視化
    from matplotlib import pyplot as plt
    #     
    import string
    print(string.ascii_uppercase)
    x = ['  {}'.format(i) for i in string.ascii_uppercase[:5]]
    print(x)
    from random import randint
    y = [randint(200,300) for _ in range(5)]
    print(y)
    plt.bar(x,y)
    plt.show()