Finderに不可視フォルダ・ファイルを表示した

はじめに

spyderでpythonファイルを作成したらどっかにいった。
spyderの編集→形式を指定して保存、を押してみたらデフォルトの保存先が
「/users/○○○/」の下の「.spyder-py3」という不可視フォルダになっていた。

ターミナルにおいて

$ cd spyder-py3
$ ls -a

とすれば確認できるが、めんどくさいのでFinderでも不可視フォルダ等を見られるようにした。

環境

macOS High Sierra ver10.13.4

ターミナルで操作

ぐぐったらすぐに出てきた。以下を実行。

$ defaults write com.apple.finder AppleShowAllFiles TRUE

で、一度Finderを終了

$ killall Finder #Fは大文字

完了

感想

python環境を整えたに新規作成した.bashrcや.bash_profileのコードの意味を再確認しておきたいと思っていたので、Finderで見られるようになって楽ちん。
大切なファイルを消さないよう注意したい。

06_Pythonノート記録_#if #for

05の続き

<if文>

#01 変数aの数字を判定
a = 150
if a > 100:
	print("100より大きい")
elif a  == 100:
	print("100ちょうど")
elif a < 100:
	print("100より小さい")
↓結果
100より大きい

《観察》
elif a < 100: は else でも同じか

#andを使ってif

#02 2つの条件を満たしていれば"あたり"が表示される
a = 50
b = 20
if a < 100 and 15 < b:
	print("あたり")
else:
	prnt("はずれ")
↓結果
あたり

#orを使ってif

#03 片方の条件に当たっていれば"あたり"
a = 50
if a > 40 or a = 20:
	print("あたり")
else:
	print("残念")
↓結果
あたり

#notを使ってif

#04_bより大きくなければイケる
a = 49
b = 50
if not a > b:
	print("イケる")
else:
	print("イケない")
↓結果
イケる

<for>

#01_リストの要素で繰り返す

flute = ["リンゴ","バナナ","イチジク","オレンジ"]
for fl in flute:
	print(fl)
↓結果
リンゴ
バナナ
イチジク
オレンジ

《観察》
繰り返す順番はシーケンス中に要素が現れる順番である

#02_回数を指定して繰り返す

for kuri in range(5):
	print(kuri)
↓結果
0
1
2
3
4


#03範囲を指定して繰り返す

for hani in range(50, 55):
	print(hani)
↓結果
50
51
52
53
54
55

#04範囲と間隔を指定して繰り返す

for kan in range(2, 10, 3):
	print(kan)
↓結果
2
5
8

《ハック》広田まできたら表示をやめる

human = ["佐藤","中島","南方","広田","今田","今泉"]
for nin in human:
	print(nin)
	if nin == "広田": break
↓結果
佐藤
中島
南方
広田


#文字列の隣に文字列を表示

flute = ["apple", "banana", "orange", "kiwi"]
for f in flute:
	print(f + "の文字数は" + str(len(f)) + "です")
↓
appleの文字数は5です
bananaの文字数は6です
orangeの文字数は6です
kiwiの文字数は4です

《観察》
len()では数値を出してくれるので、print時はstrに変換する必要あり。
変換しないとエラー
>>>Can't convert 'int' object to str implicitly
>>>intを暗黙的にstrには変換できない。手動でやりなさい的なニュアンス?
|

#スライスを使ったらどうなるの
#インデックス指定なし

flute = ["apple", "banana", "orange", "kiwi"]
for f in flute[:]:
	print(f)
↓
apple
banana
orange
kiwi

#インデックス指定あり

for f in flute[1:]:
	print(f)
↓
banana
orange
kiwi

《観察》
指定したインデックス番号の要素からはじまる

#range()関数

for AA in range(4):
	print(AA)
↓
0
1
2
3

#rangeの値を指定して遊んでみる
#範囲を指定

for AA in range(20, 22):
	print(AA)
↓
20
21

#範囲と間隔を指定

for AA in range(1 , 100, 39):
	print(AA)
↓
1
40
79

《観察》
for文行おしりに:(コロン)を付け忘れることが多々あるので注意

#インデックス番号の隣に対応する要素を表示させる
#出席番号を摸する

b3 = ["欠番","相沢", "伊藤", "上田", "江口", "小沢"]
for num in range(len(b3)):  #b3のlen=b3の要素数をnumに代入していく
	print(num, b3[num])  #(要素数,リストb3の要素数番目の要素)0 欠番
