概要
Pythonのコピー深さ
# 拷贝(赋值)
# l1 = [1,2,3]
# l2 = l1
# l1.append(4)
# print(l1)
# print(l2)
# 因为列表是可变类型,所以l1的值发生变化,l2的值也会跟着变化(这就是拷贝)
# 浅拷贝
# import copy #
# l1 = [1,2,3,4,[5,6,7]]
# l2 = copy.copy(a) #(浅拷贝)
# l1.append(8)
# print(l1) #
# print(l2) #
# l1[4].append(8)
# print(l1)
# print(l2)
# 当b为a的浅拷贝对象时,a内可变类型变化,b变化,a内不可变型变化,b不变化
# 深拷贝
# import copy
# l1 = [1,2,3,[4,5,6]]
# l2 = copy.deepcopy(l1)
#l1.append(7)
#print(l1)
#print(l2)
# s[3].append(7)
# print(l1)
# print(l2)
# 注:当l2为l1的深拷贝对象时,l1内的可变类型变化,l2不变化;l1的不可变型变化;l2不变化
# 总结
# 牢记:拷贝、浅拷贝、深拷贝 只针对可变数据类型
# 拷贝: 当lt2为lt的拷贝对象时,lt内的可变类型变化,lt2变化;lt内的不可变类型变化,lt2变化
# 简单的赋值
# 浅拷贝:当lt2为lt的浅拷贝对象时,lt内的可变类型变化,lt2变化;lt内的不可变类型变化,lt2不变化
# copy.copy() 可变数据的类型中的内置方法.copy()
# 深拷贝: 当lt2为lt的深拷贝对象时,lt内的可变类型变化,lt2不变化;lt内的不可变类型变化,lt2不变
# copy.deepcopy()
### 作用:毫无用处,面试经常问
基本的な文書処理
ファイルはどのようなものです:オペレーティングシステムは、顧客に仮想ユニットを提供します
ファイルの役割:データストレージ
プロセスファイルを開きます。
- パスをコピーし、パス#は、ファイルを右クリックし、ファイルを探します
path = r'r'E:\老男孩学习笔记\7.29学习内容\01 执行Python程序的两种方式'
- ダブルクリックして開きます
f = open(path,'w') # r-->read 只读; w-->只写,清空当前文件后写入,自动创建文件
print(f)
- ファイルを参照してください。
data = f.read()
print(data)
- ファイルを書きます
f.write('nick handsome')
- ファイルを閉じます
唯一のファイルやPythonのメモリフットプリント内のファイルへの参照を削除するには、デルFを使用しますが、オペレーティングシステムの占有を削除しませんでした注:
シャットダウンするf.close()を持つオペレーティング・システムは、ファイルを取り
絶対および相対パス
絶対パス:ディレクトリ(C / D / Eディスク)との開始から、これは絶対パスと呼ばれています
path = r'r'E:\老男孩学习笔记\7.29学习内容\01 执行Python程序的两种方式'
f = open(path,'w')
f.write('nick handsome')
f.close() #关闭文件
:(現在のフォルダへの相対パスは、あなたが)ファイル名に直接書き込むことができます
path = r'test.py' #鼠标右键点击文件,copy path
f = open(path,'r')
print(f.read)
f.close() # 关闭文件
例外処理
例外:エラーがあります
異常異常異常に構文とロジック
構文の例外:構文エラーは例外です(にSyntaxError)
異常を検索:
try:
if
except Exception as e: # 语法异常无法捕捉
print(e)
論理異常:多くの場合、エラーと同じではありません
print(1)
# try: # 尝试
# print(3) # 代码自上而下,上面会运行
# 1 / 0 # 错误不影响其他的代码,报错马上终止try缩进里面的代码
# print(4)
# except: # 除此之外
# pass
# 1/0
# print(2)
print(1)
# try: # 尝试
# num = input('输入一个值') # 123124
# dic = {'0': 'a'}
# print(dic[num]) # dic['123124']
#
# print(3) # 代码自上而下,上面会运行
# 1 / int(num) # 错误不影响其他的代码,报错马上终止try缩进里面的代码
# print(4)
except ZeroDivisionError as e: # 除此之外 # try里面的代码出了什么错误,就得用什么错误捕捉 # as是把错误赋值给e# print('e:', e)# except KeyError as e: # 可以写多个except捕捉多个异常# print('e:', e)
最も重要なことは、この異常な使用を捕獲しようとした後、単に次のように、これは、十分であることを覚えておいてください
print(1)
# try: # 尝试
# num = input('输入一个值') # 123124
# dic = {'0': 'a'}
# print(dic[num]) # dic['123124']
#
# print(3) # 代码自上而下,上面会运行
# 1 / int(num) # 错误不影响其他的代码,报错马上终止try缩进里面的代码
# print(4)
#
# except Exception as e: # Exception可以捕捉任意异常
# print('e:', e)
#
# # 1/0
# print(2)
データ型の分類
番号格納された値に応じて
格納された値:整数、浮動小数点、文字列
記憶された複数の値:リスト、辞書、集合、組
注文または無秩序:
順序付き:文字列、リスト、タプル
障害:辞書、コレクション
変数または非可変時:
変数:リスト、セット、辞書
不変:整数、浮動小数点、タプル列
TODOの使用状況
if true:
TODO :
pass
TODOの下に表示されたPythonインタプリタでは、施設に直接ジャンプします
私はゲームの年齢を推測します
# 0. 奖励物品存放在文件price.txt
#
# 1. 给定年龄(随机18-60),用户可以猜三次年龄
#
# 2. 年龄猜对,让用户选择两次奖励
#
# 3. 用户选择两次奖励后可以退出
# '''
#
# import random
#
# age = random.randint(18, 60) # 随机一个数字,18-60岁
# count = 0 # 计数
#
# f = open('price.txt', 'r', encoding='utf8') # price.txt右下角为什么编码,则encoding为什么编码
# price_dict = f.read()
# price_dict = eval(price_dict) # type:dict # 获取奖品字典
# f.close()
#
# price_self = dict()
#
# while count < 3:
# count += 1
#
# inp_age = input('请输入你想要猜的年龄:')
#
# # 判断是否为纯数字
# if not inp_age.isdigit():
# print('搞事就骂你傻逼')
# continue
#
# inp_age = int(inp_age)
#
# # 筛选年龄范围
# if inp_age > 60 or inp_age < 18:
# print('好好题目,18-60岁,非诚勿扰')
# continue
#
# # 核心逻辑
# if age == inp_age:
# print('猜中了,请选择你的奖品')
#
# # 打印商品
# for k, v in price_dict.items():
# print(f'奖品编号:{k} {v}')
#
# # 获取奖品的两次循环
# for i in range(2):
# price_choice = input('请输入你需要的奖品编号:')
#
# if not price_choice.isdigit():
# print("恭喜你已经获得一次奖品,奖品为空!并且请输入正确的奖品编号!")
# continue
#
# price_choice = int(price_choice)
#
# if price_choice not in price_dict:
# print('你想多了吧!')
# else:
# price_get = price_dict[price_choice]
# print(f'恭喜中奖:{price_get}')
#
# if price_self.get(price_get):
# price_self[price_get] += 1
# else:
# price_self[price_get] = 1
#
# print(f'恭喜你获得以下奖品:{price_self}')
# break
#
# elif age > inp_age:
# print('猜小了')
# elif age < inp_age:
# print('猜大了')
#
# continue
'''
0. 奖励物品存放在文件price.txt
1. 给定年龄(随机18-60),用户可以猜三次年龄
2. 年龄猜对,让用户选择两次奖励
3. 用户选择两次奖励后可以退出
'''
import random
age = random.randint(18, 60) # 随机一个数字,18-60岁
count = 0 # 计数
f = open('price.txt', 'r', encoding='utf8') # price.txt右下角为什么编码,则encoding为什么编码
price_dict = f.read()
price_dict = eval(price_dict) # type:dict # 获取奖品字典
f.close()
price_self = dict()
while count < 3:
count += 1
inp_age = input('请输入你想要猜的年龄:')
# 判断是否为纯数字
if not inp_age.isdigit():
print('搞事就骂你傻逼')
continue
inp_age = int(inp_age)
# 筛选年龄范围
if inp_age > 60 or inp_age < 18:
print('好好题目,18-60岁,非诚勿扰')
continue
# 核心逻辑
if age == inp_age:
print('猜中了,请选择你的奖品')
# 打印商品
for k, v in price_dict.items():
print(f'奖品编号:{k} {v}')
# 获取奖品的两次循环
for i in range(2):
price_y = input(f'请按"Y or y"转动转盘{chr(9803)}:').lower()
if price_y != 'y':
print("恭喜你已经获得一次奖品,奖品为空!并且请输入'Y or y'!")
continue
#
price_choice = random.randint(0, 10000)
if price_choice > 0 and price_choice < 9900:
price_choice = 6
print('恭喜你, 下次一定有好东西!!', end=' ')
else:
price_choice = price_choice % 7
if price_choice not in price_dict:
print('你想多了吧!')
else:
price_get = price_dict[price_choice]
print(f'恭喜中奖:{price_get}')
if price_self.get(price_get):
price_self[price_get] += 1
else:
price_self[price_get] = 1
print(f'恭喜你获得以下奖品:{price_self}')
break
elif age > inp_age:
print('猜小了')
elif age < inp_age:
print('猜大了')
continue