热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python3.3学习笔记3-数据类型和运算

基本数据类型:bool,布尔类型:True,False数字:如number8.进制:二进制:0b或者0B,比如0b11-&

基本数据类型:

  • 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]

 

参考文献:

  • 字符集和字符编码:http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html 

 


推荐阅读
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
  • 1关于字符串相邻的两个或多个字符串字面值(引号引起来的字符)将会自动连接到一起:str_catpython!str_cat输出:python!把很长 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • Python教学练习二Python1-12练习二一、判断季节用户输入月份,判断这个月是哪个季节?3,4,5月----春 ... [详细]
  • 一json文件JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使 ... [详细]
  • 编码:  将文本转换成字节流的过程。即Unicode----------->特定格式的编码方式,产生特定的字节流保存在硬盘中(一般为utf-8格式)。解码:  将硬盘中的字节流转换成文本的过程。 ... [详细]
  • python教程分享Python获取时光网电影数据的实例代码
    一、前言有时候觉得电影真是人类有史以来最伟大的发明,我喜欢看电影,看电影可以让我们增长见闻,学习知识。从某种角度上而言,电影凭借自身独有的魅力大大延长了人类的”寿命&r ... [详细]
  • Python3怎么获取文件属性
    这篇文章给大家分享的是有关Python3怎么获取文件属性的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。os.stat(path ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
author-avatar
mobiledu2502903757
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有