Closed1

基本情報午後試験のためにPythonと戦う

だんぼ / Shuriだんぼ / Shuri

これで勉強中
https://www.udemy.com/course/python-beginner/

基本あれこれ

変数宣言

Pythonは const や let などの宣言が必要ない

num = 1
name = "Tom"
is_ok = True

型を指定することもできるが必須ではない
new_name: str = "Tom"
Pythonではあまり型宣言は使わない

# Type関数を使うと何の型なのかわかるようになるので有用
print(num, type(num)) 
→ 1 <class 'int'>
print(name, type(name))
→ Tom <class 'str'>
print(is_ok, type(is_ok))
→ True <class 'bool'>

str_num: str = "1"
new_num = int(str_num)
print(new_num, type(new_num))
→ 1 <class 'int'>

型変換

# 型変換
num = 1
print(type(num))
→ <class 'int'>
print(type(str(num)))
→ <class 'str'>

Print

文字列を区切る

  • sep="~~~"でその文字列で区切られるようになる
  • endで末尾をどうするか。\nで改行、""にすると繋がって表示される
print("Hi", "Mike", sep=",", end="\n")
print("Hi", "Mike", sep=",", end="")
print("Hi", "Mike", sep=",", end="")

→
Hi,Mike
Hi,MikeHi,Mike

数値

print(17 // 3)
# 整数の5だけ表示される

print(5 ** 5)
# べき乗→3125

pie = 3.13641414141414
print(round(pie, 2))
# 第二引数の小数点以下の桁まで四捨五入される

便利な数学関数

mathというライブラリをインポートする

import math

# 平方根
result = math.sqrt(25)
print(result)
→ 5.0

y = math.log2(10)
print(y)
→ 3.321928094887362

# help関数でpythonのドキュメントが表示される
print(help(math))

文字列

print("C:\name\name")
# このようなファイルのパスを記述したい場合、\nで改行されてしまう。
→ 
C:
ame
ame

print(r"C:\name\name")
# 生のデータ=rawという意味のrを頭につけることで回避できる。
→ C:\name\name

print("""\
line1
line2
line3
""")
# 改行を自動で入れたい場合は、""" """でくくるとOK
# 改行したくないところにはバックスラッシュを入れる。
→
line1
line2
line3

print("Hi," * 3 + "Mike")
# Hi,Hi,Hi,Mike というように演算子も使える
→ Hi,Hi,Hi,Mike

s = ("aaaaaaaaaa"
     "bbbbbbbbbb")
print(s)
# +を使わなくても文字列を合体できる。
→ aaaaaaaaaabbbbbbbbbb

文字列のインデックスとスライス

word = "python"
print(word[0])
# インデックスで文字列を表示できる
→ p

print(word[-1])
# 最後のインデックスは-1を使う
→ n

print(word[0:2])
# py スライス。0-2の文字列を表示する。先頭(もしくは最後)が0の場合は省略も可能。
→ py

print(word[2:])
→ thon

# どちらも省略すると全ての文字列が表示される。
print(word[:])
→ python

文字列の文字を一部書き換えたい

word[0]="j"
# 上記はエラーになる

word = "j" + word[1:]
print(word)
# jython 変えたい文字列に元の変数の文字列をくっつけてあげることで回避できる

length

# length = len
n = len(word)
print(n)
→ 6

文字列のメソッド

s = "My name in Mike. Hi Mike"
print(s)
→ My name in Mike. Hi Mike

# 文字列が指定したものから始まっているか調べる
is_start = s.startswith("My")
print(is_start)
→ True

# はじめの文字列から数えてどこにあるか調べる
print(s.find("Mike"))
→ 11

# 後ろから調べる
print(s.rfind("Mike"))
→ 20

# 文字列が何個入っているか
print(s.count("Mike"))
→ 2

# 一番最初だけ大文字にして、残りは小文字にする
print(s.capitalize())
→ My name in mike. hi mike

# 全ての単語の一番最初の文字を大文字にする
print(s.title())
→ My Name In Mike. Hi Mike

# 全て大文字にする
print(s.upper())
→ MY NAME IN MIKE. HI MIKE

# 全て小文字にする
print(s.lower())
→ my name in mike. hi mike

# 文字列のReplace
print(s.replace("Mike", "Nancy"))
→ My name in Nancy. Hi Nancy

文字の代入

  • formatを使う
  • python3.6より、formatではなく、f-stringsが使えるようになった。こちらの方が新しいスタイルで処理も早い。
print("a is {}".format("test"))
→ a is test {}に"test"が代入される

print("a is {} {} {}".format(1, 2, 3))
→ a is 1 2 3

# indexも指定できる = a is {0} {1} {2} と同義
print("a is {2} {1} {0}".format(1, 2, 3))
→ a is 3 2 1 逆になる。

# 変数で指定も可能
print("My name is {name} {family}. 私は {family} {name} です。".format(name="Jun", family="Sakai"))
→ My name is Jun Sakai. 私は Sakai Jun です。

# formatで入れると数字も型変換されて代入される
word = "b"
print(f"a is not {word}")
→ a is not b

x, y, z = 1, 2, 3
print(f"a is {x} {y} {z}")
print(f"a is {z} {y} {x}")
→ a is 1 2 3
→ a is 3 2 1
このスクラップは2021/11/30にクローズされました