【python】文字列を分割する

〇まとめ

N = ‘6 4 9 12 3 7’
print(N)

NL = N.split()

print(NL)
print(NL[0])
print(type(NL[0]))

L = ‘6,  4,  9,  12,  3,  7’
print(L)
LL = L.split(‘,’)
print(LL)
for i in range(6):
    LL[i] = int(LL[i])
print(LL)

6 4 9 12 3 7
[‘6’, ‘4’, ‘9’, ’12’, ‘3’, ‘7’]
6
<class ‘str’>
6, 4, 9, 12, 3, 7
[‘6’, ‘ 4’, ‘ 9’, ‘ 12’, ‘ 3’, ‘ 7’]
[6, 4, 9, 12, 3, 7]

〇詳細

Nを「6 4 9 12 3 7」という文字列とします。

N = ‘6 4 9 12 3 7’
print(N)
# 6 4 9 12 3 7

spilt を使って、文字列を分割出来ます。
引数を省略した場合、デフォルトでは空白で分割される

NL = N.split()
print(NL)
# [‘6’, ‘4’, ‘9’, ’12’, ‘3’, ‘7’]

分割した文字列は、リスト型になる。
リストの先頭は「6」となるが、数値ではなく文字のまま。
数値への変換は後述。

print(NL[0])
# 6

print(type(NL[0]))
# <class ‘str’>

今度は、「,」で区切られた数値を文字列とします。

L = ‘6, 4, 9, 12, 3, 7’
print(L)

# 6, 4, 9, 12, 3, 7

文字列にあわせて、今回は「,」で文字列を分割します。
分割後は前回同様文字です。

LL = L.split(‘,’)
print(LL)
# [‘6’, ‘ 4’, ‘ 9’, ‘ 12’, ‘ 3’, ‘ 7’]

以下のようにして、各文字列を数値に変換できます。(各文字が整数の場合)

for i in range(6):
    LL[i] = int(LL[i])
print(LL)
# [6, 4, 9, 12, 3, 7]

【python】メモ210815 pandas試行

import pandas as pd
df = pd.DataFrame([

    [1,2,3],
    [4,5,6],
    [7,8,9]
])
#print(df)

df = pd.read_csv(‘C:\work\python\excel\z210815_data.csv’, header = 2)
#print(df)

print(df.head(3))
#print(df.tail())

df2 = pd.read_excel(‘C:\work\python\excel\z210815_data.xlsx’, header = 2)
print(df2.head(3))

df3 = pd.read_excel(‘C:\work\python\excel\z210815_data.xlsx’, header = 2, sheet_name=’s2′)

print(df3.head(3))
print(df3[“value”])

print(df3[[“value”]])
print(df3[[“y”, “value”]])
print(df3.iloc[:,0:4])
print(df3.iloc[:,:-1])
print(df3[df3[‘value’] > 23]) #valueが24以上を表示
print(df3.sort_values(by = ‘value’).head())

print(df3.mean())
print(df3.std())
print(df3.describe())

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ [ 森 巧尚 ]
価格:2178円(税込、送料無料) (2021/8/9時点)

楽天で購入

【python】メモ210812 pyautogui試行

import pyautogui as pgui
import time

pgui.FAILSAFE = True

time.sleep(1)


#pgui.position()  #マウスの現在位置取得(左上が 0,0)
#print(pgui.position())

pgui.size()  #画面全体のサイズ
#print(pgui.size())


#pgui.click()
pgui.click(x=53, y=1063, duration=1.0)
time.sleep(0.8)
pgui.write(‘edge’, 0.2)
time.sleep(0.8)
pgui.hotkey(‘Enter’)
time.sleep(1.8)
#pgui.screenshot(“s001.png”, region=(0,10,400,300))

pgui.hotkey(‘home’, ‘alt’)

pgui.keyDown(‘alt’)
pgui.press(‘home’)
pgui.keyUp(‘alt’)

edge_home = pgui.locateOnScreen(‘edge_home.png’ , confidence=0.9)
print(edge_home)


pgui.click(edge_home, duration=1.0)
time.sleep(0.8)
#pgui.hotkey(‘alt’,’f4′)

【python】事例3

〇問題

入力は以下の形式で標準入力から与えられる

A B C D E F

入力値はすべて整数。6つすべて異なる。1以上100以下。

3番目に大きい整数を出力する

〇解答例

N = input()
NL = N.split()

