Python程序设计第2章Python基本数据类型Python程序设计2.1数字类型2.2字符串2.3字符串格式化Python程序设计整形浮点型复数数值运算操作符数值运算函数数字类型数字类型整数类型与数学中整数的概念一致-可正可负,没有取值范围限制-pow(x,y)函数:计算xy,想算多大算多大pow(2,100)1267650600228229401496703205376pow(2,pow(2,15))1415461031044954789001553……数字类型整数类型四种进制表示形式-十进制:1010,99,-217-二进制,以0b或0B开头:0b010,-0B101-八进制,以0o或0O开头:0o123,-0O456-十六进制,以0x或0X开头:0x9a,-0X89数字类型浮点数类型-与数学中实数的概念一致,带有小数点及小数的数字-浮点数取值范围和小数精度都存在限制,但常规计算可忽略-取值范围数量级约-10308至10308,精度数量级10-16数字类型浮点数类型示例0.0,-77.,-2.1796e4,4.3e-3,9.6E5(科学计数法)科学计数法使用字母“e”或者“E”作为幂的符号,以10为基数。科学计数法含义如下:aeb=a*10b浮点数可以采用科学计数法表示数字类型浮点数类型浮点数间运算存在不确定尾数,不是bug0.1+0.3-0.40.1+0.2-0.30000000000000004不确定尾数数字类型浮点数类型浮点数间运算存在不确定尾数,不是bug数字类型浮点数类型-round(x,d):对x四舍五入,d是小数截取位数-浮点数间运算及比较用round()函数辅助-不确定尾数一般发生在10-16左右,round()十分有效数字类型浮点数类型-round(x,d):对x四舍五入,d是小数截取位数-浮点数间运算及比较用round()函数辅助-不确定尾数一般发生在10-16左右,round()十分有效数字类型浮点数类型关于Python浮点数,需要知道多些•取值范围和精度基本无限制•运算存在不确定尾数round()•科学计数法表示数字类型复数类型与数学中复数的概念一致数字类型复数类型实例z=1.23e-4+5.6e+89j-实部是什么?z.real获得实部-虚部是什么?z.imag获得虚部数字类型数值运算操作符操作符是完成运算的一种符号体系数字类型数值运算操作符操作符是完成运算的一种符号体系数字类型数值运算操作符二元操作符有对应的增强赋值操作符数字类型数值运算操作符类型间可进行混合运算,生成结果为最宽类型-三种类型存在一种逐渐扩展或变宽的关系:整数-浮点数-复数例如:123+4.0=127.0(整数+浮点数=浮点数)数字类型数值运算操作符类型间可进行混合运算,生成结果为最宽类型-三种类型可以相互转换函数:int(),float(),complex()示例:int(4.5)=4(直接去掉小数部分)float(4)=4.0(增加小数部分)complex(4)=4+0J数字类型数值运算操作符类型间可进行混合运算,生成结果为最宽类型-函数:type(x),返回x的类型,适用于所有类型的判断数字类型数值运算函数数字类型数值运算函数数字类型数值运算函数数字类型math库概述math库是Python提供的内置数学类函数库math库不支持复数类型math库一共提供了4个数学常数和44个函数。44个函数共分为4类,包括:16个数值表示函数、8个幂对数函数、16个三角对数函数和4个高等特殊函数数字类型math库概述首先使用保留字import引用该库•第一种:importmath对math库中函数采用math.b()形式使用•第二种,frommathimport函数名对math库中函数可以直接采用函数名()形式使用数字类型math库概述首先使用保留字import引用该库•第一种:importmath对math库中函数采用math.b()形式使用•第二种,frommathimport函数名对math库中函数可以直接采用函数名()形式使用数字类型math库概述math库包括4个数学常数数字类型math库概述math库包括16个数值表示函数数字类型math库概述math库中包括8个幂对数函数数字类型math库概述math库包括六个三角双曲函数数字类型math库概述math库包括4个高等特殊函数Python程序设计2.1数字类型2.2字符串2.3字符串格式化字符串类型字符串类型的表示字符串操作符字符串处理函数字符串处理方法字符串类型的格式化字符串类型字符串类型字符串类型的表示字符串有2类共4种表示方法-由一对单引号或双引号表示,仅表示单行字符串请输入带有符号的温度值:或者'C‘-由一对三单引号或三双引号表示,可表示多行字符串'''Python语言'''三引号不是多行注释吗?字符串类型字符串类型的表示-如果希望在字符串中包含双引号或单引号呢?-如果希望在字符串中既包括单引号又包括双引号呢?'这里有个双引号()'或者这里有个单引号(')'''这里既有单引号(')又有双引号()'''字符串类型字符串类型的表示Python同时允许使用负数从字符串右边末尾向左边进行反向索引,最右侧索引值是-1Python中字符串索引从0开始,一个长度为L的字符串最后一个字符的位置是L-1字符串类型字符串的使用使用[]获取字符串中一个或多个字符-索引:返回字符串中单个字符字符串[M]-切片:返回字符串中一段字符子串字符串[M:N]-字符串[M:N:K],根据步长K对字符串切片字符串类型字符串的使用转义符\-转义符表达特定字符的本意这里有个双引号(\)结果为这里有个双引号()-转义符形成一些组合,表达一些不可打印的含义\b回退\n换行(光标移动到下行首)\r回车(光标移动到本行首)字符串类型字符串的使用转义符\-转义符表达特定字符的本意这里有个双引号(\)结果为这里有个双引号()-转义符形成一些组合,表达一些不可打印的含义\b回退\n换行(光标移动到下行首)\r回车(光标移动到本行首)字符串类型字符串操作符字符串之间可以通过+或*进行连接加法操作(+)将两个字符串连接成为一个新的字符串乘法操作(*)生成一个由其本身字符串重复连接而成的字符串xins如果x是s的子串,返回True,否则返回False字符串类型字符串操作符可以通过for和in组成的循环来遍历字符串中每个字符格式如下:forvarinstring:处理字符串类型字符串操作符实例:获取星期字符串-输入:1-7的整数,表示星期几-输出:输入整数对应的星期字符串-例如:输入3,输出星期三字符串类型字符串处理函数字符串类型字符串处理函数字符串类型字符串处理函数字符串类型字符串处理函数实例:恺撒密码凯撒密码是古罗马凯撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,对应关系如下:原文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:DEFGHIJKLMNOPQRSTUVWXYZABC字符串类型字符串处理函数实例:恺撒密码原文P密文CC=A+(P-A+3)%26P=A+(C-A-3)%26字符串类型字符串的处理方法方法在编程中是一个专有名词-方法特指a.b()风格中的函数b()-方法本身也是函数,但与a有关,a.b()风格使用-字符串及变量也是a,存在一些方法字符串类型字符串的处理方法字符串类型字符串的处理方法字符串类型字符串的处理方法字符串类型字符串类型的格式化字符串format()方法的基本使用格式是:模板字符串.format(逗号分隔的参数)格式化是对字符串进行格式表达的方式字符串类型字符串类型的格式化字符串类型字符串类型的格式化槽内部对格式化的配置方式字符串类型字符串类型的格式化字符串类型字符串类型的格式化字符串类型字符串类型的格式化实例:根据指定的宽度打印价格列表字符串类型字符串类型的格式化字符串类型实例文本进度条利用print()函数实现简单的非刷新文本进度条基本思想是按照任务执行百分比将整个任务划分为100个单位,每执行N%输出一次进度条。每一行输出包含进度百分比,代表已完成的部分(**)和未完成的部分(..)的两种字符,以及一个跟随完成度前进的小箭头,风格如下:字符串类型time库的使用time库是Python中处理时间的标准库-计算机时间的表达-提供获取系统时间并格式化输出功能-提供系统级精确计时功能,用于程序性能分析字符串类型time库的使用time库包括三类函数-时间获取:time()ctime()gmtime()-时间格式化:strftime()strptime()-程序计时:sleep(),perf_counter()字符串类型时间获取函数描述time()获取当前时间戳,即计算机内部时间值,浮点数time.time()1516939876.6022282ctime()获取当前时间并以易读方式表示,返回字符串time.ctime()'FriJan2612:11:162018'gmtime()获取当前时间,表示为计算机可处理的时间格式time.gmtime()time.struct_time(tm_year=2018,tm_mon=1,tm_mday=26,tm_hour=4,tm_min=11,tm_sec=16,tm_wday=4,tm_yday=26,tm_isdst=0)字符串类型时间格式化将时间以合理的方式展示出来-格式化:类似字符串格式化,需要有展示模板-展示模板由特定的格式化控制符组成-strftime()-strptime()字符串类型函数描述strftime(tpl,ts)tpl是格式化模板字符串,用来定义输出效果ts是计算机内部时间类型变量t=time.gmtime()time.strftime(%Y-%m-%d%H:%M:%S,t)'2018-01-2612:55:20'strptime(str,tpl)str是字符串形式的时间值tpl是格式化模板字符串,用来定义输入效果timeStr='2018-01-2612:55:20'time.strptime(timeStr,%Y-%m-%d%H:%M:%S)time.struct_time(tm_year=2018,tm_mon=1,tm_mday=26,tm_hour=4,tm_min=11,tm_sec=16,tm_wday=4,tm_yday=26,tm_isdst=0)字符串类型格式化控制符字符串类型格式化控制符字符串类型格式化控制符字符串类型程序计时-程序计时指测量起止动作所经历时间的过程-测量时间:perf_counter()-产生时间:sleep()字符串类型程序计时函数描述perf_counter()返回一个CPU级别的精确时间计数值,单位为秒由于这个计数值起点不确定,连续调用差值才有意义start=time.perf_counter()318.66599499718114end=time.perf_counter()341.3905185375658end-start22.724523540384666字符串类型程序计时函数描述sleep(s)s拟休眠的时间,单位是秒,可以是浮点数defwait():time.sleep(3.3)wait()#程序将等待3.3秒后再退出字符串类型实例文本进度条字符串类型实例文本进度条单行动态刷新-刷新的本质是:用后打印的字符覆盖之前的字符-不能换行:print()需要被控制-要能回退:打印后光标退回到之前的位置\r字符串类型实例文本进度条IDLE本身屏蔽了单行刷新功能,如果希望获得刷新效果,请使用控制台命令行执行字符串类型实例文本进度条字符串类型文本进度条的不同设计函数