11月19日(ifとforの組み合わせ)

ページ名:20191119

ifの復習

例題:税率の計算

food = input('食品ですか?')
if  food == 'はい':
    eatin = input('店内でお召し上がりですか?')
    if  eatin == 'はい':
        print('税率10%です')
    else:
        print('税率8%です')
else:
    print('税率10%です')

問題:上のプログラムを改良して、税抜き価格を入れると税込み価格を表示するようにしなさい。

zeinuki = int(input('税抜き価格は?'))
food = input('食品ですか?')
if food == 'はい':
    eatin = input('店内でお召し上がりですか?')
    if eatin == 'はい':
        zeikomi = zeinuki * 1.1
    else:
        zeikomi = zeinuki * 1.08
else:
    zeikomi = zeinuki * 1.1
print('税込み価格は' + str(zeikomi) + '円です')

ifとfor: 最大値

numbers = [25, 10, 40, 15, 35, 30]
max = numbers[0]
for number in numbers:
    if number > max:
        max = number
'最大の数字は' + str(max) + 'です'

問題:数字のリストに対して、最小の数字を表示するプログラムを書きなさい。

numbers = [25, 10, 40, 15, 35, 30]
min = numbers[0]
for number in numbers:
    if number < min:
        min = number
'最小の数字は' + str(min) + 'です'

ifとfor: 検索

member = ['伊藤', '加藤', '佐藤', '後藤']
search = input('検索したい名前は')
kekka = 'いません'
for name in member:
    if name == search:
        kekka = 'います'
print(search + 'は' + kekka)

応用問題(授業では未実施):数字のリスト[50, 88, 64, 21, 54, 70]があります。数字を入力して、その数字と一番近い数字をリストから見つけるプログラムを書きなさい。

list = [50, 88, 64, 21, 54, 70]
search = int(input('検索したい数字は?'))
kekka = list[0]
samin = 999999999 #差の最小値
for kazu in list:
    if search > kazu:
        sa = search - kazu
    else:
        sa = kazu - search
    if  sa < samin:
        kekka = kazu
        samin = sa
print(str(search) + 'と最も近いのは' + str(kekka) + 'です')

※関数absを使うと簡略化できる。absは絶対値(0からの距離)を返す。

abs(5) #5
abs(-5) #5

list = [50, 88, 64, 21, 54, 70]
search = int(input('検索したい数字は?'))
kekka = list[0]
samin = 999999999 #差の最小値
for kazu in list:
    sa = abs(search - kazu)
    if  sa  < samin:
        kekka = kazu
        samin = sa
print(str(search) + 'と最も近いのは' + str(kekka) + 'です')


ifとfor: 数え上げ

tenkilist = ['晴','曇','曇','雨','晴','晴','晴']
search = input('調べたい天気は')
gokei = 0
for tenki in tenkilist:
    if tenki == search:
        gokei += 1
print('今週' + search + 'は' + str(gokei) + '回ありました')

応用問題(授業では未実施):tenkilistに対して、今週一番多かった天気を表示するプログラムを書きなさい

応用問題(授業では未実施):数字のリスト[50, 88, 64, 21, 54, 70]があります。数字を入力して、その数字より大きい数字が何個あるか表示するプログラムを書きなさい。


ifとfor: 何番目にあるか

member = ['伊藤', '加藤', '佐藤', '後藤']
search = input('検索したい名前は')
kekka = -1 #検索ワードが何番地にあるか
banchi = 0 #いま何番地を検索しているか
for name in member:
    if name == search:
        kekka = banchi
    banchi += 1
print(search + 'は' + str(kekka) + '番地です')

応用問題(授業未実施):数字のリストに対して、最大の数字が何番地にあるかを表示するプログラムを書きなさい。

(応用)ifとfor: 連続出現数

kinmulist = ['出','休','出','出','出','休','出','出','休','休','出']
renkin = 0
saidai = 0
for kinmu in kinmulist:
    if kinmu == '出':
        renkin += 1
        if renkin > saidai:
            saidai = renkin
    else:
        renkin = 0
print('今月最大' + str(saidai) + '連勤があります')

ifとfor: まとめ

問題:以下はある観光施設の訪問者リストです。あなたはこのリストのまとめをまかされました。

①性別のリストを作り「女性○人, 男性○人」と表示しなさい

seilist = ['女','女','男','男','女','女']
woman = 0
man = 0
for sei in seilist:
    if sei == '女':
        woman += 1
    else:
        man += 1
print('女性' + str(woman) + '人、男性' + str(man) + '人')

②年齢のリストを作り「30代○人,40代○人,50代○人,60代○人」と表示しなさい

agelist = [66, 59, 51, 66, 35, 60]
shukei = [0, 0, 0, 0] #30代, 40代, 50代, 60代
for age in agelist:
    if age >= 30 and age <= 39:
        shukei[0] += 1
    elif age >= 40 and age <= 49:
        shukei[1] += 1
    elif age >= 50 and age <= 59:
        shukei[2] += 1
    elif age >= 60 and age <= 69:
        shukei[3] += 1
print('30代' + str(shukei[0]) + '人, 40代' + str(shukei[1]) +'人, 50代' + str(shukei[2]) +'人, 60代' + str(shukei[3]) + '人')


③「最年少は〇歳、最高齢は〇歳」と表示しなさい

agelist = [66, 59, 51, 66, 35, 60]
max = agelist[0]
min = agelist[0]
for age in agelist:
    if age > max:
        max = age
    if age < min:
        min = age
print('最年少は' + str(min) + '歳, 最高齢は' + str(max) + '歳')


④住所のリストを作り「兵庫県内○人、関西○人、それ以外○人」と表示しなさい

jusholist = ['大阪', '兵庫', '東京','埼玉','奈良','大阪']
kansai = ['大阪', '京都', '奈良', '滋賀', '和歌山'] #兵庫は含まない
shukei = [0, 0, 0] #兵庫県内, 関西, それ以外

for jusho in jusholist:
    for ken in kansai:
        if jusho == ken:
            jusho = '関西'
            
    if jusho == '兵庫':
        shukei[0] += 1
    elif jusho == '関西':
        shukei[1] += 1     
    else:
        shukei[2] += 1
        
print('兵庫県内' + str(shukei[0]) + '人, 関西' + str(shukei[1]) + '人, その他' + str(shukei[2]) + '人')

 

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する