2019年8月6日の学習内容とノート

概要

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()
### 作用:毫无用处,面试经常问

基本的な文書処理

ファイルはどのようなものです:オペレーティングシステムは、顧客に仮想ユニットを提供します

ファイルの役割:データストレージ

プロセスファイルを開きます。

  1. パスをコピーし、パス#は、ファイルを右クリックし、ファイルを探します
path = r'r'E:\老男孩学习笔记\7.29学习内容\01 执行Python程序的两种方式'
  1. ダブルクリックして開きます
f = open(path,'w') # r-->read 只读; w-->只写,清空当前文件后写入,自动创建文件
print(f)
  1. ファイルを参照してください。
data = f.read()

print(data)
  1. ファイルを書きます
f.write('nick handsome')
  1. ファイルを閉じます

唯一のファイルや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

おすすめ

転載: www.cnblogs.com/chmily/p/11317977.html