<jupyter_start><jupyter_text>メモpython 問題集をつくる。 colab ベース順不同* https://www.w3resource.com/python-exercises/* あのアルゴリズムはどこ？　Pythonを使用してAtCoderの緑色や水色を目指す方に、30以上のアルゴリズムスニペットと100問以上の問題（ACコード付き）を紹介！  https://qiita.com/H20/items/1a066e242815961cd043 ---問題 $\quad$ サンプル文字列 (きらきら星) を出力例のように整形して出力する。サンプル文字列 : "Twinkle, twinkle, little star, How I wonder what you are! Up above the world so high, Like a diamond in the sky. Twinkle, twinkle, little star, How I wonder what you are" 出力例 :```Twinkle, twinkle, little star,	How I wonder what you are! 		Up above the world so high,   				Like a diamond in the sky. Twinkle, twinkle, little star, 	How I wonder what you are```<jupyter_code>print("Twinkle, twinkle, little star, \n\tHow I wonder what you are! \n\t\tUp above the world so high, \n\t\tLike a diamond in the sky. \nTwinkle, twinkle, little star, \n\tHow I wonder what you are!")

# アイデア
# sample_string を 大文字で始まる文のリストに変換する
# Twinkle のとき \t の数 0
# それ以外は順に \t の数を増やすが max が 2 こ
# リストを 1 行ずつ出力する
import re
sample_string =  "Twinkle, twinkle, little star, How I wonder what you are! Up above the world so high, Like a diamond in the sky. Twinkle, twinkle, little star, How I wonder what you are"

strings = re.findall(r'[A-Z^I][a-zI ,.!]*', sample_string)
head = ""
for string in strings:
    if string[0] == "T":
        head = ""
    else :
        head = head+"\t"
        if len(head) >= 2 : head = "\t\t"
    string = head + string
    print (string)<jupyter_output>Twinkle, twinkle, little star, 
	How I wonder what you are! 
		Up above the world so high, 
		Like a diamond in the sky. 
Twinkle, twinkle, little star, 
	How I wonder what you are<jupyter_text>---問題 $\quad$ python のバージョンを出力する。<jupyter_code>import sys
print("Python version")
print (sys.version)
print("Version info.")
print (sys.version_info)

