---
# System prepended metadata

title: Python - open file(3) - Exercise
tags: [Python HomeWork]

---

# Python - open file(3) - Exercise
###### tags: `Python HomeWork`

## 問1：会社ランキング
以下は入社して良かったランキングののテキストファイルです。コードで以下のファイルを書き込んでください。

![](https://i.imgur.com/uK4droD.png)

:::info
code：
```python=
file = open("HW_file(3)_1.txt","w")
file.write("入社してよかった会社ランキング\n")
file.write("\n")
file.write("一位　グーグル合同会社\n")
file.write("二位　株式会社　コスモスイニシア\n")
file.write("三位　マッキンゼー&カンパニー日本支社\n")
file.close()
```
:::

## 問2：終わらない夏、エンドレスファイル
日記を書くプログラムを作りましょう。
入力できるようにし、入力した内容は「diary.txt」ファイルに書き込まれます。なお、"end"が入力されたらプロブラムを終了します。

* 日記のプログラムなので、計5回実行して、毎回違う内容を書き込みます。5回実行したらファイルの内容は以下の通りになります。
![](https://i.imgur.com/xvQnxm6.png)

```
**入出力１：**
|1973年8月3日

|私には、飼っている犬がいます。

|柴犬で、名前は「コロ」。

|ですがコロは、毎日私の手に噛みついてくるのです。

|本当に愛しくて困ったものです。

|end
---おわり---

**入出力２：**

|1973年8月20日

|コロのこと大好きです。

|でも、餌をやっても、懐いてくれません。

|そんなコロが唯一楽しそうにやってくれる遊びは、ボールをころころと転がす遊びです。

|その遊びだけは、私と一緒に遊んでくれます。

|昨日、ころころしました。

|end
---おわり---

**入出力３：**
|1973年8月21日

|今日も、ころころしました。

|end
---おわり---

**入出力４：**

|1973年8月22日

|今日も、ころころしました。

|今日も、ころころしました。

|今日も、ころころしました。

|end
---おわり---

**入出力5：**
|1973年8月23日

|今日も、＆’＆ろしました。

|’（A'F日も、ころ（（％＆ころしました。

|）A&kyoumo korokoしました。

|end
---おわり---
```

:::info
code：
```python=
file = open("HW_file(3)_2.txt","w")

for i in range(5):
    text = ""
    while text != "end":
        text = input("")
        if text == "end":
            break
        text = text+"\n"
        file.write(text)
    file.write("--\n")
    i+=1
file.close()
```
改訂版
```python=
file = open("HW_file(3)_2.txt","a")

text = ""
while True: #最初からtrueにしたほうが楽
    print()
    text = input("|")
    if text == "end":
        break
    text = text+"\n"
    file.write(text)
print("---おわり---\n")
file.close()
```
:::

## 問3：楽しい地獄
:::danger
七つの大罪、人間は生まれながらにして罪を犯すもの。
そこで如何に自分が陥ってしまった罪から目を覚めるか、
どう向き合っていくか.......
:::
デジタル変革時代の到来でサタン様は業務のデジタル化を推進しています。サタン様の指示に従って以下の条件を満たすプログラムを作成してください。

* まず、以下のファイルを書き込んでください。
![](https://i.imgur.com/tWfMuf0.png)
* 次に、以下の指示に沿って出力してください。
1. タイトルを出力すること。
2. 一番罪深い人間を出力すること。
3. 一番罪が浅い人間を出力すること。
4. 人間がよく犯す二つの罪を出力すること。
* 最後、ユーザーに何番目の人を処刑するかを入力させ、指定した人間のデータをファイルから消してください。
```
入出例1：
Seven deadly sins

一番罪深い人間は？ Judy
一番罪が浅い人間は？ Jerry
人間がよく犯す二つの罪は？傲慢 怠惰 
誰を処刑しますか(1~6までの整数を入力してください)；2
Anzu の存在が消された。
```
![](https://i.imgur.com/lOHq4DA.png)
```
入出例2：
Seven deadly sins

一番罪深い人間は？ Judy
一番罪が浅い人間は？ Jerry
人間がよく犯す二つの罪は？傲慢 怠惰 
誰を処刑しますか(1~6までの整数を入力してください)；6
tomo の存在が消された。
```
![](https://i.imgur.com/aVXRm4c.png)

:::info
code：
```python=
file = open("HW_file(3)_3.txt","w")

def w1():
    string = "Seven deadly sins\n"
    return string   
def w2():
    string = "Name     ID              怠惰　　　強欲　　　傲慢　　　嫉妬\n"
    return string
def w3():
    string = "enor     ###4442         82     55      99     41\n"
    return string
    
def w4():
    string = "Bmo      ###6669         89     66      89     49\n"
    return string

def w5():
    string = "Judy     ###3397         69     93      85     81\n"
    return string

def w6():
    string = "Jerry    ###2012         11     76      69     19\n"
    return string

def w7():
    string = "tomo     $$$7777         65     75      84     84\n"
    return string

numlist = [w1(),w2(),w3(),w4(),w5(),w6(),w7()]
[file.write(i) for i in numlist]
file.close()

file = open("HW_file(3)_3.txt","r")
title = file.readline()
print(title)

file.close()
file = open("HW_file(3)_3.txt","w")

namelist = ["","","enor","Bmo","Judy","Jerry","tomo"]
character = ["怠惰","強欲","傲慢","嫉妬"]
ave = []

enor = [82,55,99,41]
ave.append(sum(enor))
bmo = [89,66,89,49]
ave.append(sum(bmo))
judy = [69,93,85,81]
ave.append(sum(judy))
jerry = [11,76,69,19]
ave.append(sum(jerry))
tomo = [65,75,84,84]
ave.append(sum(tomo))


high = ave.index(max(ave))
low = ave.index(min(ave))
high += 2 #同じnamelistを使っていて後に不都合が生じるためこうしました。
low += 2

print("一番罪深い人間は？ {}".format(namelist[high]))
print("一番罪が浅い人間は？ {}".format(namelist[low]))

cha = []
for i in range(4):
    cha.append(enor[i]+bmo[i]+judy[i]+jerry[i]+tomo[i])
first = cha.index(max(cha))
cha.remove(max(cha))
second = cha.index(max(cha))
print("人間がよく犯す二つの罪は？{} {}".format(character[first],character[second]))



file.close()

file = open("HW_file(3)_3.txt","w")

num = int(input("誰を処刑しますか(1~6までの整数を入力してください):"))
num += 1

numlist.remove(numlist[num])
print("{} の存在が消された。".format(namelist[num]))
namelist.remove(namelist[num])

for i in numlist:
    file.write(i)

file.close()

```
模範解答
```python=
filename = "sin7.txt"
file = open(filename,"w")
stringlist = ["Seven deadly sins\nName    ID      怠惰　強欲　傲慢　嫉妬",
              "\nenor ###4442     82  55  99  41  ",
              "\nAnzu ###7771     97  36  85  35  ",
              "\nBmo  ###6669     89  66  89  49  ",
              "\nJudy ###3997     69  93  85  81  ",
              "\nJerry    ###2012     11  76  69  19  ",
              "\ntomo $$$7777     65  75  84  84  "]
for i in stringlist:
    file.write(i)
file.close()

#読み込み
name,sloth,greed,pride,envy,total=[],[],[],[],[],[]
file=open(filename,"r")
title=file.readline()
file.readline()
for i in file.readlines():
    line = i.split()
    name.append(line[0])
    sloth.append(int(line[2]))
    greed.append(int(line[3]))
    pride.append(int(line[4]))
    envy.append(int(line[5]))
    total.append(int(line[2])+int(line[3])+int(line[4])+int(line[5]))
print(name,sloth,greed,pride,envy,total,sep="\n")  
  
no1Index = total.index(max(total))
last1Index = total.index(min(total))

print(title)
print("一番罪深い人間は？",name[no1Index])
print("一番罪が浅い人間は？",name[last1Index])  
print("人間がよく犯す二つの罪は？",end = "")
#全ての罪の総和のリスト
sinTotalList = [sum(sloth),sum(greed),sum(pride),sum(envy)]
sinTotalList.sort()
no1no2List = [sinTotalList[-1],sinTotalList[-2]]#一位と二位 
#print(no1no2List)
for i in no1no2List:
    if i == sum(sloth):
        print("怠惰",end="")
    elif i == sum(greed):
        print("強欲",end="")
    elif i == sum(pride):
        print("傲慢",end="")
    elif i == sum(envy):
        print("嫉妬",end="")
    print(" ",end="")

userInput = int(input("誰を処刑しますか(1～6までの整数を入力してください):"))
filename = "sin7,txt"
file = open(filename,"r")
title = file.readline()
item = file.readline()
contents = file.readlines()
file.close()
sinpeople=contents.pop(userInput-1)
print(sinpeople.split())

filename = "sin7.txt"
file = open(filename,"w")
file.write(title+item)
for i in contents:
    file.write(i)
file.close()

print("{} の存在が消された。".format(sinpeople.split()[0]))
```
:::