python関数の運用の練習問題の総括

4903 ワード

1. Write a Python program to reverse a string. Sample String : "1234abcd"Expected Output : "dcba4321"
(この問題は文字列を反転することです)
def string_nu(str2):
  str1 = ''
  dfg=len(str2)
  while dfg > 0:
    str1 += str2[dfg-1]
    dfg= dfg-1
  return str1
print(string_nu("12345asdf"))

印刷結果
fdsa54321

構想は後から前へ、もちろんこの問題も再帰的な方法で処理することができます.
def func(s):
    if len(s) <1:
        return s
    return func(s[1:])+s[0]
s="123sad"
print(func(s))

印刷結果
das321

再帰法の肝心なステップはreturn func(s[1:])+s[0]であり,また文字列の終了条件判断もある.
2.数値(負の整数ではない)の乗算を計算するPython関数.関数は、数値をパラメータとして受け入れます.
​
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
n=int(input("Input is : "))
print(factorial(n))

印刷結果
Input is :  4
24

3.Write a Python function to check whether a number is in a given range.
def test_range(n):
  if n in range(3,9):
    print(" %s is right"%str(n))
  else:
    print("no")
test_range(5)

印刷結果
5 is right

4 Write a Python function that accepts a string and calculate the number of upper case letters and lower case letters. Sample String : 'The quick Brow Fox'Expected Output :  No. of Upper case characters : 3 No. of Lower case Characters : 12
def string_test(s):
    d={"UPPER_CASE":0, "LOWER_CASE":0}
    for c in s:
        if c.isupper():
           d["UPPER_CASE"]+=1
        elif c.islower():
           d["LOWER_CASE"]+=1
        else:
           pass
    print ("Original String : ", s)
    print ("No. of Upper case characters : ", d["UPPER_CASE"])
    print ("No. of Lower case Characters : ", d["LOWER_CASE"])

string_test('The quick Brow Fox')

印刷結果
Original String :  ThequickBrowFox
No. of Upper case characters :  3
No. of Lower case Characters :  12

この問題は文字列サイズのアルファベットがisupper()関数とislower()関数を呼び出したと判断します.
5.Pythonプログラムを作成して、関数に宣言されたローカル変数の数を検出する
Write a Python program to detect the number of local variables declared in a function.
def vbn():
  x = 1
  i = 1
  y = 2
  z = 5
print(vbn.__code__.co_nlocals)

印刷結果

6.
Pythonプログラムを作成して関数内部の関数にアクセスします
def test(a):
        def add(b):
                nonlocal a
                return a+b
        return add
func= test(4)
print(func(4))

印刷結果
8

nonlocalはネストされた関数の内部関数に適用され、外部変数の値を変更します.
globalは関数内部でグローバル変数の値を変更するのに適しています.globalとnonlocalキーワード
7.Write a Python function that takes a list and returns a new list with unique elements of the first list.Sample List : [1,2,3,3,3,3,4,5]Unique List : [1, 2, 3, 4, 5]
def unique_list(l):
  x = []
  for a in l:
    if a not in x:
      x.append(a)
  return x

print(unique_list([1,2,3,3,3,3,4,5])) 

印刷結果
[1, 2, 3, 4, 5] 

この問題はPython List append()メソッドを用い,append()メソッドはリストの末尾に新しいオブジェクトを追加するために用いられる.
append()メソッド構文:
list.append(obj)  ,obj --           。

8.Write a Python program to print the even numbers from a given list.Sample List : [1, 2, 3, 4, 5, 6, 7, 8, 9] Expected Result : [2, 4, 6, 8]
この問題は7番目の問題と似ています.コードは以下の通りです.
def u_list(l):
    x = [ ]
    for z in l :
        if z % 2 == 0 :
            x.append(z)
    return x

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

印刷結果
[2, 4, 6, 8]

9.Python関数を作成し、数値をパラメータとし、数値が素数であるかどうかを確認します.
注意:素数(または素数)は1より大きい自然数であり、1とそれ自体を除いて正の因数はありません.
​
def v_ans(l):
    if l == 1:
        return False
    elif l == 2:
        return True
    else:
        for x in range(2,l):
            if l % x == 0:
                return False
        return  True

print(v_ans(3))

​

印刷結果
​
True

10.Python関数を作成し、渡された文字列が返信されているかどうかを確認します.
def u_string(var):
    left_var = 0
    right_var = len(var) - 1
    while right_var >= left_var:
        if not var[left_var] == var[right_var]:
            return False
        left_var +=1
        right_var -=1
    return True

print(u_string("acbcdcbca"))

印刷結果
True

11.Python関数を作成し、文字列がpangramであるかどうかを確認します.
注意:Pangramsとは、少なくとも1回のアルファベット表の各アルファベットを含む単語または文を指します.
import string, sys
def ispangram(str1, alphabet=string.ascii_lowercase):
    alphaset = set(alphabet)
    return alphaset <= set(str1.lower())
 
print ( ispangram('The quick brown fox jumps over the lazy dog')) 

印刷結果
True