zoukankan      html  css  js  c++  java
  • Python3.3 学习笔记3 数据类型和运算

    基本数据类型:

    • bool,布尔类型:True,False

     

    • 数字:如number=8.
      • 进制:
        • 二进制:0b或者0B,比如0b11 -> 十进制3
        • 八进制:0o或者0O,比如0o11 -> 十进制9
        • 十进制:
        • 十六进制:0x或者0X,比如ox11 -> 十进制17
      • 简单的运算符:
        • +,-,*,/,//(求商),%(取余),**(幂运算)  #没有++,--运算符
        • 位运算符<<,>>,|(按位或),&(按位与)
        • 三元运算符:A=X?Y:Z  (等同于:A=Y if X else Z)
      • 浮点数:如2.5,12.3E-3即0.0123
      • 复数:虚部使用j表示,例 2+3j
      • 相关模块:math,random

     

    • bytes,字节: 而一系列不可改变的介于0-255之间的数字被称为bytes对象。每一个byte可以是一个ASCII字符或者十六进制数从\x00到\xff。
      • 不能对bytes对象直接复制,可以将bytes转换为一个bytearray对象,bytearray对象是可以被修改的。如barr = batearray(bytes_object)
      • bytes对象和string不可以混在一起:
        • print(by+str) 导致错误:TypeError: can't concat bytes to str
        • bytes对象有一个decode()方法,向该方法传递一个字符编码参数,该方法会返回使用该种编码解码后的字符串。同样的,string有一个encode()方法,完成反向的工作。
          • btest = b'abcde'
          • strtest = 'abc'
          • btest.decode('utf-8')    #结果'abcde'
          • strtest.encode('utf-8')    #结果b'abc'
      • 例:
        • btest = b'abcde'
        • len(btest)     #结果5
        • btest += b'f'    #结果b'abcdef'
        • btest[0]   #结果97

     

    • string,字符串(由一系列不可改变的Unicode字符组成):如strtest='abcde'。(不能使用strtest[0] = 'a'改变字符串的内容)
      • 字符串提取 
        • print (strtest[0]),输出a
        • print (strtest[-1]),输出e
        • 范围引用,基本样式[下限:上限:步长]
          • print (strtest[:3])      #输出abc 
          • print (strtest[1:-1])   #输出bcd
          • print (strtest[::2])     #输出ace
        • print (strtest + strtest) = print (strtest*2),输出abcdeabcde
      •  字符串包含判断:in, not in
        • "He" in str
        • “she” not in str
      • 字符串的方法
        • S.find(substring, [start [,end]]) #可指范围查找子串,返回索引值,否则返回-1
        • S.rfind(substring,[start [,end]]) #反向查找
        • S.index(substring,[start [,end]]) #同find,只是找不到产生ValueError异常
        • S.rindex(substring,[start [,end]])#同上反向查找
        • S.count(substring,[start [,end]]) #返回找到子串的个数
        • S.lowercase()
        • S.capitalize()      #首字母大写
        • S.lower()           #转小写
        • S.upper()           #转大写
        • S.swapcase()        #大小写互换
        • S.split(str, ' ')   #将string转list,以空格切分
        • S.join(list, ' ')   #将list转string,以空格连接
        • S.format():接受位置参数和关键字参数. 例:"I like {0} and {{rice}}.".format("eggs.") -> "I like eggs and {rice}."
      • 处理字符串的内置函数
        • len(str)                #串长度
        • cmp("my friend", str)   #字符串比较。第一个大,返回1
        • max('abcxyz')           #寻找字符串中最大的字符
        • min('abcxyz')           #寻找字符串中最小的字符
      • string的转换
        • oat(str) #变成浮点数,float("1e-1")  结果为0.1
        • int(str)        #变成整型,  int("12")  结果为12
        • int(str,base)   #变成base进制整型数,int("11",2) 结果为2
        • long(str)       #变成长整型,
        • long(str,base)  #变成base进制长整型,
      • 字符串的格式化(注意其转义字符,大多如C语言的,略)
      • str_format % (参数列表) #参数列表是以tuple的形式定义的,即不可运行中改变
      • >>>print ("%s's height is %dcm" % ("My brother", 180))
      • #结果显示为 My brother's height is 180cm
      • 单引号和双引号的字符串的对比
        • "Hello, world" 与 'Hello, world'相同
        • "Let's go!"(正常字符串) 与 'Let's go!'(非正常字符串 -> 使用转义字符修改为正常字符串:'Let\'s go!')
        • print ('ab\ncd') :输出分别为'ab'和'cd'的两行;而print (r'ab\ncd')直接输出无转移的字符串'ab\ncd'
    •  complex:虚数
      • 例:8.3+3j
    • 列表 List,如[1,2,3,4]。
        • 0为第一个元素,-1为最后一个元素(-2为倒数第二)
        • len(list):取出list的长度
        • type(variable):显示变量的类型
        • 新建list对象:newlist = list()
        • 切片:mylist[start:end:step],其中 start 和 end 分别是开始和结束索引,step 是在切片时要跨过的条目数量
        • 删除一段数据:L[1:3]=[]
      • 列表的方法
        • L.append(var):追加元素
        • L.clear():删除所有元素
        • L.copy:
        • L.count(var):该元素在列表中出现的个数
        • L.extend(list):追加list,即合并list到L上
        • L.index(var):该元素的位置,无则抛异常 
        • L.insert(index,var):插入元素
        • L.pop(var):返回最后一个元素,并从list中删除之
        • L.remove(var):删除第一次出现的该元素
        • L.reverse():倒序
        • L.sort():排序
      • list 操作符:,+,*,关键字del
        • a[1:]:片段操作符,用于子list的提取
        • [1,2]+[3,4] :为[1,2,3,4]。同extend()
        • [2]*4:为[2,2,2,2]
        • del L[1]:删除指定下标的元素
        • del L[1:3]:删除指定下标范围的元素
      • list的复制:
        • L1 = L:L1为L的别名,用C来说就是指针地址相同,对L1操作即对L操作。函数参数就是这样传递的
        • L1 = L[:]:L1为L的克隆,即另一个拷贝。

     

    • 字典
      • dict = {'ob1':'computer', 'ob2':'mouse', 'ob3':'printer'}
        每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。键是唯一的,字典只认最后一个赋的键值。
      • dictionary的方法
        • D.clear():清空字典,同del dict
        • D.copy():拷贝字典
        • D.fromkeys():
        • D.get(key, 0):同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
        • D.items():
        • D.keys():返回字典键的列表
        • D.pop():
        • D.popitem():得到一个pair,并从字典中删除它。已空则抛异常
        • D.setdefault():
        • D.update(dict2):增加合并字典
        • D.values():
      • dictionary的复制
        dict1 = dict:别名
        dict2=dict.copy():克隆,即另一个拷贝

      

    • tuple:元组(即常量数组)
      • tuple = ('a', 'b', 'c', 'd', 'e')
      • 可以用list的 [],:操作符提取元素。就是不能直接修改元素。
      • 元组的方法:
        • T.count(val):计算值为val变量的个数
        • T.index(val,[begin,[end]]):返回第一个值为val的变量编号

     

    • list 和 tuple 的相互转化:tuple(ls),list(ls)

    基本语句:

    •  赋值语句:
      • 普通复制:a=1
      • 元组复制:a,b=1,'x'  #a=1, b='x'
      • 列表复制:[a,b]=[1,'x']  #a=1, b='x'
      • 顺序复制:a,b,c,d='HTML'  #a='H', b='T', c='M', d='L'(只针对单个字符)
      • 多目标复制:a=b=c=d=1  #a=1,b=1,c=1,d=1
    • 删除变量:var = None 或者 del [variable]

    参考文献:

     

  • 相关阅读:
    WebAPI 资料
    TransactionScope事务类的使用
    Go入门笔记34-Go 使用Ioctl
    解决XShell XFTP传输Go可执行文件导致出错问题
    Go入门笔记33-Go 交叉编译
    博客园添加横向菜单
    C# 正则替换、Json格式化等
    Ubuntu批量修改文件后缀
    Linux免密登录
    Go入门笔记32-继承
  • 原文地址:https://www.cnblogs.com/xumengpiaoyun/p/2814610.html
Copyright © 2011-2022 走看看