zoukankan      html  css  js  c++  java
  • 数据类型、字符串操作

    访问字典的key、value;

    1、dict.items()

    2、for key in dict: value = dict.get(key)    print(key,value)

    两种方式比较,推荐第二种方式,性能较好,第一种方式的原理是:先转化为列表,[(key,value)],再循环

     元组;

    tup=(),  属不可变数据类型

    访问元组:支持下标索引,支持分片、元组内容不支持修改和删除,可以删除整个元组,元组之间可以使用运算符+、*,(1,2)+(3,4)=(1,2,3,4)

     bool布尔类型;

    True、False,判断时按照:非空即真,非0即真,可简化代码。

    l = []
    if l:
    print('True')
    else:
    print('False')

    集合;

    集合(set),是一个无序的、不重复的数据类型,可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

    s = set() #创建空集合

    s = set("ABC") 、 s = {'A','B','C'}   #创建一个非空集合

    s = set(list) #使用可迭代对象创建一个集合

    集合支持成员测试,in,not in,支持len(),返回集合的长度

    s1 & s2, #交集

    s1 | s2  #并集

    s1 - s2 #差集,即属于s1不属于s2的元素

    s1 ^ s2  #对称差集,即把a集合和b集合相同的元素去掉,剩下的

    s1 > s2 # True s1 是 s2 的超集
    s1 < s2 # False s1 不是 s2 的子集

    向集合中添加元素;

    字符串的常用方法;

    对字符串的操作方法都不会改变原来字符串的值

    count(str, beg= 0,end=len(string)),#返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数, s.count('a')

    find(str, beg=0, end=len(string)),#检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1,s.find('a')

    index(str, beg=0, end=len(string)),#跟find()方法一样,只不过如果str不在字符串中会报一个异常

    s.strip('.') ,#默认去掉字符串两边的空格和换行符

    join(s),#以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串,print('='.join(s))

    s.startswith('135')  s.endswith('com'),#以指定字符开头。结尾

    replace(old, new [, max]),#把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次

    bytes.decode(encoding="utf-8", errors="strict"),#Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。

    encode(encoding='UTF-8',errors='strict'),以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'

    python数据类型转换;

    int(x),#将x转换为一个整数

    float(x),#将x转化为一个浮点数

    str(x),#将对象x转化为一个字符串

    tuple(s) ,#将序列s转化为一个元组

    list(s) ,#将序列s转化为一个列表

    set(s), #转为可变集合

    dict(d),#创建一个字典。d 必须是一个 (key, value)元组序列。

    hex(x),#将一个整数转换为一个十六进制字符串

    oct(x),#将一个整数转换为一个八进制字符串

    文件的操作;

    python中操作文件,需要先使用pen()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写

    file object =open("filename.txt",mode="r", encoding="utf-8")
    filename,可以用绝对路径和相对路径表示
    encoding="utf-8",encoding表示编码集. 根据文件的实际保存编码进行获取数据
    mode决定了打开文件的模式:只读,写入,追加等,参考如下数据:
    t    文本模式 (默认)。
    x    写模式,新建一个文件,如果该文件已存在则会报错。
    b    二进制模式。
    +    打开一个文件进行更新(可读可写)。
    U    通用换行模式(不推荐)。
    r    以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    rb    以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
    r+    打开一个文件用于读写。文件指针将会放在文件的开头。
    rb+    以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
    w    打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb    以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    w+    打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb+    以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    a    打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    ab    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    a+    打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab+    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

    read(count)
    ,从打开的文件中读取字符串,参数count=读取的字符/字节数,无参数会读取到文件的末尾,如果再次读取. 那么会在当前位置继续去读而不是从头读

    readline(),一次读取一行数据,注意每次读取出来的数据都会有一个 所以呢. 需要我们使用strip()方法来去掉 或者空格

    readlines()将每一行形成一个元素, 放到一个列表中. 将所有的内容都读取出来. 所以也是. 容易出现内存崩溃的问题.不推荐使用

    循环读取,避免内存溢出:for line in f: print(line.strip())

    write(string)方法可将任何字符串写入一个打开的文件,write()方法不会在字符串的结尾添加换行符(' '),string参数即要写入的内容

    # 打开一个文件
    fo = open("foo.txt", "w")
    fo.write( "www.runoob.com! Very good site! "

    文件定位:seek(n) 光标移动到n位置, 注意, 移动的单位是byte. 所以如果是UTF-8的中文部分要是3的倍数.通常我们使用seek都是移动到开头或者结尾.
    移动到开头: seek(0)
    移动到结尾: seek(0,2) seek的第二个参数表示的是从哪个位置进行偏移, 默认是0, 表示开头, 1表示当前位置, 2表示结尾
    tell() 使用tell()可以帮我们获取到当前光标在什么位置

    python的目录;

    os模块的mkdir()方法在当前目录下创建新的目录,

    # 创建目录test, os.mkdir("test")

    #显示当前的工作目录,os.getcwd()

    #删除目录,rmdir('dirname'),删除这个目录之前,它的所有内容应该先被清除。

    #删除文件,os.remove("test2.txt")

  • 相关阅读:
    IL查看泛型
    IL查看委托
    IL查看override
    为VS集成IL环境
    HashTable Dictionary HashMap
    C#集合类
    Resharper团队协作之TODO
    怪物彈珠Monster Strike 攻略
    [Editor]Unity Editor类常用方法
    C# Reflection BindingFlags
  • 原文地址:https://www.cnblogs.com/whcp855/p/12777171.html
Copyright © 2011-2022 走看看