圧縮ソフトやウイルス対策ソフトを推奨
7 - ジップ
火口を使う
1. 基本的なデータ型と変数 (オン)
2.1 注意事項
アドバンテージ:
- コードの説明
コメントされていないコード
コメント化されたコード
- インタプリタにコメントを実行させない文
2.2 単一行コメント
単一行コメントのショートカット キー: ctrl + ?
2.3 複数行のコメント
"""""" (3 つの二重引用符)
2.4 リテラル変数
字面量是已经被定义好的量
在程序中可以直接使用的字面量:1,2,3,4,5,6
185730213551
変数とは: 変化する可能性のある量
コンピューターがデータを保存するために使用するボックス。このデータを使用したい場合は、ボックスを直接使用してください。
变量名 = 值
a = 10
print(a)
10
代入ステートメントの等号を数学の等号と同一視しないでください。
x = 10
x = x +2
a = 'abc'
b = a
a = 'edg'
print(b)
abc
例証します:
1.变量就是可以变化的量,可以随时进行修改
2.程序是使用来处理数据的,而变量就是用来存贮数据的
3.变量就是一个存贮数据时,当前数据所在的内存地址的名字
複数の変数の代入
a, b, c = 1, 2, 'd'
print(a)
print(b)
print(c)
1
2
d
a = b = c = 1
print(a)
print(b)
print(c)
1
1
1
2.5 識別子とキーワード
ルールは次のとおりです。
- 数字、文字、アンダースコアで構成されます
- 数字で始めることはできません
- 組み込みキーワードは使用できません
- 大文字と小文字を厳密に区別する
2.6 命名規則
- 識別子の名前は名前から明らかである必要があります
名前と年齢 、
命名規則に従ってください
- キャメルケース: 大きいキャメルケースと小さいキャメルケース
- 大きなこぶ: 各単語の最初の文字が大文字になります
名前苗字
- キャメルケース: 最初の単語は小文字で始まり、2 番目の単語は最初の文字を大文字にします
私の名前、あなたの名前
2.7 キーワード
特別な機能を持つ識別子はキーワードです
キーワードを変数名として宣言することはできません
#打印python的所有关键字
import keyword
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
2.8 基本データ型の初期化
値の型
2.8.1 整数型 int
1 ,2 ,3, 100, 200, -300, 0
n = 78
print(n)
78
a = 1000_0000_0000_0000
b = 1000000000000000
print(a)
print(b)
1000000000000000
1000000000000000
2.8.2 浮動小数点型 float
1.23×10^9
12.3×10^8
1.23、3.14、-9.1
1.23e9、12.3e8、0.000012==》1.2e-5
その周り
浮動小数点数を表現する 2 つの方法
- 10 進数形式では、1.2、1.23、12.3
- 指数形式(科学的表記法)
aen 或者 aEn
a为尾数部分,n是指数部分,E或e是固定的字符,用于分割尾数部分和指数部分
2.1e5 = 2.1×10^5 其中2.1是尾数,5是指数
3.7E-2 = 3.7×10^-2 其中3.7是尾数,-2是指数
0.5E7 = 0.5×10^7 其中0.5是尾数, 7是指数
14E3 = 14×10^3 其中14是尾数,3是指数
print(14E3)
float1 = 0.0000000000000000000847
print(float1)
14000.0
8.47e-20
2.8.3 ブール値 bool
値は True と False の 2 つだけです。大文字と小文字に注意してください。
True は true (条件が満たされる、または成立することを示す) を意味します ==》1
False は false (条件が満たされない、または成立しないことを示す) == "0" を意味します。
print(3>2)
print(2>3)
True
False
2.8.4 文字列 str
数値型ではなく、シーケンス型です
一重引用符、二重引用符、三重引用符、abc、xyz で囲まれたテキスト
基本的な使い方
name = 'python'
age = 18
jiaxiang = '湖北'
print(name+jiaxiang) # 相加就是简单的字符串拼接
print(name*5) # 相乘就相当于将字符串和自己相加了5次
python湖北
pythonpythonpythonpythonpython
値の 2 つの順序:
- デフォルトでは、左から右のインデックスは 0 から始まり、最大範囲は文字列の長さから 1 を引いた値になります。
- インデックスはデフォルトでは -1 で右から左に始まり、最大範囲は文字列の先頭です。
str3 = 'abcdefg'
print(str3[2])
print(str3[6])
print(str3[-1])
c
g
g
子字符串[初始位置:结束位置],包头不包尾 ,左闭右开
str3 = 'abcdefg'
print(str3[1:6])
print(str3[:6])
print(str3[3:])
bcdef
abcdef
defg
2.9 ビューのデータ型
- 変数には型はありませんが、データには型があります
type (変数の名前) == "データ型の表示
a = 'ab'
b = 123
c = 1.23
print(type(a))
print(type(b))
print(type(c))
<class 'str'>
<class 'int'>
<class 'float'>
2.9.1 エスケープ文字 \
\n == "改行
\t == "タブ文字、タブ キー、つまり 4 つのスペース
\ \ ==》\
エスケープ文字は引用符で囲む必要があります。エスケープすると愚かになります
print('床前明月光,\n疑是地上霜')
print('床前明月光,\t疑是地上霜')
床前明月光,
疑是地上霜
床前明月光, 疑是地上霜
print('\\\n\\')
\
\
height = 175.0
print('您的身高是:'+height) # 报错
print('您的身高是:'+str(height))
i = int('123')
print(i)
ii = ('123个')
print(ii)
您的身高是:175.0
123
123个
初心者向けの宿題として、みんなにイースターエッグを残すにはここを参照してください
1.用变量给自己建立个角色信息,要输出出来
姓名
年龄
身高
家乡
兴趣
是否有编程基础
2.有一个字符串变量 s = '人生苦短,我学python'
通过下标索引,分别输出 苦,学 o 这几个字符
2. データ型(下記)
1.1 リストの生成
list [1,2,3,4,5,6,7,8,9]
list1 = [1,2,3,4,5,6,7,8,9]
print(list1)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(range(1,10)))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
1.1.1 通常のリスト内包表記
# 普通写法
li = []
for i in range(1,10):
li.append(i)
print(li)
# 列表生成式写法
print([i for i in range(1,10)])
[1*1,2*2,3*3,4*4,...,9*9]
# 普通写法
li = []
for i in range(1,10):
li.append(i*i)
print(li)
# 列表生成式
print([i*i for i in range(1,10)])
[1*2,2*3,3*4,...,9*10]
# 普通写法
li = []
for i in range(1,10):
li.append(i*(i+1))
print(li)
# 列表生成式
print([i*(i+1) for i in range(1,10)])
[2, 6, 12, 20, 30, 42, 56, 72, 90]
[2, 6, 12, 20, 30, 42, 56, 72, 90]
# 求偶数 ,普通写法
li = []
for i in range(1,11):
if i % 2 == 0:
li.append(i)
print(li)
# 带if的列表生成式
print([i for i in range(1,11) if i % 2 == 0])
[2, 4, 6, 8, 10]
[2, 4, 6, 8, 10]
2 つのループ層を使用して、考えられるすべての組み合わせ (ABC と 123) を生成します。
# 普通写法
li = []
for i in 'ABC':
for j in '123':
li.append(i+j)
print(li)
# 双层循环写法
print([i+j for i in 'ABC' for j in '123'])
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
1.2タプルタプル
タプルは通常、すべての要素を囲むために一対のかっこを使用しますが、かっこは必須ではありません
tuple1 = 'python教程', 'Java'
print(tuple1)
print(type(tuple1))
1.2.1 確認
count()
tuple2 = (123, 'Google', 'JD', 'Taobao', 123)
print(tuple2.count(123)) # 2
print(tuple2.count('JD'))
2
1
index()
检索某个元素的下标值
t = (123, 'Google', 'JD', 'Taobao', 123)
print(t.index(123))
print(t.index(123,1))
0
4
1.2.2 機能
1相加,两个元组相加生成一个新的元组
data = ('张三', '李四') + ('王五', '赵六')
print(data)
('张三', '李四', '王五', '赵六')
2.相乘
data = ('张三', '李四')*2
print(data)
('张三', '李四', '张三', '李四')
3.获取长度
data = ('张三', '李四')
print(len(data))
2
4.索引
data = ('张三', '李四', '王五', '赵六')
print(data[0])
print(data[1])
print(data[2])
print(data[3])
张三
李四
王五
赵六
5.切片
data = ('张三', '李四', '王五', '赵六')
print(data[0:3])
('张三', '李四', '王五')
6.步长,隔多少取值
data = ('张三', '李四', '王五', '赵六')
print(data[1:4:2]) # 1是开始位置,4是结束位置,2是步长
('李四', '赵六')
7.for循环
data = ('张三', '李四', '王五', '赵六')
for i in data:
if i == '李四':
continue # 结束本次循环 ,继续执行下一次循环
print(i)
张三
王五
赵六
タプル自体は不変ですが、タプルに他の変更可能な要素が含まれている場合、これらの変更可能な要素は変更できます。
1.3 文字列形式の出力
你好某某某 我叫某某某 再见某某某
name = 'python'
age = 18
print('大家好, 我叫'+name+', 我今年'+str(age)+'岁')
1.3.1% メソッド (プレースホルダー)
%s = 字符串 ==》只能放在字符串里面
%d = 整数 ==》 只能放整数
%f = 小数 ==》默认保留六位小数
%.1f ==> 保留一位小数
%.2f ==> 保留两位小数
语法:('xx%dxxx%s'%(变量1,变量2))# 或者带入变量数据
name = 'python'
age = 18
height = 175.0
print('你好,我叫%s, 今年%d岁了, 身高%f'%(name,age,height))
print('你好,我叫%s, 今年%d岁了, 身高%.1f'%(name,age,height))
print('你好,我叫%s, 今年%d岁了, 身高%.2f'%(name,age,height))
你好,我叫python, 今年18岁了, 身高175.000000
你好,我叫python, 今年18岁了, 身高175.0
你好,我叫python, 今年18岁了, 身高175.00
s = '我叫%s, 今年%d岁了, 身高%f'
print(s%('python', 15, 175.0))
我叫python, 今年15岁了, 身高175.000000
1.3.2 フォーマット()
语法:
name = 'python'
age = 18
height = 175.0
print('你好, 我叫{},今年{}岁了,身高{}'.format(name,age,height))
传入的数据类型是不限的,字符串,元组,列表都行
数据跟{
}顺序从左到右一一对应
直接传数据
传入多个数据:
'{}{}{}'.format(数据1,数据2,数据3)
print('你好,我叫{},今年{}岁了,身高{}'.format('python',18,175.0))
自定义数据:
'{下标}{下标}'.format(数据1,数据2)
print('你好,我叫{0},今年{2}岁了,身高{1}'.format('python',175.0,18))
1.3.3 fフォーマット
语法:在字符串里面加上一个f/F,把要输出的变量用大括号{
}包裹
name = 'python'
age = 18
height = 175.0
print(f'大家好,我叫{
name},我今年{
age}岁了,身高是{
height}')
print(f'大家好,我叫{
name[0]},我今年{
age+1}岁了,身高是{
height-10}')
大家好,我叫python,我今年18岁了,身高是175.0
大家好,我叫p,我今年19岁了,身高是165.0
高度な 3 つのデータ型 (パート 1)
2.1 ハッシュタイプ
1. データ型: int、float、bool ==> 値を格納
2. シーケンス型: str、list、tuple == "複数のデータを格納
3. ハッシュの種類
順序のない内部要素は繰り返されず、添え字もありません。
2.1.1 辞書辞書
いくつかのデータ型を典型的な対応関係で保存するために使用され、キーと値のペアを使用してデータを保存するのが特徴です
キー === > キーの値 ===> 値
キーと値のペアの構文: key:value
症状:
{} ですが、キーと値のペアが中括弧内に格納されている場合、それは辞書になります。
キーによる値の検索
辞書名[キー]
辞書のキーは繰り返すことができません。繰り返した場合は、最後に繰り返されたキーの値が取得されます。
call = {
'python':'11234', 'look':'11235', '阿尔法':'11236'}
user = {
'姓名':'python', '年龄':18, '工作':'python讲师'}
print(call['python'])
print(user['工作'])
dict1 = {
'a':1, 'b':2, 'a':3, 'a':4}
print(dict1)
11234
python讲师
{
'a': 4, 'b': 2}
変動性
dict1 = {
'a':1, 'b':2, 'a':3, 'a':4}
dict1['b'] = 100
print(dict1)
{
'a': 4, 'b': 100}
一連の固定情報を表現したい場合、辞書を使用するとより直感的になることがあります。
字典包含多个键值对,key是字典的关键数据,程序对字典的操作都是基于key的
- 通过key访问value
- 通过key添加key-value对
- 通过key删除key-value对
- 通过key修改key-value对
- 通过key判断指定key-value对是否存在
通过key访问value
scores = {
'语文':89}
print(scores['语文'])
如果腰围字典添加key-value对,就只需要为不存的key赋值就可以了
scores['数学'] = 93
scores[92] = 8.4
print(scores)
如果要删除字典中的键值对,就可以使用del语句
del scores['语文']
del scores['数学']
print(scores)
对存在的键值对赋值,新的值会覆盖原来的值
cars = {
'bmw':88, 'benchi':83, 'tesila':95}
cars['benchi'] = 4.3
cars['tesila'] = 3.8
print(cars)
判断字典是否包含指定的key,使用in或者not in
in not in # in 包含 not in 不包含
cars = {
'bmw':88, 'benchi':83, 'tesila':95}
print('tesila' in cars)
print('baoshijie' in cars)
print('BYD' not in cars)
ディクショナリのキーには、不変の型を使用できます。
辞書を使用すると、存在しないキーに直接割り当てることができるため、キーと値のペアを追加できます。
一般的な方法
字典方法
print(dir(dict))
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__',
'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
2.1.1.1 クリア()
ポイント内のすべてのキーと値のペアをクリアするために使用されます
cars = {
'bmw':88, 'benchi':83, 'tesila':95}
print(cars)
cars.clear()
print(cars)
{
'bmw': 88, 'benchi': 83, 'tesila': 95}
{
}
2.1.1.2 get()
キーに応じて値を取得します
cars = {
'bmw':88, 'benchi':83, 'tesila':95}
print(cars.get('bmw'))
print(cars.get('baoshijie'))
print(cars['baoshijie'])
88
None
print(cars['baoshijie']) # 报错
KeyError: 'baoshijie'
ロールオーバーする場所 (タプル)
data = (99,88,77,[‘左手’,18],33,22,11)
data[3] [0] = '見た目'
印刷(データ)
要素は不変ですが、要素内に変数型がある場合は変更できますが、タプル内の変数要素にのみ制限されます。
卵
# 1.将列表数据[1,2,3,2,1,4,4,4,2,5,6,7,7,9,8,10,10]去重
# 2.有字典 dic = {"k1":"v1","k2":"v2","k3":"v3"},实现以下功能:
(1)、遍历字典 dic 中所有的key
(2)、遍历字典 dic 中所有的value
(3)、循环遍历字典 dic中所有的key和value
(4)、添加一个键值对"k4","v4",输出添加后的字典 dic
(5)、删除字典 dic 中的键值对"k1" "v1",并输出删除后的字典 dic
(6) 获取字典 dic中“k2"对应的值
# 3.students =[
{'name':'go','age':18,'score':98,'tel':'18888888888', gender':'female'},
{'name''Java'age :20 'score':95."tel’: 18888888889' 'aender'.'unkown'},
{'name':'python' 'age' 18 'score':88.'tel':'18888888810' 'gender':'male'},
{'name':'php','age':16,'score':58,'tel':'18888888811', 'gender':'unkown'},
{'name':'c' 'age':19.'score':78.'tel':'18888888812' 'gender': male'},
{'name':'c++' 'age':17.'score':92,'tel':'18888888813','gender':'male'},
]
#(1)统计及格学生的个数
#(2)打印不及格学生的名字和对应的成绩
# #(3)删除性别不明的所有的学生
4. 高度なデータ型 (中)
1.1 更新()
ディクショナリに含まれるキーと値のペアを使用して、既存のディクショナリを更新できます。更新されたディクショナリに対応するキーと値のペアが含まれている場合は、元の値が上書きされ、そうでない場合は追加されます。
cars = {
'bmw':88, 'benchi':83,'tesila':95}
cars.update({
'bmw':4.5,'baoshijie':9.3})
print(cars)
{
'bmw': 4.5, 'benchi': 83, 'tesila': 95, 'baoshijie': 9.3}
1.2 items()、keys()、values()
dict_items、dict_keys、dict_values オブジェクト、Python はユーザーがこれらのメソッドを直接操作することを望んでいませんが、list() 関数を通じてリストに変換できます。
items()==》取键值对
cars = {
'bmw':88, 'benchi':83,'tesila':95}
ims = cars.items()
print(ims)
print(type(ims))
print(list(ims))
print(list(ims)[1])
dict_items([('bmw', 88), ('benchi', 83), ('tesila', 95)])
<class 'dict_items'>
[('bmw', 88), ('benchi', 83), ('tesila', 95)]
('benchi', 83)
keys()==> 取键
cars = {
'bmw':88, 'benchi':83,'tesila':95}
kys = cars.keys()
print(kys)
print(type(kys))
print(list(kys))
print(list(kys)[1])
dict_keys(['bmw', 'benchi', 'tesila'])
<class 'dict_keys'>
['bmw', 'benchi', 'tesila']
benchi
cars = {
'bmw':88, 'benchi':83,'tesila':95}
vals = cars.values()
print(vals)
print(type(vals))
print(list(vals))
print(list(vals)[1])
dict_values([88, 83, 95])
<class 'dict_values'>
[88, 83, 95]
83
プログラムが辞書の 3 つのメソッドを呼び出した後、これら 3 つのメソッドの戻り値をリストに変換できるように、それらをすべて呼び出してリストに変換する必要があります。
1.3 ポップ()
指定されたキーに対応する値を取得し、キーと値のペアを削除するために使用されます。
cars = {
'bmw':88, 'benchi':83,'tesila':95}
print(cars.pop('tesila'))
print(cars)
95
{
'bmw': 88, 'benchi': 83}
1.4 setdefault()
指定されたキーに対応する値を返すことができます。キーと値のペアが存在しない場合は、まずこのキーのデフォルト値を設定してから、このキーに対応する値を返します。
cars = {
'bmw':88, 'benchi':83,'tesila':95}
print(cars.setdefault('baoshijie',92))#两个参数,第二个是设置默认值,如果不存在就会新增键值对
print(cars)
92
{
'bmw': 88, 'benchi': 83, 'tesila': 95, 'baoshijie': 92}
2.1 辞書
2.1.1 パブリック機能
長さ
info = {
'age':12, 'shengming':True, 'name':'fe'}
data = len(info)
print(data)
3
インデックス(キー)
info = {
'age':12, 'shengming':True, 'name':'fe'}
print(info['name']) # fe 字典 通过键 查找值
print(info['age']) #12
print(info['xxx']) # 报错 如果键不存在会报错
fe
12
报错
value = info.get('xxx') # 使用get方法获取值如果不存在就打印None
print(value)
None
for ループ
info = {
'age':12, 'shengming':True, 'name':'fe'}
#直接遍历这个字典,可以获取所有的键
for item in info:
print(item) #所有键
age
shengming
name
#使用keys方法
for item in info.keys():
print(item) # 所有键
#使用values方法
for item in info.values():
print(item) # 所有值
#使用items方法
for key,value in info.items():
print(key,value) # 获取所有的键值
2.2 収集
要素はユニークであり、互いに異なります
{
name1, name2, .....name n}
语法:
集合名 = {
数据1,数据2,数据3,。。。。数据n}#如果有重复的数据,是不会被添加到内存空间里面
リスト、辞書、コレクションなどのデータ型は保存できません。保存しないとエラーが報告されます。
#报错
print({
{
'a':1}})
print({
[1,2,3]})
print({
{
1,2,3}})
コレクション内のデータは一意であることが保証されている必要があることに注意してください。コレクションでは、米国と中国のデータ要素のコピーが 1 つだけ保持されます。
s = {
1,2,1,(1,2,3),'c','c'}
print(s)
{
1, 2, (1, 2, 3), 'c'}
Pythonには順序が設定されておらず、出力されるたびに順序が異なる場合があります
set1 = {
1,2,3,4,5,5,1,2,3,4,5,6,7,9,1}
print(set1)
# print(set1[1])
print(type(set1))
{
1, 2, 3, 4, 5, 6, 7, 9}
<class 'set'>
注: 空のコレクションを作成する場合は、{} の代わりに set() を使用する必要があります。これは、{} がデフォルトで空の辞書であるためです。
li1 = [] # 空列表
tu1 = () # 空元组
str1 = '' # 空字符串
dict1 = {
} # 空字典
set1 = set() #空集合
# 去重并转为列表输出
li = [1,2,3,4,5,6,7,89,41,1,1,1]
# li1 = set(li)
# li2 = list(li1)
# print(li1)
# print(li2)
print(list(set(li)))
[1, 2, 3, 4, 5, 6, 7, 41, 89]
2.2.1 集合に対する数学的演算
オペレーターの操作 | Python オペレーター | 意味 |
---|---|---|
交差点 | & | 2 つのコレクションに共通する要素を取得する |
連合 | | | 2 つのセットのすべての要素を取得します |
差分セット | - | あるセットの、別のセットにない要素を取得する |
会員制運営 | 和ではない | 要素がコレクション内にあるかどうかを判断する |
集合1 & 集合2——》判断交集
集合2 | 集合1——》判断并集
集合1 - 集合2——》判断差集
交集:两个集合里面共同有的数据
并集:两个集合里面的全部数据(不包括重复数据,集合本身也不能重复)
差集:集合1 - 集合2 减去共有的,剩下的就是差集
set1 = {
1,2,3}
set2 = {
3,4,5}
print(set1 & set2)
print(set1 | set2)
print(set1 - set2)# 差集{1, 2} 取一个集合中另一个集合没有的元素,将set1中属于set2的元素删除
print(set2 - set1)# 4,5
print(3 in set2)
{
3}
{
1, 2, 3, 4, 5}
{
1, 2}
{
4, 5}
True
コレクションの役割:
- 固有のデータを保存する
- シーケンス タイプの重複を排除し、論理的な判断 (交差、結合、差分) を行うために使用されます。
2.2.2 増加
add()パラメータは追加するオブジェクトであり、複数回データを追加することで、追加された要素の位置が不確かであることがわかります
语法: 集合名.add(元素)
s = {
'Java'}
s.add('python')
print(s)
s.add('go')
print(s)
s.add('c')
print(s)
s.add('c++')
print(s)
{
'Java', 'python'}
{
'go', 'Java', 'python'}
{
'go', 'Java', 'python', 'c'}
{
'c', 'c++', 'go', 'python', 'Java'}
update() パラメータはシーケンス型であり、各要素はシーケンスに繰り返し追加されます (ランダムに追加されます)。
s = {
'fe'}
s.update('123')
print(s)
s.update([4,5,6])
print(s)
{
'3', '2', 'fe', '1'}
{
'2', 4, 5, 6, '3', '1', 'fe'}
2.2.3 削除
Pop() は要素をランダムに削除します
实际上在进行代码实验的时候并不是随机的
仅仅是在集合元素是字符串类型时,并且在cmd运行的时候才会随机删除,pycharm中默认保持删除第一个元素
s = {
'fe'}
s.update('123')
print(s)
s.update([4,5,6])
print(s)
s.pop()
print(s)
s.pop()
print(s)
{
'2', '1', 'fe', '3'}
{
'1', 4, 'fe', 5, 6, '2', '3'}
{
4, 'fe', 5, 6, '2', '3'}
{
'fe', 5, 6, '2', '3'}
削除 (パラメータ) にはパラメータがあり、パラメータは削除される要素です。要素が存在しない場合、エラーが報告されます。
集合名.remove(元素)
s = {
'fe'}
s.update('123')
print(s)
s.update([4,5,6])
print(s)
s.remove('1')
print(s)
s.remove('2')
print(s)
s.remove('8')
print(s)
{
'1', 'fe', '2', '3'}
{
4, 5, 6, '3', '1', '2', 'fe'}
{
4, 5, 6, '3', '2', 'fe'}
{
4, 5, 6, '3', 'fe'}
报错
Discard() は Remove と似ていますが、要素が存在しない場合はエラーは報告されません。
s = {
'fe'}
s.update('123')
print(s)
s.update([4,5,6])
print(s)
s.discard('aaa')
print(s)
{
'3', '1', 'fe', '2'}
{
4, 5, 6, '3', 'fe', '1', '2'}
{
4, 5, 6, '3', 'fe', '1', '2'}
clear() はコレクション内の要素をクリアします
s = {
'fe'}
s.update('123')
print(s)
s.update([4,5,6])
print(s)
s.clear()
print(s)
{
'1', '3', '2', 'fe'}
{
'2', 4, 5, 6, 'fe', '3', '1'}
set()
del () コレクション名 ()、コレクションを削除します
# 整个吧盒子(变量)删除了,所以会报错,先删除了盒子,再去打印这个s就会报错显示盒子s不存在
s = {
'fe'}
s.update('123')
print(s)
s.update([4,5,6])
print(s)
del s
print(s)
2.2.4 変更
由于set中的数据没有索引,也没有办法去定位一个元素,所以没办法直接修改
先删除在添加
s = {
'A', 'B', 'C', 'D'}
# 把A改为E
s.remove('A')
s.add('E')
print(s)
{
'B', 'E', 'C', 'D'}
2.2.5 チェック
set是一个可迭代对象,可以通过for循环进行遍历查询
s = {
'A', 'B', 'C', 'D'}
for i in s:
print(i)
A
C
D
B
复习巩固 练习题
在终端中获取颜色(RGBA),打印描述信息,否则提示颜色不存在
"R" -->"红色"
"G" -->"绿色"
"B" -->"蓝色"
"A" -->"透明度"
# 1.将列表数据[1,2,3,2,1,4,4,4,2,5,6,7,7,9,8,10,10]去重
li1 = [1,2,3,2,1,4,4,4,2,5,6,7,7,9,8,10,10]
li2 = []
for i in li1:
if i not in li2:
li2.append(i)
print(li2)
#或者
print(list(set(li1)))
# 2.有字典 dic = {"k1": "v1", "k2": "v2", "k3": "v3"},实现以下功能:
# (1)、遍历字典 dic 中所有的key
dic = {
"k1": "v1", "k2": "v2", "k3": "v3"}
for key in dic.keys():
print(key)
# (2)、遍历字典 dic 中所有的value
for value in dic.values():
print(value)
# (3)、循环遍历字典 dic 中所有的key和value
for key,value in dic.items():
print(key,value)
# (4)、添加一个键值对"k4","v4",输出添加后的字典 dic
dic['k4'] = 'v4'
print(dic)
# (5)、删除字典 dic 中的键值对"k1","v1",并输出删除后的字典 dic
dic.pop('k1')
print(dic)
# (6)、获取字典dic中“k2”对应的值
print(dic.get('k2'))
students = [
{
'name': 'Java', 'age': 18, 'score': 98, 'tel': '18888888888', 'gender': 'female'},
{
'name': 'c', 'age': 20, 'score': 95, 'tel': '18888888889', 'gender': 'unkown'},
{
'name': 'python', 'age': 18, 'score': 88, 'tel': '18888888810', 'gender': 'male'},
{
'name': 'c++', 'age': 16, 'score': 58, 'tel': '18888888811', 'gender': 'unkown'},
{
'name': 'php', 'age': 19, 'score': 78, 'tel': '18888888812', 'gender': 'male'},
{
'name': 'go', 'age': 17, 'score': 92, 'tel': '18888888813', 'gender': 'male'},
]
# (1)统计及格学生的个数
count = 0 #初始化一个值
for d in students:
if d['score'] >= 60:
count += 1
print(count)
# (2)打印不及格学生的名字和对应的成绩
for d in students: #d是字典
if d['score'] < 60:
print(d['name'],d['score'])
# (3)删除性别不明的所有的学生
for d in students:
if d['gender'] == 'unkown':
#pop根据下标 remove根据值删除 clear 清空 del 列表名[下标]
students.remove(d) # 删除性别不明
print(students)
答えを確認するための復習
1.编写一个程序,检查任意一个年份是否是闰年
- 如果一个年份可以被4整除不能被100整除,或者可以被400整除,这个年份就是闰年
year = int(input('请输入一个年份:'))
if year % 4 == 0 and year % 100 != 0 or year %400 == 0: # != 不相等
print(year,'是闰年')
else:
print(year,'是平年')
2.从键盘输入小明的期末成绩:
当成绩为100时,'奖励一辆BMW'
当成绩为(80-99)时,'奖励一台iphone'
当成绩为(60-79)时,'奖励一本参考书'
其他时,奖励棍子一根
3.计算1+2+3+...+100(使用while循环)
num = 1
sum = 0 # 初始化一个累计的变量
while num < 101:
sum += num
num += 1 # num1 =num + 1
print('num=',sum)
4.打印99乘法表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
for i in range(1,10):
for j in range(1,i+1):
print(i,'*',j,'=',i*j,end='\t')
print()
高度な 5 つのデータ型 (パート 2)
Python のデータ型は、数値型、シーケンス型、ハッシュ型の 3 つのカテゴリに分類できます。
値の型: int、float、bool
2.1 シーケンスの種類
元素1 元素2 元素3 元素4 元素。。。。 元素n
0 1 2 3 4 n-1
-n
# 元素下面的是索引取值
s = 'CSDN博客论坛'
print(s[0],'=',s[-8])
print(s[-1],'=',s[7])
C = C
坛 = 坛
2.2 文字列 str
文字列は、基本的なテキスト情報を格納および表現するために使用される、順序付けられた文字のセットです。
2.2.1 一般的な方法
データを操作する上で最も重要な動作は何ですか? == "追加、削除、変更、問い合わせ
字符串.方法名
2.2.1.1 検索
find の関数: 範囲内の部分文字列を検索し、インデックス値を返し、存在しない場合は -1 を返します。
文法:
str.find(str,beg=0,end=len(string))
- str==> 取得する文字列を指定します
- beg == "開始インデックス、デフォルト値は 0
- end == "終了インデックス、デフォルトは文字列の長さです
find は、文字列に部分文字列 str が含まれているかどうかを検出するためによく使用されます。
s = 'hello world'
print(s.find('o')) #o 的索引值就是4
print(s.find('hello')) # 找到hello则返回首个字符的索引
print(s.find('worldd')) # 找不到返回-1
s = ('python,helloworld,java,php')
print(s.find('h')) # 返回的是首个h的下标
print(s.find('h',4)) # 从下标为4的地方开始找
print(s.rfind('h')) # 从后往前找
2.2.1.2 インデックス()
文字列に部分文字列 str が含まれているかどうかを確認します。beg と end の範囲が指定されている場合は、それが指定された範囲に含まれているかどうかを確認します。これは find と似ていますが、部分文字列が str に含まれていない場合はエラーが報告されます。
s = ('python,helloworld,java,php')
print(s.index('world')) # 12 索引值
print(s.index('worldd')) # 报错
2.2.1.3カウント()
見つかった部分文字列の数を返します
s = ('python,helloworld,java,php')
print(s.count('h')) # 3 h的个数
2.2.1.4 ストリップ()
文字列の両側にあるスペース、改行、タブを削除して、新しい文字列を取得します
code = input('请输入4位的验证码:')
data = code.strip()
if data == 'ABCD':
print('验证码正确')
else:
print('验证码错误')
2.2.1.5 startwith()、endswith()
- 文字列が xx で始まるかどうかを判断し、ブール値を取得します
dizhi = input('请输入住址:')
if dizhi.startswith('北京市'):
print('北京人口')
else:
print('非北京人口')
- 文字列が xx で終わっているかどうかを判断し、ブール値を取得します
dizhi = input('请输入住址:')
if dizhi.endswith('村'):
print('农业户口')
else:
print('非农业户口')
s = '北京市朝阳区'
print(s.startswith('北京市'))
2.2.1.6も
- 文字列が数値で構成されているかどうか、および返された結果がブール値であるかどうかを判断します。
v1 = input('请输入第一个值:')
v2 = input('请输入第二个值:')
if v1.isdigit() and v2.isdigit():
data = int(v1)+int(v2)
print(data)
else:
print('请输入正确的数字')
2.2.1.7 lower() と upper()
新しい文字列を取得するために文字列を大文字/小文字に変換します
lower() == "小文字に変換
upper() == "大文字に変換
s = 'C'
print(s)
s1 = s.lower()
print(s1)
s2 = s1.upper()
print(s2)
C
c
C
2.2.1.8 分割()
文字列を分割し、文字列タイプをリストに変換します。デフォルトではスペースで分割され、分割する文字を指定することもできます。
s = 'my name is zuoshou'
print(s.split())
s1 = 'python,helloworld,java,php'
print(s1.split(','))
['my', 'name', 'is', 'zuoshou']
['python', 'helloworld', 'java', 'php']
2.2.1.9 置換()
文字列の内容を置き換えて新しい文字列を取得します
s = input('请输入评论信息:')
s1 = s.replace('草','*')
print(s1)
2.2.1.10 結合()
シーケンス内の要素を指定された文字列と連結して新しい文字列を生成するために使用されます。
リストを文字列に変換するためによく使用されます
a = ['Java', '和', 'python', '是', '好朋友']
print(''.join(a)) # 常用于转化列表为字符串时使用
print('-'.join(a))
Java和python是好朋友
Java-和-python-是-好朋友
2.2.2 文字列の共通機能
2.2.2.1 順方向フェッチ(左から右)、逆方向フェッチ(右から左、負号)
s = 'hello python'
# 正向取值
print(s[0]) # 取值为 h
print(s[5]) # 空格,空格也算是字符串里的一个字符
# 反向取值
print(s[-4]) # 取值为 t
len的用法
len 是从1开始数 计量字符串长度
print(s[len(s)-1]) # 最后一个值
print(len(s)) # len 计算字符串的长度
print(s[-len(s)]) # len 前面加负号 是从右到左取值
2.2.2.2 スライス(ヘッドとテール、ステップサイズに関係なく)
s = 'hello python'
print(s[::2])
hlopto
步长:0:9:2 第三个参数2代表步长,会从下标0开始,每次累加一个2就可以
print(s[0:9:2])
hlopt
print(s[::-1]) # 从右到左依次取值 反向取值 步长为负数就是从右到左 首尾不给值就是取所有
nohtyp olleh
2.3 リストリスト
異なるタイプの複数の要素を保存し、同じ属性の複数の値を記録できます
リスト:同じカテゴリのデータを保存して簡単に操作できます
字符串,不可变类型:创建好之后内部无法修改[内置功能都是新创建一份数据]
name = 'java'
data = name.upper()
print(name)
print(data)
java
JAVA
列表,可变类型:创建好之后内部元素可以修改[独有功能基本上都是直接操作列表内部的,不会创建一份新的数据]
list1 = ['车子', '房子']
list1.append('妹子') # append ’添加‘的方法
print(list1)
['车子', '房子', '妹子']
リスト作成
列表名 = []
2.3.1 増加
1.append:添加一个数据,添加到列表的最后一位
语法: 列表名.append('python')
li..append('python')
print(li)
[2, 3, 4, 5, 6, 7, 8, 9, 10, 'python']
2.insert: 添加一个数据到指定位置
语法:列表名.insert(下标位置,内容)
li.insert(0,'look')
print(li)
['look', 2, 3, 4, 5, 6, 7, 8, 9, 10, 'python']
3.extend:添加一个序列类型到最后一位,并且吧序列类型拆分
语法:列表名.extend(序列类型)
li.extend('吸血鬼')
print(li)
li.extend(['吸血鬼'])
print(li)
['look', 2, 3, 4, 5, 6, 7, 8, 9, 10, '左手', '吸', '血', '鬼']
['look', 2, 3, 4, 5, 6, 7, 8, 9, 10, '左手', '吸', '血', '鬼', '吸血鬼']
2.3.2 削除
pop:删除一个值,默认从最后一个开始删,也可以指定位置
语法:列表名.pop()
列表名.pop(下标)
li.pop(-1)
print(li)
['look', 2, 3, 4, 5, 6, 7, 8, 9, 10, 'python', '吸', '血', '鬼']
remove:删除一个指定的值,如果有多个,从第一个开始删
语法:列表名.remove(删除对象)
li.remove(3) # 删除对象
print(li)
['look', 2, 4, 5, 6, 7, 8, 9, 10, 'python', '吸', '血', '鬼']
clear :清空列表里面的所有数据
语法:列表名.clear()
li.clear()
print(li)
[]
del : 全局删除,可以删除一个变量
语法:del 列表名[下标]
del li[3] # 下标
print(li)
['look', 2, 4, 6, 7, 8, 9, 10, 'python', '吸', '血', '鬼']
2.3.3 変更
单个修改:直接通过下标进行修改
语法:列表名[下标] = 内容
li[1] = '阿尔法'
print(li)
['look', '阿尔法', 4, 6, 7, 8, 9, 10, 'python', '吸', '血', '鬼']
多个修改:通过切片的方式进行修改
语法: 列表名[起点:终点] = 数值1, 数值2
li[1:3] = 70,20
print(li)
['look', 70, 20, 6, 7, 8, 9, 10, '左手', '吸', '血', '鬼']
2.3.4 チェック
index:根据内容获取指定数据的下标
语法:列表名。index(要找的内容)
print(li)
print(li.index(8))
5
列表名。index(要找的内容,起点值)
print(li.index(20,5)) #报错,显示20不在列表中
count:统计数据出现的次数
语法:列表名.count(要找的内容)
print(li.count(10))
1
2.3.5 その他
排序(全int的列表才可以排序)
sort:让列表的内容按照降序/升序的方式来排序
列表名.sort()——》升序
li1 = [1,85,6,8,61,3,45321,1965]
li1.sort()
print(li1)
[1, 3, 6, 8, 61, 85, 1965, 45321]
列表名.sort(reverse=True)——》降序
li1 = [1,85,6,8,61,3,45321,1965]
li1.sort(reverse=True)
print(li1)
[45321, 1965, 85, 61, 8, 6, 3, 1]