!python --version<jupyter_output>Python 3.7.10<jupyter_text>---問題 $\quad$ 現在の日付と時刻を出力する。<jupyter_code>import datetime
now = datetime.datetime.now()
print ("Current date and time : ")
print (now.strftime("%Y-%m-%d %H:%M:%S"))<jupyter_output>Current date and time : 
2021-05-15 08:49:26<jupyter_text>---問題 $\quad$ 円の半径を受け取り、面積を出力する。円の面積 = $\pi r^2$<jupyter_code>%%writefile temp.py
from math import pi
r = float(input ())
print ("The area of the circle with radius " + str(r) + " is: " + str(pi * r**2))
!echo 3 | python temp.py<jupyter_output>The area of the circle with radius 3.0 is: 28.274333882308138<jupyter_text>---問題 $\quad$ 整数 $n,x,t$ を受け取り、$n$ を $x$で割って、小数点以下を切り上げて、$t$ 倍して返す。例 : 3 8 5 => 5<jupyter_code>%%writefile temp.py
n,x,t = map(int, input().split())
print(-(-n//x)*t)
! echo 3 8 5 | python temp.py<jupyter_output>5<jupyter_text>---問題 $\quad$ 名前と姓を入力し、姓、名の順に出力する。例: <NAME> => Hello, <NAME>!<jupyter_code>%%writefile temp.py
firstname, lastname = input().split()
print("Hello, {} {}!".format(lastname,firstname))
! echo <NAME> | python temp.py<jupyter_output>Hello, <NAME>!<jupyter_text>---問題 $\quad$ カンマで区切られた数字を受け取り、リストとタプルの形で出力する。例 : 3, 5, 7, 23<jupyter_code>%%writefile temp.py
data = list(map(int,input().split(",")))
print(data)
print(tuple(data))
!echo 3,5,7,23 | python temp.py<jupyter_output>[3, 5, 7, 23]
(3, 5, 7, 23)<jupyter_text>---問題 $\quad$ ファイル名を受け取り、拡張子を切り取って出力する。例 : abc.java<jupyter_code>%%writefile temp.py
filename = input()
f_extns = filename.split(".")
print ("The extension of the file is : " + repr(f_extns[-1]))
!echo abc.java | python temp.py<jupyter_output>The extension of the file is : 'java'<jupyter_text>メモ $\quad$ repr() で引用符をつけている。`f_extns[-1]` としているのは this.is.filename.txt というようなファイル名対策。 ---問題 $\quad$ リストの最初の項目と最後の項目を出力する。color_list = ["Red","Green","White" ,"Black"]<jupyter_code>color_list = ["Red","Green","White" ,"Black"]
print( "%s %s"%(color_list[0],color_list[-1]))
print( "{} {}".format(color_list[0],color_list[-1]))<jupyter_output>Red Black
Red Black<jupyter_text>---問題 $\quad$ 入力例を出力例のフォーマットで出力する。exam_st_date = (11, 12, 2014)Sample Output: The examination will start from : 11 / 12 / 2014<jupyter_code>exam_st_date = (11,12,2014)
print( "The examination will start from : %i / %i / %i"%exam_st_date)

# 別解
import re
exam_st_date = "(11,12,2014)"
exam_st_date = re.sub('[()]','',exam_st_date)
exam_st_date = list(map(int,exam_st_date.split(',')))
print( "The examination will start from : {}/{}/{}".format(exam_st_date[0],exam_st_date[1],exam_st_date[2]))<jupyter_output>The examination will start from : 11/12/2014<jupyter_text>---問題 $\quad$ 整数 $n$ を受け取り、n+nn+nnn を返す。入力例 : 5 出力例 : 6155 + 55+ 555 => 15<jupyter_code>%%writefile temp.py
a = int(input())
n1 = int( "%s" % a )
n2 = int( "%s%s" % (a,a) )
n3 = int( "%s%s%s" % (a,a,a) )
print (n1+n2+n3)

!echo 5 | python temp.py<jupyter_output>615<jupyter_text>---問題 $\quad$ 組み込み関数のドキュメントを出力する。入力例 : abs()<jupyter_code>print(abs.__doc__)<jupyter_output>Return the absolute value of the argument.<jupyter_text>---問題 $\quad$ 年と月を読み込み、カレンダーを表示する。<jupyter_code>%%writefile temp.py
import calendar
y,m = map(int, input().split())
print(calendar.month(y, m))
!echo 2021 5 | python temp.py<jupyter_output>May 2021
Mo Tu We Th Fr Sa Su
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31<jupyter_text>---問題 $\quad$ 次のヒアドキュメントを出力する。入力例 :```a string that you "don't" have to escapeThisis a ....... multi-lineheredoc string --------> example```<jupyter_code>print("""
a string that you "don't" have to escape
This
is a  ....... multi-line
heredoc string --------> example
""")<jupyter_output>a string that you "don't" have to escape
This
is a  ....... multi-line
heredoc string --------> example<jupyter_text>---問題 $\quad$ 年、月、日を 2 つ読み込み、その間の日数を算出する。入力例 : 2014 7 2 2014 7 11出力例 : 9<jupyter_code>%%writefile temp.py
from datetime import date
y,m,d,y1,m1,d1 = map(int, input().split())
f_date = date(y,m,d)
l_date = date(y1,m1,d1)
delta = l_date - f_date
print(delta.days)

!echo 2014 7 2 2014 7 11 | python temp.py<jupyter_output>9<jupyter_text>---問題 $\quad$ 半径を 6 とした時の球の体積を求める。球の体積 : $\displaystyle V = \frac 4 3 \times \pi \times r^3 = \pi \times \frac{d^3}{6}$* $r =$ 半径* $d =$ 直径<jupyter_code>import math
r= 6.0
V= 4.0 / 3.0 * math.pi * r**3
print('The volume of the sphere is: ',V)<jupyter_output>The volume of the sphere is:  904.7786842338603<jupyter_text>---問題 $\quad$ 条件文 if 文を使う。 $n$ が 17 以下ならば 17 との差、17 よりも大きければ、17 との差を 2 乗したものを返す。入力例 : 22 17<jupyter_code>def difference(n):
    if n <= 17:
        return 17 - n
    else:
        return (n - 17) ** 2 

print(difference(22))
print(difference(14))<jupyter_output>25
3<jupyter_text>---問題 $\quad$ $n$ と 1000 または 2000 との差の絶対値が 100 以下かどうかを返す。<jupyter_code>def near_thousand(n):
      return ((abs(1000 - n) <= 100) or (abs(2000 - n) <= 100))
print(near_thousand(1000))
print(near_thousand(900))
print(near_thousand(800))   
print(near_thousand(2200))<jupyter_output>True
True
False
False<jupyter_text>---問題 $\quad$ $x,y,z$ の合計を計算する。 $x,y,z$ がすべて等しい時は合計を 3 倍して返す。<jupyter_code>def sum_thrice(x, y, z):
     sum = x + y + z
     if x == y == z:
      sum = sum * 3
     return sum
print(sum_thrice(1, 2, 3))
print(sum_thrice(3, 3, 3))<jupyter_output>6
27<jupyter_text>---問題 $\quad$ 与えられた文字列の頭に "Is" を加えて返す。 もし、すでに文字列が "Is" で始まっていたら、なにもせずに返す。<jupyter_code>def new_string(str):
  if len(str) >= 2 and str[:2] == "Is":
    return str
  return "Is" + str

print(new_string("Array"))
print(new_string("IsEmpty"))
print(new_string(""))<jupyter_output>IsArray
IsEmpty
Is<jupyter_text>---問題 $\quad$ 文字列 $str$ を $n$ 回繰返した結果を返す。<jupyter_code>def larger_string(str, n):
   result = ""
   for i in range(n):
      result = result + str
   return result

print(larger_string('abc', 2))
print(larger_string('.py', 3))<jupyter_output>abcabc
.py.py.py<jupyter_text>---問題 $\quad$ 標準入力から 整数 $n$ を得て、偶数かどうかを判定して返す。<jupyter_code>%%writefile temp.py
num = int(float(input()))
mod = num % 2
if mod > 0:
    print("This is an odd number.")
else:
    print("This is an even number.")
!echo 3 | python temp.py<jupyter_output>This is an odd number.<jupyter_text>---問題 $\quad$ 与えられたリストに 4 がいくつあるか数える。<jupyter_code>def list_count_4(nums):
  count = 0  
  for num in nums:
    if num == 4:
      count = count + 1

  return count

print(list_count_4([1, 4, 6, 7, 4]))
print(list_count_4([1, 4, 6, 4, 7, 4]))<jupyter_output>2
3<jupyter_text>--- 問題 $\quad$ 文字列 $str$ と正の整数 $n$ から、文字列の最初の 2 文字を $n$ 回繰返したものを返す。 文字列の長さが $n$ よりも短い場合は文字列全体を $n$ 回繰り返す。<jupyter_code>def substring_copy(str, n):
  flen = 2
  if flen > len(str):
    flen = len(str)
  substr = str[:flen]
  
  result = ""
  for i in range(n):
    result = result + substr
  return result
print(substring_copy('abcdef', 2))
print(substring_copy('p', 3))
print(substring_copy('abc', 5))
# 実験
def substring_copy(str, n):
  flen = 2
  if flen > len(str):
    flen = len(str)
  substr = str[:flen]
  return substr*n
print(substring_copy('abcdef', 2))
print(substring_copy('p', 3))
print(substring_copy('abc', 5))<jupyter_output>abab
ppp
ababababab<jupyter_text>---問題 $\quad$ 文字 $char$ が母音かどうかを判定する。<jupyter_code>def is_vowel(char):
    all_vowels = 'aeiou'
    return char in all_vowels
print(is_vowel('c'))
print(is_vowel('e'))<jupyter_output>False
True<jupyter_text>---問題 $\quad$ 要素がリストの元かどうかを返す。<jupyter_code>def is_group_member(group_data, n):
    for value in group_data:
        if n == value:
            return True
    return False
    
print(is_group_member([1, 5, 8, 3], 3))
print(is_group_member([5, 8, 3], -1))

# 実験
print(3 in [1, 5, 8, 3])
print(-1 in [5, 8, 3])<jupyter_output>True
False<jupyter_text>---問題 $\quad$ 整数のリストからヒストグラムを作る。<jupyter_code>def histogram( items ):
    for n in items:
        output = ''
        times = n
        while( times > 0 ):
          output += '*'
          times = times - 1
        print(output)

histogram([2, 3, 6, 5])

# 実験
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6,4))
ax = fig.add_subplot()
x = [2,2,4,4,4,4,6,6,6,6,6,6,5,5,5,5,5,5,5,5]
ax.hist(x)
plt.show()<jupyter_output><empty_output><jupyter_text>---問題 $\quad$ リストの要素をすべて文字列にして連結 concatenate する。<jupyter_code>def concatenate_list_data(list):
    result= ''
    for element in list:
        result += str(element)
    return result

