Day02

本文详细介绍了Python编程语言的基础知识,包括列表、字典、元组、集合等数据类型的常见操作,如插入、删除、排序等。同时,讲解了文件读写的基本方法,如打开、读取、写入和追加文件,以及如何处理图片和视频数据。此外,还介绍了函数的定义和使用,以及如何创建和调用函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

课堂笔记

#列表类型

#1.insert() 插入
list1=['tank',18,'male',3.0,9,'广东']
list1.insert(2,'oldboy')
print(list1)
# 2.pop() #取出
# 3.remove() #移除

# 4.count() #查看值的个数
print(list1.count('tank'))

# 5.index() #查看值的索引
print(list1.index('tank'))
# 6.clear() #清空列表的值
list1.clear()
print(list1)
# 7.copy() #浅拷贝
#将list1的内存地址浅拷贝赋值给了list2
list2=list1.copy()
print(list2,'添加值前')

#将list1的原地址直接赋值给了list3
list3=list1
print(list3,'添加值后')

#深拷贝
#将list1的值深拷贝赋值给list4
from copy import deepcopy
list4=deepcopy(list1)

#追加jason到list1中
list1.append('jason')
print(list2,'添加值前')
print(list3,'添加值后')

#给list1中的可变列表进行追加值
list1[8].append('tank')

#打印直接赋值,深,浅拷贝的结果
#浅拷贝:list1的列表中外层值改变对其不影响
#深拷贝:把list1中的所有值完全拷贝到一个新的地址中
#进而与list1完全隔离开
print(list2)
print(list3)
print(list4)

# 8.extend()#合并
list1=[1,2,3]
list2=[4,5,6]
list1.extend(list2)
print(list2)

# 9.reverse()#反转
list1.reverse()
print(list1)

# 10.sort()#排序
list3=[1,3,5,8,10,2,4,6]
#升序
# list3.sort()
# print(list3)

#降序
list3.sort(reverse=True)
print(list3)


#字典的内置方法(字典是无序类型)
#1.按照key取、存值
dict1={'name':'饶涛','age':18,'sex':'famale','school':'安徽工程大学'}
#根据key取饶涛的学校
print(dict1['school'])
print(dict1['sal'])

