LoginSignup
0
1

More than 1 year has passed since last update.

python小ネタ帳

Last updated at Posted at 2021-06-19

はじめに

pythonの学習を進める上で役に立ちそうなネタを見つけたらメモ代わりに残しておいて、
今後どんどん使っていくのを目的とする

001.文字列型のリストを簡単に作る

  • rangeそのままだとint型になってしまうためmap関数でstrに置換してやるところがミソ
list(map(str, range(10)))
実行結果
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

002.ランダムな数字のリストを作る

  • 0~100までの数字でランダムに20個のリストを作る
import random
random.sample(range(101), 20)

003.ランダムな文字列を作る

  • 大文字小文字を含む15文字のランダムな文字列を生成する string.printableで記号も含めた文字列を出力可能

※参考サイト

import random
import string
''.join(random.choice(string.printable) for _ in range(15))

004.ファイルを一度に読み込む

-ファイルを一度に読み込みたいときに使えるテクニック
input.txtを読み込んでそのままoutput.txtに書き出したいといった時に使えるテクニック

with open('input.txt') as f, open('output.txt', mode='w') as fw:
    for line in f.readlines():
        fw.write(line)

もちろん単純にファイルをコピーしたいだけならshutilを使ってコピーでも構わないし
従来通りwith openを2回書いても良いが1行で簡単に書けるというのがポイントである

005.P●IZAスキルチェックでお馴染みのやつ

最初にループをさせる回数を入力させてその後引数を渡して処理させる系
入力した値をsplitで分割してリストに渡してやれば良い

num = int(input('Enter number: '))
print('*' * 20 + ' What is your hobby? ' + '*' * 20)

to_string = [list(input().split()) for _ in range(num)]
print(to_string)

num = int(input('Enter number: '))
print('*' * 20 + ' What is your favorite number? ' + '*' * 20)

numbers = [list(map(int, input().split())) for _ in range(num)]

print(numbers)
実行結果
Enter number:  3
******************** What is your hobby? ********************
 読書 映画 水泳
 プロレス テニス
 野球 サッカー
[['読書', '映画', '水泳'], ['プロレス', 'テニス'], ['野球', 'サッカー']]

Enter number:  4
******************** What is your favorite number? ********************
 777 1234
 222
 123 456 789
 999 666 777
[[777, 1234], [222], [123, 456, 789], [999, 666, 777]]

006.モジュールのsourceを確認する

inspectモジュールのgetfileでソースコードのPATHが取得できる

import inspect
import glob

inspect.getfile(glob)
実行結果
'/Users/xxx-pc/.pyenv/versions/anaconda3-2021.05/lib/python3.8/glob.py'
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1