print(concatenate_list_data([1, 5, 12, 2]))

# 実験
%%writefile temp.py
from functools import reduce
listdata = reduce(lambda a,b: a+b,input().split())
print(listdata)
!echo 1 5 12 and 2 | python temp.py<jupyter_output>1512and2<jupyter_text>---問題 $\quad$ 数字のリストから偶数だけを元のリストの順番に出力する。 ただし値が 237 で終了する。入力例 :numbers = [       386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345,       399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217,       815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717,       958,743, 527      ]<jupyter_code>numbers = [    
    386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345, 
    399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217, 
    815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717, 
    958,743, 527
    ]

for x in numbers:
    if x == 237:
        print(x)
        break;
    elif x % 2 == 0:
        print(x)
		
# 実験 できるだけ関数型プログラミング風に書く
numbers = [    
    386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345, 
    399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217, 
    815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717, 
    958,743, 527
    ]

if 237 in numbers :
    numbers = numbers[:numbers.index(237)]
    numbers = [n for n in numbers if n % 2 == 0] + [237]
else :
    numbers = [n for n in numbers if n % 2 == 0]

for n in numbers:
    print(n)<jupyter_output><empty_output><jupyter_text>---問題 $\quad$ color_list_1 にあって、color_list_2 にないものの集合を出力する。テストデータ :  color_list_1 = set(["White", "Black", "Red"])  color_list_2 = set(["Red", "Green"])  出力 :{'Black', 'White'}<jupyter_code>color_list_1 = set(["White", "Black", "Red"])
