-
リスト内包表記を使用して、次の要件を完了します。
a。1〜100のビット数3でデータリストを生成します。
结果为 [3, 13, 23, 33, 43, 53, 63, 73, 83, 93] print([num for num in range(1, 101) if num % 10 == 3])
b。リストプッシュを使用して、リスト内の整数を抽出します。
例如:[True, 17, "hello", "bye", 98, 34, 21] --- [17, 98, 34, 21] list1 = [True, 17, "hello", "bye", 98, 34, 21] print([element for element in list1 if type(element) == int])
c。リスト内包表記を使用して、指定されたリストに文字列の長さを格納します。
例如 ["good", "nice", "see you", "bye"] --- [4, 4, 7, 3] list1 = ["good", "nice", "see you", "bye"] print([len(element) for element in list1])
d。dict_list= [{"Subject": "Politics"、 "Score":98}、{"Subject": "Chinese"、 "Score":77}、{"Subject": "Mathematics"、 "Score": 99}、{"Subject": "History"、 "Achievements":65}]
リスト内のスコアが70未満の辞書を削除します[完全なリスト内包表記]
结果为: [{ “科目”:“政治”, “成绩”:98}, { “科目”:“语文”, “成绩”:77}, { “科目”:“数学”, “成绩”:99}] dict_list = [{ '科目': '政治', '成绩': 98}, { '科目': '语文', '成绩': 77}, { '科目': '数学', '成绩': 99}, { '科目': '历史', '成绩': 65}] print([element for element in dict_list if element['成绩'] >= 70])
-
1 + 2 + 3 +…Nの合計を求める関数を書く
def sum_1_to_N(n): sum1 = 0 for num in range(1, n+1): sum1 += num print(sum1) sum_1_to_N(5)
-
複数の数値の中から最大値を見つける関数を書く
def find_max(*args): max_num = 0 for num in args: if num > max_num: max_num = num print(max_num) find_max(1, 2, 3, 4, 5, 2, 3, 4, 2)
-
ダイスを転がす機能を実現する関数を書いて、ポイントとNダイスの数を印刷します
def sum_dice(n): import random sum1 = 0 for time in range(1, n+1): digit = random.randint(1, 6) sum1 += digit print('第', time, '个骰子点数是', digit, sep='') print('N个骰子的点数和为', sum1) sum_dice(3)
-
指定された辞書のキーと値を交換する関数を記述します。
例如:dict1={
'a':1, 'b':2, 'c':3} --> dict1={
1:'a', 2:'b', 3:'c'}
def swap(**dict1):
print({
dict1[key]: key for key in dict1})
swap(a=1, b=2, c=3)
-
指定した文字列のすべての文字を抽出し、それらをつなぎ合わせて新しい文字列を生成する関数を記述します
例如: 传入'12a&bc12d-+' --> 'abcd' def letter_joint(str1): list_new = [character for character in str1 if 'A' <= character <= 'Z' or 'a' <= character <= 'z'] print(''.join(list_new)) letter_joint('12a&bc12d-+')
-
複数の数値の平均を求める関数を書く
def mean(*args): print(sum(args) / len(args)) mean(1, 3, 5)
-
デフォルトで10の因数分解を計算するだけでなく、他の数値の因数分解も見つける関数を記述します
def factorial(num=10): factorial1 = 1 for num in range(1,num+1): factorial1 *= num print(factorial1) factorial()
=======注:次のメソッドは、システムが提供するメソッドと関数を使用できず、すべて独自のロジックを記述します
-
指定された文字列の最初の文字を大文字に変換できる独自の大文字化関数を作成します
例如: 'abc' -> 'Abc' '12asd' --> '12asd' def my_capitalize(str1): list1 = list(str1) char1 = list1[0] if 'a' <= char1 <= 'z': list1.remove(char1) ch1 = chr(ord(char1)-32) list1.insert(0, ch1) print(''.join(list1)) my_capitalize('python')
-
独自のendswith関数を記述して、文字列が指定された文字列で終了したかどうかを判別します
例如: 字符串1:'abc231ab' 字符串2:'ab' 函数结果为: True 字符串1:'abc231ab' 字符串2:'ab1' 函数结果为: False def my_endswich(str1, str2): len2 = len(str2) if str1[-len2:] == str2: print(True) else: print(False) my_endswich('abc231ab', 'ab')
-
独自のisdigit関数を記述して、文字列が純粋なデジタル文字列であるかどうかを判断します
例如: '1234921' 结果: True
'23函数' 结果: False
'a2390' 结果: False
def my_isdigit(str1):
for char in str1:
if not('0' <= char <= '9'):
print(False)
break
else:
print(True)
my_isdigit('1421b')
-
文字列内のすべての小文字を大文字に変換する独自の大文字関数を作成します
例如: 'abH23好rp1' 结果: 'ABH23好RP1' def my_upper(str1): list1 = [chr(ord(char)-32) if 'a' <= char <= 'z' else char for char in str1] print(''.join(list1)) my_upper('abH23好rp1')
-
独自のrjust関数を作成し、指定された長さの文字列を作成します。元の文字列は新しい文字列に右揃えで配置され、残りの部分は指定された文字で埋められます。
例如: 原字符:'abc' 宽度: 7 字符:'^' 结果: '^^^^abc'
原字符:'你好吗' 宽度: 5 字符:'0' 结果: '00你好吗'
def my_rjust(str1, width, str2):
len1 = len(str1)
len2 = width - len1
str3 = str2*len2+str1
print(str3)
my_rjust('你好吗', 5, '0')
-
指定されたリスト内の指定された要素のすべての添え字をカウントする独自のインデックス関数を作成します。リストに指定された要素がない場合は、-1を返します。
例如: 列表: [1, 2, 45, 'abc', 1, '你好', 1, 0] 元素: 1 结果: 0,4,6 列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'] 元素: '赵云' 结果: 0,4 列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'] 元素: '关羽' 结果: -1 def my_index(list1, element1): list2 = [] count = 0 len1 = len(list1) for index1 in range(len1): if list1[index1] == element1: list2.append(index1) count += 1 if count == 0: print(-1) else: print(list2) my_index(['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'], '赵云')
-
指定されたシーケンスの要素の数をカウントする独自のlen関数を作成します
例如: 序列:[1, 3, 5, 6] 结果: 4 序列:(1, 34, 'a', 45, 'bbb') 结果: 5 序列:'hello w' 结果: 7 def my_len(args): count = 0 for element in args: count += 1 print(count) my_len('hello w')
-
指定されたシーケンスの要素の最大値を取得するために、独自のmax関数を記述します。シーケンスが辞書の場合、辞書の最大値を取ります
例如: 序列:[-7, -12, -1, -9] 结果: -1 序列:'abcdpzasdz' 结果: 'z' 序列:{ '小明':90, '张三': 76, '路飞':30, '小花': 98} 结果: 98 def my_max(arg): if type(arg) == dict: list1 = [key for key in arg] max1 = arg[list1[0]] for key in arg: if arg[key] > max1: max1 = arg[key] print(max1) else: max1 = arg[0] for element in arg[1:]: if element > max1: max1 = element print(max1) my_max({ '小明': 90, '张三': 76, '路飞': 30, '小花': 98})
-
指定された要素が指定されたシーケンスに存在するかどうかを判断するために、独自の操作を実装する関数を記述します
例如: 序列: (12, 90, 'abc') 元素: '90' 结果: False 序列: [12, 90, 'abc'] 元素: 90 结果: True def my_in(arg1, arg2): for element in arg1: if element == arg2: print(True) break else: print(False) my_in([12, 90, 'abc'], 90)
-
指定された文字列で指定された古い文字列を指定された新しい文字列に変換する独自の置換関数を作成します
例如: 原字符串: 'how are you? and you?' 旧字符串: 'you' 新字符串:'me' 结果: 'how are me? and me?'