for i in range(6):
    NL[i] = int(NL[i])
NL3 = sorted(NL)
print(NL3[3])

【python】事例2

〇問題

標準入力から、以下のようにN日間の売り上げが入力される。

N
A1
A2
・・・
AN

2日目以降の各日において、前日の売上からの増減を出力する。
 ・前日と同じ場合は「stay」を表示
 ・増減があった場合「up」「down」を表示し、変化量もあわせて出力

〇解答例

N = input()
N = int(N)

uriage = []

for i in range(N):
    uri= input()
    uriage.append(int(uri))

for i in range(N-1):
    ud = uriage[i+1]-uriage[i]
    if ud == 0:
        print(‘stay’)
    elif ud > 0:
        print(‘up ‘ + str(abs(ud)))
    else:
        print(‘down ‘ + str(abs(ud)))

【python】事例1

〇問題

標準入力から3桁の文字列が入力される。
数字の場合、2倍した数を出力。
数字以外の場合、「error」を出力する。

〇解答例

S = input()

try:
    S = int(S)*2
except:
    S = str(“error”)
print(S)

【python】現在の時刻を文字列として抽出

〇まとめ

import datetime

now = datetime.datetime.now()


print(now)
print(‘{0:%Y%m%d}’.format(now))
print(‘{0:%H%M%S}’.format(now))
print(‘out_{0:%Y%m%d}_{0:%H%M%S}.xlsx’.format(now))

2021-10-10 14:22:16.719524
20211010
142216
out_20211010_142216.xlsx

〇詳細

日付や時刻を扱うにはdatetimeモジュールを使用します。

import datetime

現在の日付と時刻を取得します。

now = datetime.datetime.now()

「now」に日時が入っていることが確認できます。

print(now)
# 2021-08-10 23:14:10.582566

フォーマットを変更して日付を取得したり、

print(‘{0:%Y%m%d}’.format(now))
# 20210810

時間を取得したりできます。

print(‘{0:%H%M%S}’.format(now))
# 231410

他の文字列と組み合わせることもできます。

print(‘out_{0:%Y%m%d}_{0:%H%M%S}.xlsx’.format(now))
# out_20210810_231410.xlsx

【python】文字列から一文字取り出す

〇まとめ

name = ‘abcdefghi’

print(name)
print(name[0])
print(name[3])
print(name[-1])
print(name[-5])

abcdefghi
a
d
i
e

〇詳細

<出力>

nameを「abcdefghi」という文字列にして

name = ‘abcdefghi’

nameを出力すると、当然「abcdefghi」となります。

print(name)
# abcdefghi

nameの後ろに[(正の数)]をつけると、特定の文字を取り出すことができます。
ちなみに、先頭の文字を抽出するためには、「0」を入力します。

print(name[0])
# a

4番目の文字を取り出すためには、「3」を入力します。

print(name[3])
# d

マイナスの値を入力すると、文字列の末尾からカウントされるようになります。
ちなみに、末尾の文字を抽出するためには、「-1」を入力します。

print(name[-1])
# i

「-5」を入力すると、後ろから5番目の「e」が取り出せます。

print(name[-5])
# e

【python】文字列の一部を取り出す

〇まとめ

name = ‘abcdefghi’

print(name)
print(name[:2])
print(name[2:])
print(name[:-2])
print(name[-2:])

print(name[2:5])
print(name[2:-2])

abcdefghi
ab
cdefghi
abcdefg
hi

cde
cdefg

〇詳細

<出力>

nameを「abcdefghi」という文字列にして

name = ‘abcdefghi’

nameを出力すると、当然「abcdefghi」となります。

print(name)
# abcdefghi

nameの後ろに[:(正の数)]をつけると、前から指定した文字数を抽出します。

print(name[:2])
# ab

nameの後ろに[(正の数):]をつけると、前から指定した文字数を削除します。

print(name[2:])
# cdefghi

nameの後ろに[:(負の数)]をつけると、後ろから指定した文字数を削除します。

print(name[:-2])
# abcdefg

nameの後ろに[(負の数):]をつけると、後ろから指定した文字数を抽出します。

print(name[-2:])
# hi

nameの後ろに[(正の数):(正の数)]をつけると、以下のように前後の指定した文字数を抽出できます。

print(name[2:5])
# cde

nameの後ろに[(正の数):(負の数)]をつけると、以下のように前後の指定した文字数を抽出できます。

print(name[2:-2])
# cdefg