見出し画像

Python 学習:Day 26(涙の完結編)

2024年3月末までの目標🌕!

- Udemyの100 Days of Codeを完了
- おまけに欲張ってCISSP資格を取得し、Cyber Security分野に転向


私の使ってる学習素材です📚。アンジェラねーさんには足向けて寝れませんッ。

今日のPlaylist

Day26:
⌨️ List comprehension
Input numbers を整数にConvert して偶数だけを抽出したい。if Statement を使って偶数ナンバーを見つけるのかぁ。なるほど。

list_of_strings = input( ).split(',') 
numbers = [int(x) for x in list_of_strings]
result = [num for numb in numbers if num%2==0]
print(result)
-----------------------------------------------
#input;  9, 0, 32
#output; 32

⌨️今度は2つのファイルを比べて、共通する数字を抽出するチャレンジ。
まずファイルをアップロード。

with open ("file1.txt") as file1:
   list1 = file1.readlines( )
with open ("file2.txt.") as file2:
   list  = file2.readlines( )

list1の中の数字がlist2にあるかどうかの条件でresult list を作成する。
if num in list2

result = [int(num) for num in list1 if num in list2]
print (result)

In the previous US State Game, the command lines will be reduced by using list comprehension.

#instead of writing as:

missing_states = [ ]
  for sate in all_states:
    if state not in guessed_states:
       missing_states.append(state)

#the below is a simpler command😊😊 なるほどな!

missing_satates = [state for state in all_states if state not in 
                                                 guessed_states]

🐰dictionary comprehension:
 new_dict = { new_key: new_value for item in list }
new_dictの中のKey, Valueを使ってDictionaryを書き直と、
 new_dict = { new_key; new_value for (key, value) in dict.items( ) }
これを使って生徒リストを作り、ランダムに点数をつける(すごい先生だ😨)。

names = ['Alex', 'Beth', 'Carl', 'Dave']
import random
students_scores = {student:random.randint(1,100) for student in names}

#55点以上だった合格者のリストを作るには(えらい低い点数やのぉ)

passed_student = {student: score for ( student, score) in students_scores.items()
                                    if score >=53}


うわー、疲れすぎて終わらない!
仕事のプロジェクトのGo-liveが近いところに、ビジネスチームから、
要件のPriority、変更してほしい」
(ええーっ!なんだってぇ〜ッ🤬)
という要望が来て、会議で仏の全身コスチュームを着ながら話を聞いたつもりだったけど、血圧に良くないと思ったわっ。

なのでそんなストレスとバタバタのcloud migrationのgo-liveを抱えて過ごしているので、夜にしかできないPython学習📚は、どんどん遅れをとっているぅ。🥺(早朝はCISSPヨガ🧘20分!)

ま、いくら言い訳を並べても結果は同じ。Day26から早く脱出しないとDay27のドア🚪は見えない👓。


😶‍🌫️😶‍🌫️😶‍🌫️😶‍🌫️

気を取り直して残りの箇所をやってみた

Dictionary Comprehension(続き)
うわ、なぜかLectureがAuditoriumに移っている⁈(音声が急に小さいし。おばちゃんはびっくりしたよ。) 
ま、でも内容はいつも通りなのでいいか。
入力した文章を単語にばらして、単語のLetter数を数えるコードをDictionary Comprehensionで書きましょう、という練習。

sentence = input()

result = {word:len(word) for word in sentence.split()}

print(result)
  1. sentenceに文章を入れて…setence.splitで単語にバラす。🧛

  2. その中のWordに対して  ( for word)

  3. Letter数を数えて、len(word)⌨️

  4. wordと lette数を書く。 word:len(word)🖊️

次はDictionary Comprehensionを用いて摂氏温度を華氏温度に変換だ~!
これは奇跡的に自分で解決出来た!(やるやん、自分!)

weather_c = eval(input())
# 🚨 Don't change code above 👆


# # Write your code 👇 below:
# double_dict1 = {k:v*2 for (k,v) in dict1.items()}
weather_f = {day:temp_c*9/5+32 for (day, temp_c) in weather_c.items()}

print(weather_f)

