北理工嵩天Python语言程序设计笔记(4 基本数据类型)

前言

本文是对《北理工 嵩天/黄天宇/礼欣 Python语言程序设计》的学习笔记,供自己查阅使用。

文章目录

  1. 北理工嵩天Python语言程序设计笔记(目录)
  2. 北理工嵩天Python语言程序设计笔记(2 Python基本语法元素)
  3. 北理工嵩天Python语言程序设计笔记(3 Python基本图形绘制)
  4. 北理工嵩天Python语言程序设计笔记(4 基本数据类型)
  5. 北理工嵩天Python语言程序设计笔记(5 程序的控制结构)
  6. 北理工嵩天Python语言程序设计笔记(6 函数和代码复用)
  7. 北理工嵩天Python语言程序设计笔记(7 组合数据类型)
  8. 北理工嵩天Python语言程序设计笔记(8 文件和数据格式化)
  9. 北理工嵩天Python语言程序设计笔记(9 程序设计方法学)
  10. 北理工嵩天Python语言程序设计笔记(10 Python计算生态概览)


4 基本数据类型

4.1 数字类型及操作

4.1.1 整数类型

  • 可正可负,没有取值范围限制

  • pow(x,y)函数:计算 x y x^y xy ,想算多大算多大

  • 4种进制表示形式

    • 十进制:1010, 99, -217
    • 二进制,以0b或0B开头:0b010, -0B101
    • 八进制,以0o或0O开头:0o123, -0O456
    • 十六进制,以0x或0X开头:0x9a, -0X89

4.1.2 浮点数类型

  • 带有小数点及小数的数字

  • 浮点数间运算存在不确定尾数

    >>>0.1 + 0.3
    0.4
    >>>0.1 + 0.2
    0.30000000000000004
    
  • round(x, d):对x四舍五入,d是小数截取位数

  • 浮点数间运算与比较用round()函数辅助

  • 浮点数可以采用科学计数法表示,使用字母e或E作为幂的符号,以10为基数,格式如下:
    e 。4.3e-3值为0.0043 9.6E5值为960000.0

4.1.3 复数类型

z= 1.23e-4+5.6e+89j

z.real获得实部,z.imag获得虚部

4.1.4 数值运算操作符

在这里插入图片描述
在这里插入图片描述

  • 二元操作符有对应的增强赋值操作符

在这里插入图片描述

  • 类型间可进行混合运算,生成结果为"最宽"类型,整数->浮点数-> 复数

4.1.5 数值运算函数

一些以函数形式提供的数值运算功能
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 实例3: 天天向上的力量

#DayDayUpQ1.py
dayup= pow(1.001, 365)
daydown= pow(0.999, 365)
print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))

#DayDayUpQ3.py
dayup= 1.0
dayfactor = 0.01
for i in range(365):
	if i% 7 in [6,0]:
		dayup= dayup*(1-dayfactor)
	else:
		dayup= dayup*(1+dayfactor)
print("工作日的力量:{:.2f}".format(dayup))

#DayDayUpQ4.py
def dayUP(df):
	dayup= 1
	for i in range(365):
		if i % 7 in [6,0]:
			dayup= dayup*(1 -0.01)
		else:
			dayup= dayup*(1 + df)
	return	dayup
dayfactor= 0.01
while dayUP(dayfactor) < 37.78:
	dayfactor+= 0.001
print("工作日的努力参数是:{:.3f}".format(dayfactor))

4.3 字符串类型及操作