color_list_2 = set(["Red", "Green"])

print(color_list_1.difference(color_list_2))

print()
print(color_list_1.union(color_list_2))
print(color_list_1.intersection(color_list_2))
print(color_list_2.difference(color_list_1))<jupyter_output>{'White', 'Black'}

{'Green', 'White', 'Black', 'Red'}
{'Red'}
{'Green'}<jupyter_text>---問題 $\quad$ 三角形の底辺 $b$ と高さ $h$ を受け取り面積を計算する。<jupyter_code>%%writefile temp.py
b,h = map(int,input().split())
area = b*h/2
print("area = ", area)

!echo 20 40 | python temp.py<jupyter_output>area =  400.0<jupyter_text>---問題 $\quad$ 最大公約数を計算する。 gcd greatest common divisor<jupyter_code>def gcd(x, y):
    gcd = 1
    
    if x % y == 0:
        return y
    
    for k in range(int(y / 2), 0, -1):
        if x % k == 0 and y % k == 0:
            gcd = k
            break  
    return gcd

print(gcd(12, 17))
print(gcd(4, 6))

# 別解
import numpy
print(numpy.gcd(12, 17))
print(numpy.gcd(4, 6))
list(range(5000,0,-1))
# 別解 再帰 recursion バージョン
def gcd(x, y):
    if x % y == 0:
        return y
    else :
        return gcd(y, x % y)

print(gcd(12, 17))
print(gcd(4, 6))<jupyter_output>1
2<jupyter_text>---問題 $\quad$ 正の整数 2 個の最小公倍数を求める。 lcm least common multiple<jupyter_code>def lcm(x, y):
   if x > y:
       z = x
   else:
       z = y

   while(True):
       if((z % x == 0) and (z % y == 0)):
           lcm = z
           break
       z += 1

   return lcm
print(lcm(4, 6))
print(lcm(15, 17))

# 別解
from numpy import lcm
print(lcm(4, 6))
print(lcm(15, 17))<jupyter_output>12
255<jupyter_text>---問題 $\quad$ 整数 3 個、$x,y,z$ の合計を求める。 ただし、$x,y,z$ のうち 2 個が同じ値ならば、0 を返す。<jupyter_code>def sum(x, y, z):
    if x == y or y == z or x==z:
        sum = 0
    else:
        sum = x + y + z
    return sum