1 相沢
2 伊藤
3 上田
4 江口
5 小沢

ここで終了↓
4. その他の制御フローツール — Python 3.6.4 ドキュメント

05_Pythonノート記録_#タプル #辞書

04の続き

<用語>

#シーケンス:順番に並んでいること
#シーケンス型:配列やリストのように順番に処理するデータ構造、pythonでいう「文字列、リスト、タプル、range」を言う

<タプル>

#書式

変数 = 値, 値, 値, 値,... 値
#数値型を文字列型が混合していてもOK#

#例

c = 10, 20, "APPLE", "car"
print(c) 
↓
(10, 20, 'APPLE', 'car')
#タプルとリストの違い
タプル:丸括弧がつく、不変型(immutable)、複数の型でも大丈夫、アンパック操作やインデックスでアクセス
リスト:角括弧がつく、変更可(mutable)、同一の型、イテレートでアクセス
イテレート:繰り返し処理
アンバック:まだよくわからない

#タプルを追加

#丸括弧でくくらない
c = c, 1, 2, 3
↓
((10, 20, 'APPLE', 'car'), 1, 2, 3)

#丸括弧でくくる
c = c, (1,2,3)
↓
((10, 20, 'APPLE', 'car'), (1, 2, 3))

#中身を取り出したい

c = ((10, 20, 'APPLE', 'car'), (1, 2, 3))
c[0][1]
↓
20

#本当に中身を変えることはできないのか

c = ((10, 20, 'APPLE', 'car'), (1, 2, 3))
c[0][1] = 600SyntaxError: keyword can't be an expression

《観察》
できない模様。

#0個から成るタプル_変数に()を代入

kara = ()
↓
()

#1個から成るタプル_おしりに,

ikko = "book",
↓
('book',)

#タプルやリストのアンパック_例

coin = 1, 5, 10, 50, 100, 500
a, b, c, d, e, f = coin
print(a,b,c,d,e,f)
↓
1 5 10 50 100 500

《観察》
シーケンス型(タプルやリスト)に代入されている値の数と同じ数の変数を用意し、
左辺に変数 イコール 右辺にシーケンス型の変数
とすることで、複数の変数に同時に値を代入することができる。これをシーケンスのアンパックと呼ぶ。
上記#例の場合、タプルのパック(変数coin)とシーケンスのアンパックをを組み合わせて、a~fに硬貨を割り当てた。

《ハック》
#リストでもやってみる

jap = ["わ", "び", "さ", "び"]
q,w,e,r = jap
print(q,w,e,r)
↓
わ び さ び

#リストやタプルの複合ならどうか

AAA = [[123,456],[789,741,852,963]]
b,c = AAA
print(b,c)  #---1

q,w,e,r = AAA[1]
print(q,w,e,r) #---2
↓
[123, 456] [789, 741, 852, 963] #--1

789 741 852 963 #--2

《観察》
AAAの中身を全て分解して異なる変数に入れようと思ったができなかった。

<辞書型>

#書式

変数 = {キー:値, キー:値, キー:値,...キー:値}

#例

root = {"車":120, "電車":135, "自転車":250, "徒歩":3120}
print(root)
print(root["車"])
↓
{'電車': 135, '車': 120, '自転車': 250, '徒歩': 3120} #順番はランダム
120

《観察》
インデックス番号でアクセス使用とすると...

print(root[0])
↓
TypeError: 'builtin_function_or_method' object is not subscriptable

#辞書を追加

root = {"車":120, "電車":135, "自転車":250, "徒歩":3120}
root["飛行機"] = 60
print(root)
↓
{'自転車': 250, '飛行機': 60, '電車': 135, '徒歩': 3120, '車': 120}

《観察》
追加するときは波括弧じゃなくて丸括弧らしい。なんでやねん

#キーを抽出してリスト化する

#ソースせずに抽出するlist(d.keys())
root = {"車":120, "電車":135, "自転車":250, "徒歩":3120}
print( list(root.keys()) )
↓
['徒歩', '車', '自転車', '電車']

#ソースして抽出
root = {"車":120, "電車":135, "自転車":250, "徒歩":3120}
print( sorted(root.keys()) )
↓
['徒歩', '自転車', '車', '電車'] #あいうえお順かな?

#キーと値のペアであるタプル、を含むリストから辞書を作成する dict.([()])

#タプルを作成
tap1 = ("apple", 100)
tap2 = ("banana", 200)
tap3 = ("orange", 150)