4.3.1 字符串类型的表示

  • 字符串由一对单引号或一对双引号表示,字符串是字符的有序序列,可以对其中的字符进行索引,从0开始;

  • 字符串有2类共4种表示方法:

    • 由一对单引号或双引号表示,仅表示单行字符串

    • 由一对三单引号或三双引号表示,可表示多行字符串(多行注释)

    • 在字符串中包含双引号或单引号:

      '这里有个双引号(“)‘或者"这里有个单引号(’)”

      ‘’‘这里既有单引号(’)又有双引号(") ‘’’

  • 字符串的使用:索引,返回字符串中单个字符;切片:返回字符串中一段字符子串。

  • 使用[M:N: K]根据步长对字符串切片,M缺失表示至开头,N缺失表示至结尾,根据步长K对字符串切片;[::-1] 逆序

  • 转义符\

    • 转义符表达特定字符的本意,“这里有个双引号(”)"

    • 转义符形成一些组合,表达一些不可打印的含义

      “\b"回退,”\n"换行(光标移动到下行首),"\r"回车(光标移动到本行首)

4.3.2 字符串操作符

在这里插入图片描述

4.3.3 字符串处理函数

在这里插入图片描述
在这里插入图片描述

  • Unicode编码

从0到1114111(0x10FFFF)空间,每个编码对应一个字符

4.3.4 字符串处理方法

  • 方法:特指.()风格中的函数()
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

4.3.5 字符串类型的格式化

  • 字符串格式化使用.format()方法,用法如下:

    <模板字符串>.format(<逗号分隔的参数>)

字符串中槽{}的默认顺序与format()中参数的顺序对应
在这里插入图片描述

  • 槽内部对格式化的配置方式

    { <参数序号> :<格式控制标记>}
    在这里插入图片描述

>>>"{0:=^20}".format("PYTHON")
'=======PYTHON======='
>>>"{0:*>20}".format("BIT")
'*****************BIT'
>>>"{:10}".format("BIT")
'BIT   ' 
>>>"{0:,.2f}".format(12345.6789)
'12,345.68'
>>>"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
'110101001,Ʃ,425,651,1a9,1A9'
>>>"{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'

4.3.6 f-string 格式化

f-string 格式化 就是在字符串模板前面加上f,然后占位符使用{} ,里面直接放入对应的数据对象。

f'税前薪资是:{salary}元, 缴税:{tax}元, 税后薪资是:{aftertax}元'
print(f'文章中 {{ 符号 出现了 {times1} 次')

Python解释器是3.6 以后的版本才支持,各种设置和format的槽内部是一样的。

采用 f-string 方式格式化的 字符串内容本身就有 { 或者 } 符号,一定要 双写 进行转义,否则会被当成是 格式化占位符。

4.4 模块2: time库的使用

4.4.1time库基本介绍

提供系统级精确计时功能,用于程序性能分析

import time
time.<b>()

4.4.2 时间获取

在这里插入图片描述
在这里插入图片描述

4.4.3 时间格式化

将时间以合理的方式展示出来
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.4.4 程序计时应用

  • 程序计时指测量起止动作所经历时间的过程
  • 测量时间:perf_counter()
  • 产生时间:sleep()
    在这里插入图片描述
    在这里插入图片描述

4.5 实例4: 文本进度条

4.5.1 需求分析

  • 采用字符串方式打印可以动态变化的文本进度条
  • 进度条需要能在一行中逐渐变化

4.5.2 简单的开始

#TextProBarV1.py
import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
	a = '*'* i
	b = '.'* (scale -i)
	c = (i/scale)*100
	print("{:^3.0f}%[{}->{}]".format(c,a,b))
	time.sleep(0.1)
print("------执行结束------")

4.5.3 单行动态刷新

  • 刷新的本质是:用之后打印的字符覆盖之前的字符
  • 不能换行:print()需要被控制
  • 要能回退:打印后光标退回到之前的位置\r
#TextProBarV2.py
import time
for i in range(101):
	print("\r{:3}%".format(i), end="")
	time.sleep(0.1)

IDLE屏蔽了\r功能

4.5.4 完整效果

#TextProBarV3.py
import time
scale = 50
print("执行开始".center(scale//2,"-"))
start = time.perf_counter()
for i in range(scale+1):
	a = '*'* i
	b = '.'* (scale -i)
	c = (i/scale)*100
	dur= time.perf_counter() -start
	print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')
	time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'-'))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值