print(sum(2, 1, 2))
print(sum(3, 2, 2))
print(sum(2, 2, 2))
print(sum(1, 2, 3))<jupyter_output>0
0
0
6<jupyter_text>---問題 $\quad$ 整数 2 個、$x,y$ の合計を計算する。 ただし、合計が 15 と 20 の間の時は 20 を返す。<jupyter_code>def sum(x, y):
    sum = x + y
    if sum in range(15, 20):
        return 20
    else:
        return sum

print(sum(10, 6))
print(sum(10, 2))
print(sum(10, 12))<jupyter_output>20
12
22<jupyter_text>---問題 $\quad$ 整数 2 個 $x,y$ について、$x,y$ が同じ場合と、合計か差がちょうど 5 の場合に真 True を返す関数を作る。<jupyter_code>def test_number5(x, y):
    if x == y or abs(x-y) == 5 or (x+y) == 5:
        return True
    else:
        return False

print(test_number5(7, 2))
print(test_number5(3, 2))
print(test_number5(2, 2))<jupyter_output>True
True
True<jupyter_text>---問題 36 $\quad$ 2 つのオブジェクト $a,b$ について両方とも整数型の時に合計を返す。<jupyter_code># def add_numbers(a, b):
#     if not (isinstance(a, int) and isinstance(b, int)):
#          raise TypeError("Inputs must be integers")
#     return a + b

def add_numbers(a, b):
    if not (isinstance(a, int) and isinstance(b, int)):
         return ("Inputs must be integers")
    else :
        return a + b

print(add_numbers(10, 20))
print(add_numbers("ten","twenty"))
# 別解
def add_numbers(a, b):
    if not (type(a) == type(1) and type(b) == type(1)):
         return ("Inputs must be integers")
    else :
        return a + b

print(add_numbers(10, 20))
print(add_numbers("ten","twenty"))<jupyter_output>30
Inputs must be integers<jupyter_text>---問題 37 $\quad$ name, age, address を 3 行に分けて表示する。<jupyter_code>def personal_details():
    name, age = "Simon", 19
    address = "Bangalore, Karnataka, India"
    print("Name: {}\nAge: {}\nAddress: {}".format(name, age, address))

personal_details()

# 別解 items(): キーと値のペアを取得する
simon = {'name': 'Simon', 'age': 19, 'address': 'bangalore, karnataka, india'}

for item in simon.items():
    print(item[0], ":", item[1])<jupyter_output>name : Simon
age : 19
address : bangalore, karnataka, india<jupyter_text>---問題 38 $\quad$ $x,y$ について $(x + y) \times (x + y)$ を算出する。<jupyter_code>x, y = 4, 3
result = x * x + 2 * x * y + y * y
print("({} + {}) ^ 2) = {}".format(x, y, result))<jupyter_output>(4 + 3) ^ 2) = 49<jupyter_text>---問題 39 $\quad$ 元本、金利、年数を入力し、将来価値 future value を計算する。<jupyter_code>amt = 10000
int = 3.5
years = 7

future_value  = amt*((1+(0.01*int)) ** years)
print(round(future_value,2))<jupyter_output>12722.79<jupyter_text>---問題 40 $\quad$ 点 $(x1, y1)$ と 点 $(x2, y2)$ の間の距離を計算する。<jupyter_code>import math
p1 = [4, 0]
p2 = [6, 6]
distance = math.sqrt( ((p1[0]-p2[0])**2)+((p1[1]-p2[1])**2) )

print(distance)<jupyter_output>6.324555320336759<jupyter_text>メモ $\quad$ 点が円周上の点として、弧の長さを求めたいが、その前に、媒介変数を使って matplotlib で円を描く実験$x^2 + y^2 = 4$$x = 2 \cos\theta$$y = 2 \sin\theta$<jupyter_code># 実験 媒介変数を使って matplotlib で円を描く
# 点 の角度と半径が求められれば、弧の長さは 半径 * 角度の差
import numpy as np
import matplotlib.pyplot as plt

t = np.linspace(-np.pi, np.pi)

# 関数を記述
x = 2*np.cos(t)
y = 2*np.sin(t)

fig = plt.figure(figsize=(6,6))
ax = fig.add_subplot()