#タプルをリスト化
list1 = []
list1.append(tap1)
list1.append(tap2)
list1.append(tap3)

#リストから辞書を作成
di1 = dict(list1)
print(di1)
↓
{'orange': 150, 'banana': 200, 'apple': 100}

#辞書の内包表記

dic2 = { a : a*b for a in range(1,10) for b in (9,10)}
print(dic2)
↓
{1: 9, 2: 18, 3: 27, 4: 36, 5: 45, 6: 54, 7: 63, 8: 72, 9: 81}


《観察》
九九を1~9の段をキーに:各段の九つ目を値に。
むずい

#ループにおいて、辞書のキーとその値を同時に取り出すことができる。.items()メソッド
#例

pants = {"white":100, "black":200, "yellow":1300}
for x,y in pants.items():
	print(x,y)
↓
black 200
yellow 1300
white 100

#シーケンス型において、インデックス番号と値を同時に取り出すことができるenumerate()関数

pants = {"white":100, "black":200, "yellow":1300}
for x,y in enumerate(pants):
	print(x,y)
0 white
1 yellow
2 black

《観察》
今回は辞書型で試したので、値(whiteなど)の順番は毎回ランダム

#タプルでためしてみる

a = 1,2,3,4,5
for x,y in enumerate(a):
	print(x,y)
↓
0 1
1 2
2 3
3 4
4 5

#シーケンス型をソートしてループする sorted()

a = 20,31,45,1,9,56,3021,4
for b in sorted(a):
	print(b)
↓
1
4
9
20
31
45
56
3021

#辞書だとどうなる?

a = {"G":65, "A":10, "D":98}
for b in sorted(a):
	print(b)
↓
A
D
G #キーがソートされた

《観察》
sorted()は、元のシーケンス型の変数の順序を変えずに、
新たにソート済みのものを返してくれる。

#シーケンス型を逆順にループさせる reversed()関数

for a in reversed(range(1,100,25)):
	print(a)
↓
76
51
26
1

5-7 条件についてもうすこし までやった
https://docs.python.jp/3/tutorial/datastructures.html#tut-loopidioms

04_Pythonノート記録_#数値 #文字列 #リスト

pythonドキュメント ver3.6.4 Pythonチュートリアル」をやってみた時のノート(実験)を載せる

<数値型>

#演算時の型の変換について
#演算される値の方が統一されていない場合、整数の値を浮動小数点に変換される。

a = 2 * 2.5 - 1 

print(a)
↓
4.0

#演算時の注意点
#優先順位_**は-より優先度が高い

-3 ** 2 = -9  #-(3**2)と解釈される。-9としたいなら(-3)**2とする
3 ** -2 = 0.1111111111111  #なんだこれ・・・よくわからん・・・

<文字列型>

#文字列はインデックス標記できる

mozi = "mozi_index"
print(mozi[0])
↓
m

#マイナスで指定すると逆から数える

mozi = "mozi_index"
print(mozi[-5])
↓
i


《観察》
文字列の数を超えたインデックス番号を指定するとエラー
>>> IndexError: string index out of range(範囲外です)
|


#文字列をスライスで取得

mozi = "mozi_index"
print(mozi[0:2])
↓
mo

#片方だけインデックス番号を指定_開始インデックス

mozi = "mozi_index"

print(mozi[2:])
↓
zi_index

#片方だけry_終了インデックス

mozi = "mozi_index"
print(mozi[:2])
↓
mo

《観察》
・開始インデックス:任意に指定しなければ自動で0が指定される
・終了インデックス:自動では指定されない

#スライスで範囲外のインデックス番号を指定

#開始インデックスを範囲外に
a = "mozi_retu_index"
print(a[97874:])	
↓
表示なし

#終了インデックスを範囲外に
print(a[:254654])
↓
mozi_retu_index

《観察》
スライスなら範囲外でもエラーは起きない、つよい

#文字列の長さを知る len()

fish = "寿限無寿限無五劫の擦り切れ海砂利水魚の水行末雲来末風来末食う寝る処に住む処藪ら柑子の藪柑子パイポパイポパイポのシューリンガンシューリンガンのグーリンダイグーリンダイのポンポコピーのポンポコナーの長久命の長助"	
print(len(fish))
↓
103

<リスト>

#基本的な書式

list = [10, 20, 30, 40, 50]
print(list)
↓
[10, 20, 30, 40, 50]

#インデックスで取り出す

print(list[3])
↓
40

