0
0

More than 1 year has passed since last update.

事業企画1年目のpython学習3日目

Posted at

本記事について

とある事業会社で事業企画をやっています。
元々は、新規営業1年→エンプラ営業3年やっていました。
事業企画への異動に伴って、ルーチンワークの自動化やスクレイピングに興味を持ちpython学習をスタートしました。
目的達成までは記事を執筆予定です。どうぞよろしくお願いいたします。

開発環境

jupyterlab

使っている本

すっきりわかるpython入門
https://sukkiri.jp/books/sukkiri_python

勉強計画

週5日間ミニマム1h勉強する。
最初の1weekは1冊終わらせることをgoalに。
start@ 2022/2/21

学習時間

2.0h

学び

今日は条件分岐を学びました〜

条件分岐

順次、分岐、繰り返しがある。
今までの2日間の記事では順次はのみ利用。
この3つを使えば、ありとあらゆるプログラムが作成可能とのこと。
構造化定理。という。

1行=1つの文にしない場合は、セミコロン;でつなぐ。

name = 'kamon';print('my name is {}'.format(name))
#my name is kamon

if文

今からこの下のコードをifで条件分岐させていく。

name = input ('what is your name? <<')
print('{}hello'.format(name))
food = input('what is {} favorite food? <<').format(name)
print('I like {} too' .format(food))
#what is your name? << kamon
#kamonhello
#what is {} favorite food? << egg
#I like egg too

if food == 'curry':
    print('i love curry,you are nice!')
else:print('I like {} too'.format(food))
#I like egg too


ifの後は、:をつけるのを忘れない。

score = int(input('what is your score <<'))
if score >= 60:
    print('you are grest')
    print('go to next clss')
else:
    print('take a test again')
#what is your score << 64
#you are grest
#go to next clss

なお、elseになる場合しっかりとブロックをしないと行けない。しないと、常にインデントしないprintも出力されてしまう。
インデントだいじ。気をつけよう。
インデントは半角スペースの個数を揃えないと行けない。
2個か4個か8個が使われることが多いが、4個おすすめ。

score == 100 #scoreが100なら
name == 'kamon' #nameがkamonなら
password != '123456 ' #passewordが12345でないなら
tempreature <0 #tempreatureが0以下なら

指定した要素が含まれていたらifの返答をしたい場合はin演算を使う

if 'egg' in food:
    print('I like egg too ')
else:
    print('I like {} too'.format(food))

#I like egg too

ディクショナリの中でkeyが使用されているかを確認することができる。
キー in ディクショナリでキーの存在を調べられる。

key = input('add new object >>')
if key in scores:
    print('already registered')
else:
    data= int(input('add ur point >>'))
    scores[key] = data
print(scores)

#add new object >> python
#add ur point >> 80
#{'database': 60, 'network': 100, 'security': 50, 'python': 80}

真偽値

trueとfalseは、文字列ではない。
if文は条件式の結果がtrueなら、ifブロックをfalseならばelseブロックを実行する。

if score >= 60 #if true 60以上
if score <= 60 #if false60以下なら

score = int(input('what is your point >>'))
print(score >=60)
#what is your point >> 65
#True

論理演算子

and #かつ
or #または
not #出なければ

if score < 60 or score >100 : #60点未満、100点より大きかったら
if not 'egg' in food: #foodに'egg'が含まれていなければ

分岐構文のバリエーション

if-else (基本形)
ifのみの構文 elseをつけず、ifがtrueでない場合は何も出力しない。
if-elif構文 条件がelseだった際にさらに別の条件式で判別したい場合

#if-elseでifのみを表現するならelseの中をpassと表現すればOK
if score >= 60:
    print(score)
else:
    pass
#65

#if-elif
score = int(input('what is ur score >>'))
if score < 0 or > 100:
    print('error point')
    print('please input again')
elif score >= 60:
    print('you passed test')
else:
    print('you failed test')

if文のネスト

print('すべての質問にyまたはnで答えてください')
okane_aruka = input('お金に余裕あるか?? >>')
if okane_aruka =='y':
    onaka_suiteruka = input('お腹かなり空いている? >>')
    nomitai_kibunka = input('お酒飲みたい? >>' )
    if onaka_suiteruka == 'y' and nomitai_kibunka == 'y':
        print('焼肉はいかが?')
    elif onaka_suiteruka =='y':
        print('カレーはいかが?')
    elif nomitai_kibunka =='y':
        print('焼き鳥はいかが?')
    else:
        print('パスタはどう?')
    yashoku_iruka == input('夜食は欲しい?')
    if yashoku_iruka == 'y':
        print('コンビニのチキンはどう?')
else:
    print('家で食べましょう')
#すべての質問にyまたはnで答えてください
#お金に余裕あるか?? >> y
#お腹かなり空いている? >> n
#お酒飲みたい? >> y
#焼き鳥はいかが?
#夜食は欲しい? n
#コンビニのチキンはどう?


今日ミスったところ

if文の=を1つにしてしまったり、elseの:を忘れてしまったり・・・。

感想 (3日目から書いていこうと思います)

昨日は、リストやディクショナリーなどを学習しましたがすごく分量が多く実は3hほど時間をかけました。
まだ頭に定着するまでは時間がかかりますが高校時代ぶりの学習を考えると、とても楽しく思っています。
目標としておいているのはスクレイピングによる情報収集の効率化と定常業務の自動化ですが、事業企画としての定常業務を覚えていませんw今年中にはどちらもできるようになりたいと思います。
今回の本は中高生でもわかるようにと思考して書かれた本とのことでとてもわかりやすいです。
バリバリの事業企画マン✖︎パイソニスタを目指して引き続き頑張っていきたいとおもいます。

P.s.
編集リクエストをいただける皆様、とても感謝しております。
マークダウンを使うのは実に5年ほどぶりでその際も扱えていたといえないレベルなのでそういったところの指摘から含め色々と今後もご指導いただけたら幸いです。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0