ax.plot(x, y)
ax.scatter([2,2*np.cos(1)],[0,2*np.sin(1)],c='r')
ax.plot([0,2],[0,0],'k-')
ax.plot([0,2*np.cos(1)],[0,2*np.sin(1)],'k-')

plt.show()<jupyter_output><empty_output><jupyter_text>---問題 41 $\quad$ ファイルの存在確認<jupyter_code>import os.path
open('abc.txt', 'w')
print(os.path.isfile('abc.txt'))
import os
print(os.path.exists('abc.txt'))
print(os.path.exists('temp.txt'))
print(os.path.isfile('temp.txt'))
print(os.path.isdir('sample_data'))<jupyter_output>True
False
False
True<jupyter_text>---問題 42 $\quad$ 現在の環境が 32ビットか 64 ビットかを調べる。<jupyter_code># For 32 bit it will return 32 and for 64 bit it will return 64
import struct
print(struct.calcsize("P") * 8)<jupyter_output>64<jupyter_text>---問題 43 $\quad$ osの名前、プラットフォーム、リリース情報を出力する。メモ $\quad$ `os.name` の結果は ubuntu とかではなく posix と出る。 windows だと nt と出るらしい。  platform.system() も windows だと Windows と出るとか。mac はどうなのだろうか。=> やってみた。 poxix, Darwin, 20.3.0 でした。<jupyter_code>import platform
import os
print(os.name)
print(platform.system())
print(platform.release())<jupyter_output>posix
Linux
5.4.109+<jupyter_text>---問題 44 $\quad$ python の site-package の場所を調べる。<jupyter_code>import site; 
print(site.getsitepackages())<jupyter_output>['/usr/local/lib/python3.7/dist-packages', '/usr/lib/python3/dist-packages', '/usr/lib/python3.7/dist-packages']<jupyter_text>---問題 45 $\quad$ python から外部コマンドを呼ぶ。次のセルはどうも失敗しているっぽい。<jupyter_code>from subprocess import call
call(["ls", "-l"])<jupyter_output><empty_output><jupyter_text>---問題 46 $\quad$ 現在実行中のファイルのパスと名前を入手する。<jupyter_code># 以下のプログラムはエラーになる
# NameError: name '__file__' is not defined
# __file__ に実行中のファイル名が入るのか?

# import os
# print("Current File Name : ",os.path.realpath(__file__))<jupyter_output><empty_output><jupyter_text>問題 47 $\quad$ 使用している CPU の数を調べる。メモ下のコードセルのプログラムの結果は 2 である。わたしのローカルの環境で```python -c 'import multiprocessing; print(multiprocessing.cpu_count())'```としたところ 結果は 6 であった。<jupyter_code>import multiprocessing
print(multiprocessing.cpu_count())<jupyter_output>2<jupyter_text>---問題 48 $\quad$ 文字列を float や integer に変換する。<jupyter_code>n = "246.2458"
print(float(n))
print(int(float(n)))<jupyter_output>246.2458
246<jupyter_text>---問題 49 $\quad$ ディレクトリーのファイルをすべてリストする。<jupyter_code>from os import listdir
from os.path import isfile, join
files_list = [f for f in listdir('sample_data') if isfile(join('sample_data', f))]
print(files_list);<jupyter_output>['README.md', 'anscombe.json', 'mnist_test.csv', 'california_housing_test.csv', 'california_housing_train.csv', 'mnist_train_small.csv']<jupyter_text>---問題 50 $\quad$ `print` を改行なし、スペース区切りなしで使う。<jupyter_code>for i in range(0, 10):
    print('*', end='', sep=',')<jupyter_output>**********<jupyter_text>---問題 51 $\quad$<jupyter_code><jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.17144184605854113, 'fraction_numerical': 0.06602653451035052, 'mean_word_length': 4.332232314891274, 'pattern_counts': {'":': 3, '<': 173, '<?xml version=': 0, '>': 184, 'https://': 2, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '53', 'dir': 'jupyter-structured-clean-dedup', 'id': '224098', 'license': 'MIT', 'n_tokens_mistral': 10176, 'n_tokens_neox': 9224, 'n_words': 1947, 'path': 'python_exercise.ipynb', 'repo_name': 'kalz2q/-yjupyternotebooks', 'size': '19384'}