#マイナスで指定すると逆から(文字列を同じ)

print(list[-2])
↓
40

#スライスで取得

list = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
print(list[1:4])
↓
[20, 30, 40]

#片方だけインデックス番号を指定_開始インデックス

print(list[6:])
↓
[70, 80, 90, 100]

#片方だけry_終了インデックス

print(list[:6])
↓
[10, 20, 30, 40, 50, 60]

《ハック》
インデックス番号であそんでみた

list = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
print(list[-5:1])
↓
表示なし

《ハック》
正のインデックスは、一番左の文字列を[0]として右向きに数える
負のインデックスは、一番右側の文字列を[-1]として左向きに数える。-0は0と同じ。

list = ["あ","い","う","え","お"]
print(list[-2:4])
↓
['え']

《ハック》
開始地点-2は"え"と"う”の間。終了地点4は"え"と"お"の間。
う - | え | - お  
挟まれた"え"が選ばれし文字列となった。
なお、list[:]とすると文字列すべて表示される。

#リスト合体

mozi = ["今日は","とても"]
retu = ["よい日に","なりそう"]
print(mozi + retu)
↓
['今日は', 'とても', 'よい日に', 'なりそう']

#リストの要素を編集

mozi = ["今日は","とても"]
retu = ["よい日に","なりそう"]
retu[0] = "悪い日に"
print(retu)
↓
['今日は', 'とても', '悪い日に', 'なりそう']

#リストに要素を追加

sinsu2 = 1,2,4,8,16,32,64,128
sinsu2.append(256)
sinsu2.append(256 * 2)  #演算の結果を追加
sinsu2.append(1024)
↓
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]

《観察》
appendするときは、なぜか[各括弧]でなく(丸括弧)である。
間違えそうなので注意。

《ハック》
同時に複数要素を追加できないか

sinsu2.append(1024, 2048)
print(sinsu2)
↓
error:ypeError: append() takes exactly one argument (2 given)

《観察》
1つの引数だけ、ということだろうか

#リストでスライスを使いたい

sinsu16 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "G", "P", "C", "D", "E", "F"]
sinsu16[-6:-4] = ["A","B"]
print(sinsu16)
↓
['1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']

《観察》
マイナスでインデックス番号を指定する方法は、要素が多い時に便利だな

《ハック》
終了インデックスを-5にするとどうなる

sinsu16[-6:-5] = ["A","B"]
['1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'P', 'C', 'D', 'E', 'F']

《観察》
開始インデックス→9とGの間から右向きに、終了インデックス→GとPの間から左向きに
よって、挟まれた要素Gが代入の対象となり、AとBに上書きされた。

#スライスでリストの要素を削除する

sinsu16 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "G", "P", "C", "D", "E", "F"]
sinsu16[5:9] = []
print(sinsu16)
↓
['1', '2', '3', '4', '5', 'G', 'P', 'C', 'D', 'E', 'F']

#スライスでリストの要素を全て削除する

sinsu16 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "G", "P", "C", "D", "E", "F"]
sinsu16[:] = []
print(sinsu16)
↓
[]

《観察》
角括弧だけ残るのが、なんか悲しい

#len()で要素を数える

sinsu16 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "G", "P", "C", "D", "E", "F"]
print(len(sinsu16))
↓
15

#リストと他のリストを一緒にする《入れ子というらしい)

sinsu2 = [2,4,6,8]
sinsu16 = ["A","B","C"]
sinsu18 = [sinsu2, sinsu16]
print(sinsu18)
↓
[[2, 4, 6, 8], ['A', 'B', 'C']]

#リストの中のリストの中の要素を取り出したい

print(sinsu18[0][2])
↓
6


#おしりに要素を追加する.append(要素)

a = ["国語", "数学", "理科", "社会", "音楽"]
a.append("図工")
↓
['国語', '数学', '理科', '社会', '音楽', '図工']

《ハック》
#複数追加できるか?

a.append("図工", "英語", "体育")
↓
TypeError: append() takes exactly one argument (3 given)

《観察》
だめでした

#指定した位置に要素を追加する.insert(インデックス番号, 要素)

a.insert(1, "英語")
↓
['国語', '英語', '数学', '理科', '社会', '音楽']

《ハック》
#範囲外のインデックス番号を指定してみる

a.insert(999,"英語")
↓
['国語', '数学', '理科', '社会', '音楽', '英語']

《観察》
イケた。

《ハック》
"英語"だけを出力したい

