PythonプログラミングノックDay166 初心者向けLv.2 #プログラミング #python #初心者

初心者

初心者向けのPythonのプログラミング問題です。入門編としてチャレンジしてください。Pythonの正答例は以下になります。

問題496
def reverse_square_even(lst):
evens = [x**2 for x in lst if x % 2 == 0]
result = []
for x in lst:
if x % 2 == 0:
result.append(evens.pop()) # 逆順で挿入
else:
result.append(x)
return result

# 使用例
nums = [1, 2, 3, 4]
print(reverse_square_even(nums)) # 出力: [1, 16, 3, 4]

問題497
def first_negative_and_positive(lst):
neg = pos = None
for x in lst:
if x < 0 and neg is None:
neg = x
if x > 0 and pos is None:
pos = x
if neg is not None and pos is not None:
break
return (neg, pos)
#<と>は半角記号に変換

# 使用例
nums = [0, -3, 4, -5, 6]
print(first_negative_and_positive(nums)) # 出力: (-3, 4)

問題498
def index_with_neighbors(s, char):
for i, c in enumerate(s):
if c == char:
prev_char = s[i-1] if i > 0 else None
next_char = s[i+1] if i < len(s)-1 else None
return (i, prev_char, next_char)
return None
#>と<は半角記号に変換

# 使用例
text = “hello”
print(index_with_neighbors(text, ‘l’)) # 出力: (2, ‘e’, ‘l’)

コメント

タイトルとURLをコピーしました