1
0

More than 1 year has passed since last update.

PaizaラーニングでBランクを目指して勉強(Python)

Last updated at Posted at 2022-09-02

Qiita初投稿!
Bランクレベルアップメニューを解いていきます。

整数の足し算

問題リンク

a b を足し算

input   a b
output   a + b

n = input()

a = 0
for i in n.split():
    a += int(i)

print(a)

for分の range のところに .split() を入れられると思わなかった。

文字の長さ

word = input()

print(len(word))

一文字目だけ出力

word = input()
print(word[0])

大文字に変換

word = input()
print(word.upper())

関数とメソッドの違いがわからない…
upper(word) ではだめな理由が…

ここにわかりやすく書かれていました

print() とか len() が関数
変数.join() とか リスト.append() とか .(ドット)がつくのがメソッドみたい
(例外はあるようです)

AからBの数を出力

n = input().split()

a = int(n[0])
b = int(n[1])

for i in range(a,b+1):
    print(i)

範囲内を大文字

入力例
5 8
text text text

問題
5文字目から8文字目まで大文字に変換

期待される出力
text TEXt text


難しくて解けなかった…
回答を見ながらコードを修正

n = input().split()
p = input()

print(p[0:int(n[0]) - 1],end="")
print(p[int(n[0]) - 1:int(n[1])].upper(),end="")
print(p[int(n[1]):])

3回に分けてprintするのが意外とアナログで思いつかなかった。
(例)文字列とかリスト[5 : 8] コロンで範囲指定できるの、習ったかな…
完全に忘れてたか、知らなかった。

リストの出力

li = ["Nara", "Shiga", "Hokkaido", "Chiba"]

for i in range(4):
    print(li[i])

一文字ずつ出力

word = input()

length = int(len(word))

for i in range(length):
    print(word[i])

文字数を変数にしてfor文で出力しました。

word = input()

for i in word:
    print(i)

解答見たら、もっと簡単にコーディングできたみたいでした:joy:

文字の重複をカウント

入力例
a
aaaabbbbcccc

問題
2行目の入力に1行目の文字が何文字含まれているか数える

期待される出力
4

number = input()
string = input()

count = 0

for i in string:
    if i == number:
        count += 1

print(count)

答え見ずに解けた!うれしい!

逆に解答が
len関数で長さを測って…
変数を駆使していてよくわからなかった…

n文字目とn+1文字目を出力

※ n の数が文字列より大きい場合は何も出力しない

num = int(input())
word = input()

if num < int(len(word)):
    print(word[num - 1] + " " + word[num])

これも答え見ずに解けて嬉しかったです!

文字の重複カウント

問題
1行目の文字列 a が、2行目の文字列 b に何回現れるかを出力

入力例
AA
AAAaaaaAA

出力
3

key = input()
string = input()

count = 0

for i in range(len(string) - len(key) + 1): #ここが謎 1文字だったら±0 それ以上は - になる
    word = string[i : i + len(key)] # string[keyの長さ分]を変数に代入
    
    if word == key: # ループ中に key と word が同じなったとき+1
        count += 1

print(count)

難しくて全然わからなかった:sob:
答え見てもわからないところがいっぱい…

# 上下省略
for i in range(len(string)): #まさかのこれでも正解だった

解答の詳細を聞きたい!

リストの2番目だけ出力

count = int(input())

for i in range(count):
    print(input().split()[1])

解答見て単純化したコード
split()からいきなり[1]できるとは驚いた

ソートして出力

入力例
3(数字何個か)
2 3 1

出力
1
2
3

n = int(input())
string = input().split()

li = []

for i in string:
    li.append(int(i))

li.sort()

for i in range(n):
    print(li[i])

答え見ちゃったー
ソート関数しってたような、しらなかったような…

文字と整数の組のソート

入力例
3
G 0
S 3
E -2

出力
E
G
S

n = int(input())
dic = {} # 辞書

for i in range(n):
    parts = input().split()
    dic[int(parts[1])] = parts[0] # 辞書のキーに代入 

dic = sorted(dic.items())

for i in dic:
    print(i[1])

急にめちゃくちゃ難しくなった気がする:joy:
答えみても理解が追い付かない…

辞書のキーに代入した後の出力
{1: 'A', 2: 'B'}

辞書復習しないと

アルファベット探し

問題
入力1行目X 入力2行目Y X~Yの間に入力3行目Cが
含まれていたら true を出力
なければ false を出力

入力例
A
F
D

出力
true

start = input()
end = input()
target = input()

startNum = 1
endNum = 1
targetNum = 1

result = "false"

li = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]

for i in li:
    if i == start:
        break
    else:
        startNum += 1

for i in li:
    if i == end:
        break
    else:
        endNum += 1

for i in li:
    if i == target:
        break
    else:
        targetNum += 1

if startNum <= targetNum <= endNum:
    result = "true"

print(result)

自力で解けて嬉しい!
有料プラン抜けたので、Fainal問題だけ解いていきますw


随時追記しています

1
0
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
1
0