python老男孩第二课

yuhankeji / 2023-05-04 / 原文

文件处理

  • 读文件实例    f=open('d:/a.txt','rb')   for line in f.readlines(): line=line.strip('\n').split(:)
  1.     R    以只读的模式打开文件     r+(rw)    从光标的位置读或者写
  2.     W   以只写的模式打开文件,如果没有这个文件会创造一个文件,如果有这个文件,文件中内容会被清空。      w+  会把原文件清空后再写入
  3.     A     以追加的模式打开文件   f.flush    刷新(把数据写到文件中)       str.strip()   把字符串中行首行尾空格退掉(只能脱行首行尾的内容)   str.split('\')  把字符串以'\'分割转换成列表
  4.  R+B   以二进制格式读写模式打开      Windows系统下用
  5.  W+B  以二进制格式写读模式打开    Windows系统下用
  6.  A+B   以二进制格式追加及读模式打开    Windows系统下用
  • f.closesd   判断此文件是否关闭  返回的是布尔值       f.encoding        f.mode  模式     f.name   文件的名字   f.seek   光标跳转到指定位置    f.tell  光标当前位置     f.next    下一行(迭代)与readline  效果一样,next读到头会报错而reandline读到头不会报错   f.truncate ([size])  从文件开头截取(截断)多少并保存到原来的文件中
  • f.read    以字符串方式读出所有内容       f.readlines   以列表的方式读出所有内容     f.readline    以字符串方式读一行   
  • f.write    写入一行    f.writelines   写入多行  注  写入的只能是字符串 f.flush()  强制刷新   

字符串处理

  • S.find(substring,[start,end])   指定范围查找字符串,返回索引值,否则返回-1   s.index(substring,[start,end])  指定范围查找字符串,找不到产生异常
  • s.rfind(substring,[start,end])   反向查找   s.rindex(substring,[start,end])   
  • s.count(substring,[start,end])   返回找到的字符串的个数
  • s.capitalize  首字母大写    s.lower    转小写  s.upper   转大写   s.swapcase   大小写互换
  • s.spiit (str,'') 将string 转list,以空格切分    s.join(list,'')  将list转string  以空格连接
  • s.startswith()    以什么开头    s.replsce(old,new)    把老字符替换成新的字符

处理字符串的内置函数

  • len(str)   字符串长度             cmp(str,str1)  两个字符串比较,第一个大返回1           max(str)     寻找字符串中最大的字符     min(str)  寻找字符串中最小的字符   

列表   有序的

  • list.append()   #追加元素   list. extend(list1或'str')  在原列表后追加一个列表组合成新列表       list.insert(number,'')  指定位置插入数据    del list[num] 删除下标对应的元素  list.remove('')  删除指定元素  list.pop()删除最后一个元素并返回     
  • list.count('')   指定元素出现的次数     list.index('',[start,stop])  返回指定元素的下标  list.reverse()   倒序   list.sort()  排序
  • list[star:stop:step]  列表切片

元祖  有序的   一但生成不可改变

  • tuple.count()    tuple.index()

字典    所有key必须是唯一

  • d.get(key,0)    同 dict[key],返回key对应的values,没有返回0.[] 没有则抛出异常    d.has_key[key]   有则返回True,没有则返回False   d.keys() 返回字典键的列表   d.values()  以列表的形式返回字典中的值,返回值的列表可包含重复元素    d.items()   将所有的字典项以列表方式返回,这些列表中的每一项都采自于[key,values],但项在返回时并没有特殊的顺序  d.setdefault(k,[d)  如果字典中key不存在,添加key,d   存在则不修改(初始值)
  • d.update[dict2]   增加合并字典(跟新到老字典中)   d.popitem()  得到一个pair,并从字典中删除它,已空则抛出异常  d.pop(key)  删除指定key 对应的values     d.clear()  清空字典,同del dict。   d.copy()  拷贝字典(浅复制)    d.cmp(dict1,dict2)比较字典(优先级为元素个数,键大小,键值大小)  第一个大返回1,小返回-1,一样返回0
  • dictionary                          dict1=dict   #一个字典赋值给另一个字典     dict2 = dict.copy()   克隆即拷贝

列表与字典

  • 字典   ①查找和插入速度快,不会随着KEY的增加而增加 ②需要占用大量的内存      ③key 不可变    ④默认是无序
  • 列表    ①查找和插入速度随着元素增加而增加                  ②占用空间小        ③通过下标查询   ④    有序        

集合  所有元素都是唯一     

  • 特点:   ①无序    ②元素不重复
  • 功能 :① 关系测试    ②去重
  • set.remove()  删除

 a=set([1,2,3,4])    b=set([3,4,5,6])

a&b 交集 {3,4}   a|b 并集 {1,2,3,4,5,6}   a-b 差集 {1,2}   a^b  对称差集 {1,2,5,6}  a.issubset(b)  a是b的子集  False    a.issuperse   a是否包含b  false

作业:

员工信息表       用户可以模糊查询员工信息

购物车程序

#_*_ coding:utf-8 _*_

shopping={'apple':5,'book':12,'bike':800,'car':120000,'ipone':8000}
in_row=int(input('请输入工资:'))
bank=in_row
list1={}

if in_row ==0:
    vip=input('请输入商品名称:')
    mondy=int(input('请输入商品价格:'))
    shopping[vip]=mondy
while bank >0:
    print(shopping)
    gouwuche=input('请输入购物名称:')
    if shopping.get(gouwuche, 0) > 0:
        if shopping.get(gouwuche,0)<=bank:
            if list1.get(gouwuche,0)>0:
                list1[gouwuche]=list1[gouwuche]+1
            else:
                list1[gouwuche]=1
            bank=bank-shopping.get(gouwuche,0)
            print('购物清单:',list1)
            print('余额:',bank)
        else:
            print('余额不足')
    else:
        print('无此商品')
    ques=input('是否退出或结账')
    if ques=='y' or ques=='Y':
        break
else:
    print('余额为0,不能购买商品')
print('购物清单:', list1)
print('余额:', bank)
查看源码