码迷,mamicode.com
首页 > 其他好文 > 详细

8.6

时间:2019-08-06 19:58:21      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:打开文件   资源   操作系统   文件的   文件夹   请求   文件路径   文本   pen   

Python深浅拷贝

  • 拷贝(赋值)、浅拷贝、深拷贝
  1. 可变or不可变:d不变值可变,即在原值的基础上修改,则为可变数据类型;值变id也变,即重新申请一个空间放入新值,则为不可变数据类型。

拷贝

  • 如果l2是l1的拷贝对象,则l1内部的任何数据类型的元素变化,则l2内部的元素也会跟着改变,因为可变类型值变id不变。

浅拷贝

  • 如果l2是l1的浅拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,则l2会跟着改变。

深拷贝

  • 如果l2是l1的深拷贝对象,则l1内的不可变元素发生了改变,l2不变;如果l1内的可变元素发生了改变,l2也不会变,即l2永远不会因为l1的变化而变化。

文件的基本操作

  • 从硬盘中读取数据

如果我们需要打开一个文件,需要向操作系统发起请求,要求操作系统打开文件,占用操作系统资源。Python中使用open()方法可以打开某个具体的文件,open()方法内写入文件路径

open(r‘/Users/mac/desktop/jupyter/pythonCourseware/32.txt‘)

如果给列表增加值,我们需要给列表赋值后才能给对应的列表增加值。文件也是如此。

f = open(r‘/Users/mac/desktop/jupyter/pythonCourseware/32.txt‘)
print(f)

打开文件之后,文件不仅占用了内存,他还对应了操作系统打开的以文件,相当于使用文本编辑器打开了一个文件。并且我们说了我们操控文件只是为了读和写,因此打开文件并不是目的,读和写才是目的

绝对路径和相对路径

绝对路径

  • Windows系统绝对路径从盘符(C:、D:)开始写一个完整的路径。

  • macos系统从根目录(/Users)开始写一个完整的路径。

    相对路径

    • 相对于当前执行文件所在的文件夹开始找。
    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

8.6

标签:打开文件   资源   操作系统   文件的   文件夹   请求   文件路径   文本   pen   

原文地址:https://www.cnblogs.com/xwjhyy/p/11311122.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!