print(a[999])
↓
indexError: list index out of range

print(a[-1])
↓
英語

《観察》
範囲外のインデックス番号でも追加はできるが、実際は他の要素と連続したところに格納されるらしい
又、(-999,英語)で.insertしたところ、"英語"はインデックス番号0に格納された。


#要素を指定して削除する.remove(要素)

a.remove("国語")
↓
['数学', '理科', '社会', '音楽']

《ハック》
#複数指定して削除したい

a.remove("国語", "数学", "社会")
↓
TypeError: remove() takes exactly one argument (3 given)

《観察》
1じゃなきゃダメみたい

#リスト内全削除をする.clear()
>|python|
a.clear()
↓
[]

《ハック》
#clear()はインデックス番号を指定して特定の要素だけ削除できる?

a.crear(2)
↓
TypeError: clear() takes no arguments (1 given)

<span style="color: #286f2c">《観察》
clear()は引数をとりません、とのこと。
無理なご様子。</span>


#リストに出現するとある要素の出現回数を数える.count()
>|python|
fish = ["マグロ", "サバ", "マグロ", "マグロ", "マグロ", "イカ"]
a.count("マグロ")
↓
4

#リストの要素を逆順にして返す.reverse()

a.reverse()
a
↓
['音楽', '社会', '理科', '数学', '国語']

《観察》
変数の中身そのものが逆順になる


#指定されたインデックス番号の要素を削除して、それを返す.pop(インデックス番号)

a.pop(3)
a
↓
社会
['国語', '数学', '理科', '音楽']


《ハック》
#指定しない.pop()

a.pop()
a
↓
音楽
['国語', '数学', '理科', '社会']

《観察》
指定しなければおしりの要素が対象となる
append()と組み合わせることでスタックとして使える↓↓

スタック = 後入先出(縦の瓶詰めのイメージ)、

《ハック》
#スタックとして使う.append(要素) .pop()

st = [1,2,3]
st.append(4) #おしりに代入
stappend(5) #おしりに代入
st #print
st.pop() #最新の要素を削除して返す , print
st.pop() #最新の要素を削除して返す , print
st #print
↓
[1, 2, 3, 4, 5]
5
4
[1, 2, 3]

《観察》
モジュールを使用してキューとして扱う方法もあったが、
よくわからなかったので後でやる

キュー = 先入先出。
      要素を追加することをエンキューといい
      要素を取り出すことをデューという

#リストの内包表記
リストの[]の中に計算式などを入れちゃうことで、エコにできるらしい

#01_2の段の計算

b = []   #---01
for q in range(1, 10)  #---02
	b.append(q * 2)  #---03
print(b)  #---04
↓
[2, 4, 6, 8, 10, 12, 14, 16, 18]

#02_2の段の計算、内包表記で

b = [q * 2 for q in range(1, 10)]
print(b)
↓
[2, 4, 6, 8, 10, 12, 14, 16, 18]

《観察》

      • 02と---03が逆転

もうちょっとやりたい

《ハック》
#03_13で割り切れる

w = []
for aa in range(0, 200):
	if aa % 13 == 0:
		w.append(aa)
print(w)
↓
[0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156, 169, 182, 195]

#04_13で割り切れる_内包表記で

w = [aa for aa in range(0,200)  if aa % 13 == 0]
↓
[0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156, 169, 182, 195]


#リストから要素を削除するdel文

sinsu16 = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "G", "P", "C", "D", "E", "F"]
del sinsu16[-6]
↓
['1', '2', '3', '4', '5', '6', '7', '8', '9', 'P', 'C', 'D', 'E', 'F']
#"G"を削除

del sinsu16[2:5]
↓
['1', '2', '6', '7', '8', '9', 'P', 'C', 'D', 'E', 'F']
#"3"から"5"を削除

del sinsu16[]
↓
[]
#全て削除

《観察》
これまでは、リストに空のスライスをわざわざ代入していた。
(例)sinsu16[2:5] = []
メソッドpop()との違いとしては削除する値を返さない点

del sinsu16

とすると変数そのものが削除され、参照(print等)をするとエラーになる。

03_Pythonメモ_リスト

リスト=1つの変数に複数データを代入できる。
書式

変数 = [値1, 値2.....]

変数に代入したもの=要素
要素を呼び出したい。
1つずつ呼び出す時の書式

box1 = [1, 2, 3, 4, 5] #代入
print(box[0]) #インデックス番号
結果↓
1

