11月28日(while, pop, ソートプログラム)

ページ名:20191128

whileによる繰り返し

例題:かくれんぼプログラム
print('逃げろー!')
kotae = ''
while kotae != 'もーいーよ':
    kotae = input('もーいーかい?')
print('みーつけた!')

問題:

kotae = input('岩津ねぎの解禁日は?')
if kotae == '11月23日':
    print('正解です?')
else:
    print('間違い!')

このクイズプログラムを、正解するまで何度も聞き返すように書き換えなさい(whileを使うこと)。

kotae = input('岩津ねぎの解禁日は?')
while kotae != '11月23日':
    kotae = input('間違い!岩津ねぎの解禁日は?')
else:
    print('正解です!')

例題:お買い物プログラム

saifu = 1000
while saifu >= 0:
    print('残り' + str(saifu) + '円です')
    kaimono = int(input('何円使いますか?'))
    saifu -= kaimono
print('もうお金がありません!')

問題:定員15人のレストランがあります。「何名様ですか?」と聞いて次々にお客様を入れて、満員になったら「すみません満員です」と表示するようプログラムを書きなさい。途中随時「現在○名様ご来店です」と表示しなさい。

kyakusu = 0
while kyakusu <= 15:
    print('現在' + str(kyakusu) + '名様ご来店です')
    shinki = int(input('何名様ですか'))
    kyakusu += shinki
print('すみません満員です')

例題:レストランの注文を聞くプログラム

chumon = input('ご注文は何にいたしましょうか?')
kakunin = 'ご注文は'
r = ''  #連結文字。最初は空白
while chumon != '以上です':
    kakunin += r + chumon
    chumon = input('ほかにございますか?')
    r = 'と'
print(kakunin + 'ですね。')

リストからリストを作る

例題:名前のリストに対して「様」を付けたリストを作る

list1 = ['田中', '佐藤', '山田', '中村']
list2 = [] #空のリストを作る
for name in list1:
    list2.append(name + '様')
list2

例題:数字のリストに対して、すべて値を2倍にしたリストを作りなさい

list1 = [10,20,30,40]
list2 = []
for kazu in list1:
    list2.append(kazu * 2)
list2

 


pop:リストのn番目を取り出す

list.pop(n) #listのn番地の要素を取り出す
list.pop()  #listの末尾の要素を取り出す

使い方

list = ['A', 'B', 'C', 'D', 'E']
moji = list.pop(2) #2番地を取り除く
print(moji)
print(list)

例題:リストの最初の3つを取り出したリストを作る
list1 = ['A', 'B', 'C', 'D', 'E']
list2 = []
while len(list2) < 3: #lenはリストの長さを返す
    list2.append(list1.pop(0))
list2

例題:逆順のリストを生成する
list1 = ['A', 'B', 'C', 'D', 'E']
list2 = []
while len(list1) > 0:
    list2.append(list1.pop()) #末尾を取り出す
list2

最小値が何番地にあるか

list = [31, 20, 67, 37, 58, 42, 25]
min = list[0] #最小値
ban = 0 #いま何番地を検索しているか
minban = 0 #最小値が何番地にあるか
for num in list:
    if num < min:
        min = num
        minban = ban
    ban += 1
print(minban)

ソートプログラム

list1 = [20, 50, 30, 10, 40]
list2 = []
while len(list1) > 0:
    min = list1[0]
    ban = 0
    minban = 0
    for kazu in list1:
        if kazu < min:
            min = kazu
            minban = ban
        ban = ban + 1
    list2.append(list1.pop(minban))
list2

 

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

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

最新を表示する

NG表示方式

NGID一覧