#<input>はこれや。
{"Monday": 12, "Tuesday": 14, "Wednesday": 15, "Thursday": 14, 
"Friday": 21, "Saturday": 22, "Sunday": 24}

#<output>はこうなるねん。
{'Monday': 53.6, 'Tuesday': 57.2, 'Wednesday': 59.0, 'Thursday': 57.2, 
'Friday': 69.8, 'Saturday': 71.6, 'Sunday': 75.2}
  1. double_dict1 がweather_f(after converted).

  2. weather_c.items()-->This allows to call day and temp.

  3. then, " for (day, temp_c) will be the key and value.

  4. Lastly, create another dictionary of new temp after converted: 

  5.   day: tem_c*99/5+32    ( this is a conversion formula)

次の課題に進んでpandasでDataFrameを作ろうとしたらエラー発生!pip install, pyarrow errorって言われてもわからんっ!おばちゃんは泣きそうになったよ。Google様に聞いてみて、どうやらpandasにはpyarrowも必要だと気付き、インストール。エラーが消えた!😭❤️ God loves me! と思った瞬間だった。

import pandas

student_data_frame = pandas.DataFrame(student_dict)
print(student_data_frame)
...............<output>......................
  student  score
0  Angela     55
1    Yoko     58
2    Taro     49
3  George     50
4    Anna     60
5     Ted     70
#これはIndexを参照にして特定の列のデータを見つけ抽出する方法
#iterrows()メソッドを使うと、行名とその行のデータ(Series)のタプル(index, Series)を
1行ずつ取得できる。


for (index, row) in student_data_frame.iterrows():
    if row.student == "Angela":
        print( row.score)
.............<output>.........................
55

Lastly, learning to convert the word with phonetic_alphabets.
data.iterrows()で一行ずつデータを取得し、Phonetic_dictを作成する。
次に入力した単語をPhonetic表記に変換する。

out_list = [phonetic_dict[letter] for letter in word ]
wordは入力した単語
letterをそれぞれ
phonetic_dict[letter] に変換する
なので、
cならCharlie
AならAlfa…
って感じ。

import pandasa

data = pandas.read_csv("noto_phonetic_alphabet.csv")
phonetic_dict = {row.letter:row.code for (index, row) in data.iterrows()}
print(phonetic_dict)

........................<output>.......................
{'A': 'Alfa', 'B': 'Bravo', 'C': 'Charlie', 'D': 'Delta', 'E': 'Echo', 'F': 'Foxtrot', 
'G': 'Golf', 'H': 'Hotel', 'I': 'India', 'J': 'Juliet', 'K': 'Kilo', 'L': 'Lima', 
'M': 'Mike', 'N': 'November', 'O': 'Oscar', 'P': 'Papa', 'Q': 'Quebec', 'R': 'Romeo',
 'S': 'Sierra', 'T': 'Tango', 'U': 'Uniform', 'V': 'Victor', 'W': 'Whiskey', 
'X': 'X-ray', 'Y': 'Yankee', 'Z': 'Zulu'}



#そして単語を入力し、それをPhonetic表記に変換する。Caramel(キャラメル)
と入力するとこうなる。

word = input("Enter a word:  ").upper()
out_list = [phonetic_dict[letter] for letter in word ]
print(output_list)

.........................<output>..........................

Enter a word:  caramel
['Charlie', 'Alfa', 'Romeo', 'Alfa', 'Mike', 'Echo', 'Lima']

あー、やっと終了!なんでこんなにDay26に時間がかかったのかなぁ?!きっと北極並みの気候のせいか?単にやる気がでなかっただけ?Day27 からはエンジンかけないと、3月末までに絶対終わらんっ。
100-26=74日分も😶。毎日やったとしても、2月は29日しかないし、3月は31日。全然足りないー!3月末までには60日しかないぞ!残りの14日分は4月に突入だな。でも、ひょっとしたら どこかでスイスイ行けるlessonがあって、2,3日分まとめて出来るか⁈追いつけるかな。(←あり得ないだろ、自分を知れっ!)

なんとかなるさ!🥰🤗😘


この記事が気に入ったらサポートをしてみませんか?