python学习之路-基础篇-day02

大纲:
1.集合操作
2.文件操作
3.分支语句
一.集合操作
概念:我们把一些元素的总体叫做集合
特点:明确性,无序性,互异性
与列表和元组不同,集合是无序的,也无法通过数字进行索引。

#列表的创建
a=[1,2,3,4]
b=list([1,2,3,4])
print(type(b))
#元祖的创建
c=(1,2,3)
d=tuple([1,2,3])
print(type(d))
#字典的创建
e={1:2,3:4}
f=dict({1:2,3:4})
print(type(f))

1.集合的创建

list0="hello"#字符串
b=set(list0)#创建->集合
print(b)
#{'h', 'e', 'l', 'o'}
list1=[1,5,8,9,7,6,6]#列表
a=set(list1)#创建-->集合
print(a)
#{1, 5, 6, 7, 8, 9}

集合的特点:
1)集合一个非常重要的功能就是去重
2)创建集合的对象必须可hash,字符串,列表,元祖,字典等
3)集合是无序的
2.集合的相关操作
以下操作结果的基准都是a,b,c的原始赋值

list1=[1,5,8,9,7,6,6]
a=set(list1)
print(a)#{1, 5, 6, 7, 8, 9}
list0="hello"
b=set(list0)
print(b)#{'h', 'e', 'l', 'o'}
list2=[2,0,66,8,7,9]
c=set(list2)
print(c)#{2,0,66,8,7,9}

print(a.intersection(c))#1.交集         #a&b   {8, 9, 7}
print(a.union(c))#2.并集          #a|b   {0, 1, 2, 5, 6, 7, 8, 9, 66}
print(a.difference(c))#3.差集          #a-b   {1, 5, 6}
print(a.issubset(c))#4.子集    False
print(a.issuperset(c))#5.父集  False
print(a.symmetric_difference(c))#对称差集  集合A与集合B的对称差集定义为集合A与集合B中所有不属于A∩B的元素的集合,记为A△B  {0, 1, 2, 5, 6, 66}
print(a.isdisjoint(c))  #判断有没有交集,没有是TRUE,有是FALSE    False
a.add(99)
print(a)  #添加{1, 99, 5, 6, 7, 8, 9}
a.remove(5)
print(a)  #删除 {1, 6, 7, 8, 9}
print(len(b))    #求集合长度  4
c.pop()
print(c)  #随机删除一个
b.discard("e")
print(b)  #删除  {'h', 'l', 'o'}
print("l" in b )   #判断是否是成员  True
print("l" not in b )  #判断是否是成员  False

二.文件的基本操作
1.打开文件

#1.打开文件
f1=open("凉凉","r",encoding="utf-8")

1)f1的open方法打开文件有三个参数,第一个参数指打开的文件的名字,第二个参数指以什么方式打开这个文件,第三个参数是指以UTF8编码方式转换数组为字串
2)文件的打开方式:
r 只读,r+读写,不创建
w新建只写,不能读,w+新建读写,二者都会将文件内容清零
r+:可读可写,若文件不存在,报错;w+: 可读可写,若文件不存在,创建
a:附加写方式打开,不可读;a+: 附加读写方式打开,会在文件的末尾接着写
rb,wb:都是以二进制形式打开写入,二进制文件(例如:视频文件,网络传输也是使用二进制形式)
以 ‘U’ 标志打开文件, 所有的行分割符通过 Python 的输入方法(例#如 read*() ),返回时都会被替换为换行符\n
3)注意字符编码的转换,在后面会详细的讲到
2.读取文件

#1.打开并读取文件,此处的读取文件是读取整个文件,read(n)-读取文件的n个字符
f2=open("凉凉",encoding="utf-8").read()
print(f2)
#2.以列表的形式读取文件
f1=open("凉凉","r",encoding="utf-8")
#readlines()-逐行读取出整个文件的内容,以列表的形式返回结果
print(f1.readlines())
#3.循环文件-----最优
for i in f1: 
    print(i.strip())

利用read()和readlines()方法我们只能一次性读取出整个文件(这里补充一下,文件的读取是一次性的,读完就不可再读)
1)要想读取我们想要的行数

#读取前5行的内容
f1=open("凉凉","r",encoding="utf-8")
#利用循环遍历一行一行的读取内容,readline()-逐行读取
for i in range(5):
    print(f1.readline().strip())
#在第十行插入我想要的新内容
f1=open("凉凉","r",encoding="utf-8")
for index,item in enumerate(f1.readlines()):  #利用enumerate取得列表的下标和元素
    if index==10:
        print("--------------------")
    print(item.strip())

2)只取出第六行的数据并加以修改

f=open("凉凉","r",encoding="utf8")
print(f.readlines()[5].strip()+"i like it")
#结果:前世你怎舍下i like it

3.打印进度条
flush()用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入

import sys,time
for i in range(50):
    sys.stdout.write("#")#stdout是标准输出
    time.sleep(1)
    sys.stdout.flush()#刷新

4.为了避免忘记关闭文件,我们可以使用with的方式打开文件

with open("凉凉","r",encoding="utf-8") as f:

5.关闭文件 f.close()
6.显示当前光标的位置f.tell(),默认在0,一个英文字符占1个字符,一个中文汉字占3个字符
7.调整光标的位置f.seek(n)
三.分支语句
1.三元运算
result=值1 if 条件 else 值2
2.if..else语句
输入用户名和密码,通过判断是否正确

age=int(input("age:"))
if age<30:
    print("i am young")
elif age<50:
    print("oh i am become old..")
else:
   print("i am old")

3.while语句

count=0
while count<10:
    print("happy")
    count+=1
#white TRUE:是无限循环的意思

4.for语句

for i in range(10):
    print("loop:", i )

5.break和continue区别
//break是结束整个循环体,continue是结束单次循环
比方说:
while(x++ < 10)
{
if(x == 3)
{
break;
}
printf(“%d\r\n”, x);
}
结果是输出 1 2 就退出了整个while循环
但是如果使用continue
while(x++ < 10)
{
if(x == 3)
{
continue;
}
printf(“%d\r\n”, x);
}
结果是:1 2 4 5 6 7 8 9 10 可见他仅仅是不输出3,因为他结束了本次循环

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值