全部呼び出す

print(box1)
結果↓
[1, 2, 3, 4, 5]

《ハック》
参考書によれば、変数の宣言時、要素間にスペースを入れている。
print時も上記のようにスペースあり。
スペースを入れずに宣言すれば、print時の空白もなくなるのか?

box2 = [1,2,3,4,5,6,7,8,9]
print(box2)
↓結果
[1, 2, 3, 4, 5, 6, 7, 8, 9]

《観察》
空白でてきた。

02.Pythonメモ_if復習

マイナビ本でChapter3のif文まで学んだので復習
オリジナルで作ってみる

《ハック》

print("ダメージを受けた!")
print("手持ちに回復薬がある!")

po = input("回復薬を飲みますか? →飲む →飲まない\n")

if po == "飲む":
    print("HPは20回復した!")
elif po == "飲まない":
    print("攻撃をしますか?")
    
    atk = input("→する →しない\n")
    if atk == "する":
        print("50の攻撃を与えた!")
    elif atk == "しない":
        print("逃げるのに成功した!")
    else:
        print("呆然と立ち尽くしている")
else:
    print("死んだ")

結果↓

ダメージを受けた!
手持ちに回復薬がある!
回復薬を飲みますか? →飲む →飲まない
飲む #ユーザが入力
HPは20回復した!

ダメージを受けた!
手持ちに回復薬がある!
回復薬を飲みますか? →飲む →飲まない
飲まない #ユーザが入力
攻撃をしますか?
→する →しない
する #ユーザが入力
50の攻撃を与えた!

ダメージを受けた!
手持ちに回復薬がある!
回復薬を飲みますか? →飲む →飲まない
飲まない #ユーザが入力
攻撃をしますか?
→する →しない
しない #ユーザが入力
逃げるのに成功した!

ダメージを受けた!
手持ちに回復薬がある!
回復薬を飲みますか? →飲む →飲まない
\\\(^q^)/// #ユーザが入力
死んだ

《観察》
おれすごいさすがすぎるめっちゃおもしろい感動。
うまくいくと面白いぃぃぃぃぃぃ

ifの条件には比較式を入力する点に注意
イコール1つだと「invaild syntax」とエラー
代入と比較式は別。しっかり区別

01.Pythonメモ_データ入力・型

マイナビから出版されているPython本をチャレンジ中。
はえ〜」と思ったことをメモ

◆ユーザからのデータ入力に基づいて出力する方法
 

変数 = input("〜〜〜")

《ハック》
色を当てていく

#色情報を入力
carry = input("カレーの色は?")
stew = input("シチューの色は?")
melon = input("メロンの色は?")
#会話文
a1 = "カレーは" + carry + "色をしていてとてもグロテスク\n"
a2 = "シチューは" + stew + "色をしていてとてもグロテスク\n"
a3 = "メロンは" + melon + "色でとてもグロい\n"
print(a1 + a2 + a3)

結果↓

カレーの色は?茶 #←ユーザが入力する
シチューの色は?白 #←ユーザが入力する
メロンの色は?緑 #←ユーザが入力する
カレーは茶色をしていてとてもグロテスク
シチューは白色をしていてとてもグロテスク
メロンは緑色でとてもグロい

《観察》
マイナビ本のコードを丸写ししないように無理やり作った文章、使い所はない
ゲームの世界に近づけた感覚。楽しい。

《ハック》
変数a1 a2 a3 の""と変数carry stew melon の間のスペースは、出力結果に反映されない?

・スペースを増やしてみた

a1 = "カレーは" +           carry         +  "色をしていてとてもグロテスク\n"
結果↓
カレーは茶色をしていてとてもグロテスク

《観察》
スペースごと""で囲っていれば、出力後もスペースありで表示される。
当たり前かもしれないけど、再確認


◆文字列型_整数型_実数型
整数・・・int
実数・・・float
文字列・・・str

変換する場合

a = "1234" #文字列型で宣言 
atai = int(a) * 1000 #整数型に変換
print("数値は" + str(atai) + "です") #文字列に数値型を加算したい時は型を変換する必要がある

型を確認する方法

type(a)
↓結果
<class 'str'>

《観察》
 swiftとの違い...
型について
https://blog.hatena.ne.jp/Atc/atc.hateblo.jp/edit?entry=8599973812338839638

異なる型同士の計算
https://blog.hatena.ne.jp/Atc/atc.hateblo.jp/edit?entry=8599973812338839638