#get()
#第一个参数是字典的key
#第二个参数是默认值,若key存在则取key对应的值,否则取默认值
print(dict1.get('school','华南理工大学')
print(dict1.get('sal','15000')

#2.len
print(len(dict1))

#3.成员运算in和not in
print('name'in dict1)#true
print('sal'in dict1)#false
print('sal'not in dict1)#true

#4.删除
del dict1["name"]
print(dict1)

#pop()
#根据字典中的key取出对应的值赋值给变量name
name=dict1.pop('name')
print(dict1)
print(name)

#随机取出字典中的某个值
dict1.popitem()
print(dict1)

#5.key value items
print(dict1.keys())
print(dict1.values())
print(dict1.items())

#6.循环
#循环所有的key
for key in dict1:
    print(key)

#7.update()
print(dict1)
dict2={"work":"student"}
#把dict2加的dict1字典中
dict1.update(dict2)
print(dict1)

#元祖类型(在小括号内,以逗号隔开存放多个值)
#注意:元祖和列表的区别,元祖是不可变类型,列表是可变类型

tuple1=(1,2,3,4,5,6)
# print(tuple1)
#优先掌握
#1.按索引取值
#print(tuple1[2])

#2.切片(顾头不顾尾)
print(tuple1[0:6]) #(1,2,3,4,5,6)

#步长
print(tuple1[0:6:2])#(1,3,5)

#3.长度
print(len(tuple1))#6

#4.成员运算in 和not in
print(1 in tuple1)#true
print(1 not in tuple1)#false

#5.循环
for line in tuple1:
    print(line)

#集合类型(一般用于去重)
#在{}用逗号隔开,可存放多个值,但集合会自带默认去重功能
set={1,2,3,4,2,1,3,4}
print(set1)

#集合是无序的
set1=set()
ste2={}
print(set1)
print(set2)

set2['name']='tank'
print(type(set2))

  文件操作

#文件读写基本操作

#对文本进行操作
#open(参数1:文件的名字,参数2:操作模式,参数3:指定字符)
#f:称之为句柄
#r:避免转义符

#打开文件会产生两种资源,一种是python解释器与python文件的资源,程序结束python
#另一种是
#写文件
f=open(r'D:\python\文件的名字.txt',mode="wt",encoding="utf-8")
f.write('hello tank!')
f.close()

#读文件
f=open(
    r'D:\python\文件的名字.txt',
    'r',#默认rt
    encoding="utf-8")

res=f.read()
print(res)
f.close()

# 文件追加模式 a
f=open(r'D:\python\文件的名字.txt',
       'a', #默认at模式
       encoding="utf-8")
f.write('\nhello jason')
f.close()

  文件处理之上下文处理

#文件处理之上下文管理;with
#with会自带close()功能
#会在文件处理完以后自动调用close()关闭文件

#写文件
with open(r'file1.txt','w',encoding='utf-8')as f:
    f.write('life is sort,u need python!')

#读文件
with open(r'file1.txt','r',encoding='utf-8')as f:
    res=f.read()
    print(res)

#文件追加
with open(r'file1.txt','a',encoding='utf-8')as f:
    f.write('\n AAA')

  

结果:

 

图片处理

# 获取网页图片的地址,这里为图片的URL,后缀为.jpg
#content返回的是bytes,二级制型的数据。图片、视频等都是二进制的数据
import requests
res =requests.get('http://pic53.nipic.com/file/20141115/9448607_175255450000_2.jpg')
# 写入图片

with open('da.jpg','wb') as f:
    f.write(res.content)
# 读图片

with open('da.jpg','rb') as f:
    res=f.read()
    print(res)
# 图片拷贝

with open('da.jpg','rb') as f,open('ta.jpg','rb') as w:
    res=f.read()
    w.write(res)

  

 

读写视频操作

#读写视频
with open('f:\\rt\qq文件\\tianyan_sys.mp4','rb')as f,open('tianyan_sys_copy.mp4','wb')as w:
    res=f.read()
    print(res)
    w.write(res)

#一行一行读文件
with open('F:\\rt\QQ文件\\tianyan_sys.mp4','rb') as f,open('tianyan_sys_copy.mp4','wb') as w:
    #一次打开文件所有内容,若文件的大小超出内存的大小就会导致内存溢出
    f.read()
    #一行一行读取文件内容,一行一行写入文件中,避免内存溢出
    for line in f:
        w.write(line)

    #res=f.read()
    #print(res)
    #w.write(res)

  函数

'''
1.什么是函数?
函数相当于工具,需要事先准备好,在需要时再使用

2.如何使用函数?
函数必须先定义,后调用



'''
# 3.函数的语法:
# def cup(参数1,参数2...):
#     """
#     函数的声明
#     水杯,用来盛水和喝水
#     """
#     函数体代码(逻辑代码)
#     return 返回值

'''
def:(全称defind)用来声明定义函数的关键字
函数名:看其名,知其意
():括号,存放的是接收外界的参数
注释:用来说明函数的作用
函数体代码:逻辑代码
return:后面跟函数的返回值
'''

#注册功能

def register():
    '''
    此函数注册功能

    :return:
    '''
    while True:
    #让用户输入用户名和密码
        user=input('请输入用户名:').strip()
        pwd=input('请输入密码:').strip()
        re_pwd=input('请输入密码:').strip()

        #判断两次输入的密码是否一致
        if pwd==re_pwd:
            #格式化字符串的三种方式

            # user_info='用户名:%s,密码:%s' %(user,pwd)
            # user_info='用户名:{},密码:{}'.format(user,pwd)

            #字符串前写一个f相当于调用format方法
            user_info=f'用户名:{user},密码:{pwd}'

            #把用户信息写入文件中
            with open('user.txt','w',encoding='utf-8')as f:
                f.write(user_info)

            break

        else:
            print('两次密码不一致,请重新输入!')


#调用函数: 函数名+括号 即调用函数
register()


'''
函数在定义阶段发生的事情
1.先打开python解释器
2.加载05 函数基础.py文件
3.python解释器会帮我们检测py文件中的语法,但是只会检测python语法,不会执行函数体代码
'''

#def foo():
    #print('from foo!')
    #bar()
    #print(

#调用阶段,会执行foo函数体代码
#foo()

  结果

 

课后作业:

user1.txt

代码

def login():
    i = 1
    while i <= 3:
        user = input('请输入用户名:').strip()
        pwd = input('请输入密码:').strip()

        with open('D:\\python\\Day02\\user.txt', 'r', encoding='utf-8') as f:
            old_info = f.read().split(',')

        for index in range(len(old_info)):
            if old_info[index] == user:
                if old_info[index+1] == pwd:
                    print("登录成功")
                    i = 4
                break
            else:
                print("用户名或密码错误")
                i += 1
                break

login()

  

 

登录成功

登录失败

 

转载于:https://www.cnblogs.com/raotao/p/11012768.html

资源下载链接为: https://pan.quark.cn/s/9648a1f24758 这个HTML文件是一个专门设计的网页,适合在告白或纪念日这样的特殊时刻送给女朋友,给她带来惊喜。它通过HTML技术,将普通文字转化为富有情感和创意的表达方式,让数字媒体也能传递深情。HTML(HyperText Markup Language)是构建网页的基础语言,通过标签描述网页结构和内容,让浏览器正确展示页面。在这个特效网页中,开发者可能使用了HTML5的新特性,比如音频、视频、Canvas画布或WebGL图形,来提升视觉效果和交互体验。 原本这个文件可能是基于ASP.NET技术构建的,其扩展名是“.aspx”。ASP.NET是微软开发的一个服务器端Web应用程序框架,支持多种编程语言(如C#或VB.NET)来编写动态网页。但为了在本地直接运行,不依赖服务器,开发者将其转换为纯静态的HTML格式,只需浏览器即可打开查看。 在使用这个HTML特效页时,建议使用Internet Explorer(IE)浏览器,因为一些老的或特定的网页特效可能只在IE上表现正常,尤其是那些依赖ActiveX控件或IE特有功能的页面。不过,由于IE逐渐被淘汰,现代网页可能不再对其进行优化,因此在其他现代浏览器上运行可能会出现问题。 压缩包内的文件“yangyisen0713-7561403-biaobai(html版本)_1598430618”是经过压缩的HTML文件,可能包含图片、CSS样式表和JavaScript脚本等资源。用户需要先解压,然后在浏览器中打开HTML文件,就能看到预设的告白或纪念日特效。 这个项目展示了HTML作为动态和互动内容载体的强大能力,也提醒我们,尽管技术在进步,但有时复古的方式(如使用IE浏览器)仍能唤起怀旧之情。在准备类似的个性化礼物时,掌握基本的HTML和网页制作技巧非常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值