数字→数値
組み込み関数intを使います。
https://docs.python.org/ja/3/library/functions.html#int
組み込み関数intを使わないで書いてみます。
def str_to_int(str_num):
# 正と負で変換の開始位置が異なる。
if str_num[0] == '-':
start_index = 1
is_negative = True
else:
start_index = 0
is_negative = False
int_num = 0
for i in range(start_index, len(str_num)):
# 桁数
place = 10 ** (len(str_num) - (i+1))
# ASCIIコードを用いてその桁の数字->数値へ変換
digit = ord(str_num[i]) - ord('0')
int_num += place * digit
# 負の場合は-1を掛ける
if is_negative:
return -1 * int_num
return int_num
数値→数字
組み込み関数strを使います。
https://docs.python.org/ja/3/library/functions.html#func-str
組み込み関数strを使わないで書いてみます。
def int_to_str(int_num):
# 負の時は正の値にして扱いやすくしておく。
if int_num < 0:
is_negative = True
int_num *= -1
else:
is_negative = False
str_num = []
while int_num > 0:
# ASCIIコードを用いてある桁の数値を数字に変換
str_num.append(chr(ord('0') + int_num % 10))
# 桁を繰り上げる
int_num //= 10
# 小さい桁からに並んでいるので逆にする
str_num = str_num[::-1]
# リスト内の文字を結合する。
str_num = ''.join(str_num)
# 負の時は-をつける。
if is_negative:
return '-' + str_num
return str_num