目次
1.ストリング
トピック1 [強化トレーニング]
質問の語幹
次の文字列を保存するために変数を使用する必要がある場合、コードをどのように記述しますか
魯迅は言った:「私はこの文を言っていません」
トレーニングの目標
文字列をネストする方法を生徒に知らせます
トレーニングのヒント
Pythonには、文字列型として定義できる2つの式がありますが、どちらの2つの方法がありますか?それらを混在させることはできますか?
参照計画
「」と「」を使用して文字列を定義します
ステップ
-
文字列
双引号""
に含めるには、文字列を一重引用符で定義できます -
文字列
单引号''
に含めるには、文字列を二重引用符で囲むことができます
参考回答
# 在python中,''可以嵌套在""中,用以表示字符串中的字符串
words = "鲁迅说:'我没有说过这句话'"
print(words)
# 还可以使用三引号
words = """鲁迅说:'我没有说过这句话'"""
print(words)
トピック2 [強化トレーニング]
質問の語幹
シンプルなユーザー情報管理システムを作る:名前、年齢、趣味を順番に入力するようにユーザーに促し、入力が完了すると、ユーザーが入力したデータがすぐに表示されます
トレーニングの目標
文字列宣言文字列入力文字列出力
トレーニングのヒント
-
Pythonでは、文字列型の変数を「」または「」で宣言します
-
input()関数を使用して、キーボードからデータを取得します
-
%sフォーマット演算子による出力文字列型
参照計画
-
入力関数を使用して文字列データを入力します
-
文字列型を使用して、入力したデータを保存します
-
保存されたデータをフォーマットして出力するには、%sを使用します
ステップ
-
入力関数を使用して文字列データを入力します
-
文字列型を使用して、入力したデータを保存します
-
保存されたデータをフォーマットして出力するには、%sを使用します
参考回答
# 录入数据,并保存在变量中
name = input("请输入姓名:")
age = input("请输入年龄:")
hobby = input("请输入您的爱好:")
# 格式化输出数据
print("您的姓名是%s, 您的年龄是%s, 您的爱好是%s" % (name, age, hobby))
# 使用 f-string
print(f"您的姓名是{name}, 您的年龄是{age}, 您的爱好是{hobby}")
トピック3 [強化トレーニング]
質問の語幹
既存の文字列は次のとおりです。スライスを使用してcegwords = "abcdefghi"を抽出してください
トレーニングの目標
スライスストリングの使用
トレーニングのヒント
1.スライス構文:[start:end:step] 2.選択された間隔は、「開始」ビットから始まり、「終了」ビットの前のビットで終了します(終了ビット自体は含まれません)。3。ステップ長は選択間隔、デフォルトのステップサイズは正です。つまり、左から右に選択します。ステップサイズが負の場合は、右から左に選択します。
参照計画
1.スライスを使用して切片を作成します。開始位置は-7、終了位置は-1 2、逆選択、ステップサイズは2です。
ステップ
-
開始位置は-7、終了位置は-1、ステップサイズは2です。
参考回答
a = "abcdefghi"
b = a[-7:-1:2]
print(b)
トピック4 [強化トレーニング]
質問の語幹
ジェームズはクローラーに関するプロジェクトを持っています。彼は文字列でキーワードpythonを検索する必要があります。現在、彼はindex()関数を検索しています。検索要件を満たすことはできますが、キーワードが見つからない場合は常にエラーを報告します。 、なぜエラーが発生し、どのように最適化するのですか?
トレーニングの目標
-
検索機能とインデックス機能の違いを理解する
トレーニングのヒント
-
find関数は、インデックス値が見つかった場合はインデックス値を返し、見つからなかった場合は-1を返します。
-
インデックス関数は、インデックス値が見つかった場合はそれを返し、見つからなかった場合はエラーを報告します。
参照計画
-
検索機能を使用してインデックスを置き換えます
ステップ
-
検索機能を使用してインデックスを置き換えます
参考回答
只需要使用find函数替换掉index函数即可,在功能上, find函数index函数完全一致,不同的是index函数在没有查找到关键字的情况下会报ValueError的异常,因此在一般开发环境下通常都会使用find函数
トピック5 [強化トレーニング]
質問の語幹
1.偉大な単語が文字列wordsに含まれているかどうかを確認します。含まれている場合は、各greatの後にsを追加します。含まれていない場合は、そのgreatが文字列に含まれていないことを出力します。2。文字列全体のすべての単語を小文字に変更します。そして、各単語の最初の文字を大文字3にし、最初と最後の空白を削除して、処理された文字列を出力します
words = " great craTes Create great craters, But great craters Create great craters "
トレーニングの目標
-
文字列関連の操作
トレーニングのヒント
-
上記の問題を解決するための文字列関連の操作
-
判決文を使用して、判決が真である条件を判断します
参照計画
-
inを使用して、特定の部分文字列が親文字列に含まれているかどうかを判断します
-
置換関数を使用して部分文字列を置換します
-
文字列を小文字に変更するには、lower関数を使用します
-
タイトル関数を使用して、単語の最初の文字を大文字にします
-
ストリップ関数を使用して、文字列の最初と最後の空白を削除します
ステップ
-
inを使用して、特定の部分文字列が親文字列に含まれているかどうかを判断します
-
置換関数を使用して部分文字列を置換します
-
文字列を小文字に変更するには、lower関数を使用します
-
タイトル関数を使用して、単語の最初の文字を大文字にします
-
ストリップ関数を使用して、文字列の最初と最後の空白を削除します
参考回答
words = " great craTes Create great craters, But great craters Create great craters "
# 判断单词great是否在这个字符串中
if 'great' in words:
# 将每一个great替换成greats
words = words.replace("great", "greats")
# 将单词变成小写
words = words.lower()
# 将每一个单词的首字母都大写
words = words.title()
# 去除首尾的空白
words = words.strip()
# 最后进行输出
print(words)
else:
print("great不在该字符串中")
2.リスト
トピック1 [強化トレーニング]
質問の語幹
リストがあり、リスト内の各要素がsまたはeで終わっているかどうかを判断し、そうである場合は、それを新しいリストに入れて、最後に新しいリストを出力します。
list = ["red", "apples", "orange", "pink", "bananas", "blue", "black", "white"]
トレーニングの目標
リストのループと値の取得、およびリストの操作方法を生徒に知らせます
トレーニングのヒント
-
リスト内のすべての要素を見つける方法は?
-
リスト内の要素がどの文字で終わるかを判断するにはどうすればよいですか?
参照計画
-
ループを使用してリスト内のすべての要素を取得しますか?
-
リスト内の要素は文字列であるため、添え字[-1]を使用して最後の文字の値を取得し、判断することができます。
ステップ
-
リスト内の各要素をトラバースします
-
最後の文字が
s
またはであるかどうかを決定する場合e
-
そうである場合は、append()メソッドを使用してデータを新しいリストに追加します。
参考回答
my_list = ["red", "apples", "orange", "pink", "bananas", "blue", "black", "white"]
# 用来存放以e或者s结尾的字符串
new_list = []
for i in my_list:
# 判断列表中每一个元素是否以s或e结尾
if i[-1] == 's' or i[-1] == 'e':
new_list.append(i)
# 打印出这个新的列表
print(new_list)
方法2:
文字列内のメソッドを使用して判断します。
my_list = ["red", "apples", "orange", "pink", "bananas", "blue", "black", "white"]
# 用来存放以e或者s结尾的字符串
new_list = []
for i in my_list:
# 判断列表中每一个元素是否以s或e结尾
if i.endswith('s') or i.endswith('e'):
new_list.append(i)
# 打印出这个新的列表
print(new_list)
トピック2 [強化トレーニング]
質問の語幹
リストを指定して、最初にsで始まる要素を削除し、削除した後、最初の要素を「ジョーク」に変更し、最後の要素をコピーしてジョークの後に配置します
my_list = ["spring", "look", "strange", "curious", "black", "hope"]
トレーニングの目標
関連する操作を一覧表示する
トレーニングのヒント
-
リストをforループでトラバースして、各要素を取得します
-
リストの操作方法でリストを変更する
参照計画
-
forループを介して各要素を取得します
-
削除してリスト内の要素を削除します
-
挿入機能を使用して、指定した位置に要素を挿入します
ステップ
-
forループを介して各要素を取得し、それ
s
がで始まるかどうかを判断します -
条件が真の場合、removeを使用して選択した要素を削除します
-
最後の要素を取得し、置換して指定された位置に要素を配置します
参考回答
my_list = ["spring", "look", "strange" "curious", "black", "hope"]
for i in my_list[:]:
# 删除以s开头的元素,
if i[0] == 's':
my_list.remove(i)
# 修改第一个元素为"joke"
my_list[0] = "joker"
# 获取最后一个元素
last_one = my_list[-1]
# 将最后一个元素放在joke的后面
my_list.insert(1, last_one)
print(my_list)
トピック3 [強化トレーニング]
質問の語幹
次の2つのリストを結合し、結合されたリストを重複排除し、降順で出力します
list1 = [11, 4, 45, 34, 51, 90]
list2 = [4, 16, 23, 51, 0]
トレーニングの目標
リスト操作方法の使用
トレーニングのヒント
-
2つのリストをマージする方法は?
-
重複リストを削除するにはどうすればよいですか?
-
降順で並べ替えて出力する方法は?
参照計画
-
リストをマージするには、extend()メソッドを使用するか、2つのリストを追加します。
-
リストの重複排除には2つのオプションがあります
-
新しいリストを使用してメソッドを自分で実装し、元のリストをループして、要素が新しいリストにあるかどうかを判断します。ある場合は次の要素をトラバースし、ない場合は新しいリストに追加します。
-
set()を使用して重複を削除します
-
ソート関数はソートを実現でき、パラメーターreverse = Trueはリストを逆の順序でソートします
ステップ
1. +を使用してリストをスプライスします(またはextendを使用します)2。リストを使用して重複を削除します3.パラメーターreverse = Trueを指定してsort関数を使用し、リストを逆の順序でソートします
参考回答
プラン1
list1 = [11, 4, 45, 34, 51, 90]
list2 = [4, 16, 23, 51, 0]
# 1. 使用 + 合并两个列表
my_list = list1 + list2
# 2. 列表去重
# 2.1 定义新的空列表保存去重后的数据
my_list1 = []
# 2.2 遍历合并后的列表
for i in my_list:
# 2.3 判断i 是否在my_list1 中
if i in my_list1:
# 2.3.1 如果存在,直接下一次循环
continue
else:
# 2.3.2 将i添加到my_list1 中.
my_list1.append(i)
# 3. 循环结束,得到去重后的列表 my_list1,进行排序
my_list1.sort(reverse=True)
# 4. 输出最后的结果
print(my_list1)
オプション2今のところ心配する必要はなく、後で学ぶ
セット、重複排除、
セットは、自動重複排除機能を備えたコンテナでもあります(後で学習します)
今のところ理解する必要があります。
list1 = [11, 4, 45, 34, 51, 90]
list2 = [4, 16, 23, 51, 0]
# 列表拼接
list3 = list1 + list2
# 列表去重
list4 = set(list3)
list5 = list(list4)
# 列表降序输出
list5.sort(reverse=True)
print(list5)
3.タプル
トピック1 [強化トレーニング]
質問の語幹
次の2行のコードがあります。tuple1=(2)tuple2 =(2、)tuple1とtuple2の違いは何ですか。
トレーニングの目標
要素のタプルを定義する
トレーニングのヒント
肉眼で見ることができるのはコンマの違いだけですが、彼はPythonでそれをどのように理解していますか?
参照計画
type()メソッドを使用して、これら2つの変数を別々に区別します
ステップ
type(tuple1)を使用して、type(tuple12)の結果と比較します。
参考回答
tuple1 = (2)
tuple2 = (2,)
print(type(tuple1))
print(type(tuple2))
# 对于tuple1 = (2),python解释器会将小括号理解成一个运算符号,那么这时候 返回的值是一个int类型
# 所以对于只有一个元素的元组来说,要创建一个元组,那么就必须要加逗号
トピック2 [強化トレーニング]
質問の語幹
次のコードがあります、質問に答えてください?
my_tuple = ("itcast", "python", "CPP", 18, 3.14, True)
-
添え字メソッドを使用して、タプルの要素を出力します
"CPP"
-
タプルをトラバースするためのforループを使用する
-
whileループを使用して、タプルを反復処理します
トレーニングの目標
-
タプルの添え字操作
-
タプルのループトラバーサル用
-
タプルのwhileループトラバーサル
トレーニングのヒント
-
Pythonの添え字は0から始まりますか、それとも1から始まりますか?
-
トラバースする方法は?
-
トラバースする方法は?whileの条件の書き方は?
参照計画
-
下付き文字は0から始まるため、CPPの下付き文字は2です。
-
for ... in ...
トラバーサルを使用する -
whileループでは、添え字を使用する必要がありますが、条件は
len()
実装された手段で決定できます
ステップ
-
CPPの値を取得するには、添え字メソッドを使用します
-
ループトラバーサル用
-
whileループトラバーサル
参考回答
my_tuple = ("itcast", "python", "CPP", 18, 3.14, True)
# 1. 使用下标的方法,输出元组中的元素 `"CPP"`使用下标的方法,
result = my_tuple[2]
print(result)
# 2. 使用 for 循环遍历元组
for i in my_tuple:
print(i)
print("-" * 20)
# 3. 使用 while 循环遍历元组
i = 0
while i < len(my_tuple):
print(my_tuple[i])
i += 1