zoukankan      html  css  js  c++  java
  • python学习笔记(3)

    ......................................................................................................................................................................................

    基本数据类型

    ......................................................................................................................................................................................

    数字类型及操作

    整数类型

    可正可负,没有取值范围限制
    pow(x,y)函数:计算 x^y,想算多大算多大

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

    浮点数类型

    带有小数点及小数的数字
    浮点数取值范围和小数精度都存在限制,但常规计算可忽略
    取值范围数量级约-10307至10308,精度数量级10^-16
    需要注意的是:浮点数间的运算存在不确定尾数,这不是bug
    例如:0.1 + 0.3
    0.4
    0.1 + 0.2
    0.30000000000000004
    不确定尾数
    由此可借用round()函数
    round(x, d):对x四舍五入,d是小数截取位数
    浮点数间运算与比较用round()函数辅助
    不确定尾数一般发生在10-16左右,round()十分有效
    科学计数法
    使用字母e或E作为幂的符号,以10为基数,格式如下:
    (a)e(b)表示 a*10^b
    例如:4.3e-3 值为0.0043

    复数类型

    a+bj 被称为复数,其中,a是实部,b是虚部
    例:z = 1.23e-4+5.6e+89j
    实部是什么? z.real 获得实部
    虚部是什么? z.imag 获得虚部

    数值运算操作符

    操作符及使用 描述
    x + y 加,x与y之和
    x – y 减,x与y之差
    x * y 乘,x与y之积
    x / y 除,x与y之商 10/3结果是3.3333333333333335
    x // y 整数除,x与y之整数商 10//3结果是3
    +x x本身
    -x x的负数
    x % y 余数,模运算 10%3结果是1
    x ** y 幂运算,x的y次幂,x^y。当y是小数时,则是开方运算 10**0.5结果是√10
    x op= y 即 x = x op y,其中op为二元操作符 如:x += y

    数字类型的关系

    类型间可进行混合运算,生成结果为"最宽"类型
    三种类型存在一种逐渐"扩展"或"变宽"的关系:
    整数 -> 浮点数 -> 复数
    例如:123 + 4.0 = 127.0 (整数+浮点数 = 浮点数)

    数值运算函数

    一些以函数形式提供的数值运算功能

    函数及使用 描述
    abs(x) 绝对值,x的绝对值 abs(-10.01) 结果为 10.01
    divmod(x,y) 商余,(x//y, x%y),同时输出商和余数 divmod(10, 3) 结果为 (3, 1)
    pow(x, y[, z]) 幂余,(x**y)%z,[..]表示参数z可省略 pow(3, pow(3, 99), 10000) 结果为 4587
    round(x[, d]) 四舍五入,d是保留小数位数,默认值为0 round(-10.123, 2) 结果为 -10.12
    max(x1,x2, … ,xn) 最大值,返回x1,x2, … ,xn中的最大值,n不限 max(1, 9, 5, 4, 3) 结果为 9
    min(x1,x2, … ,xn) 最小值,返回x1,x2, … ,xn中的最小值,n不限 min(1, 9, 5, 4, 3) 结果为 1
    int(x) 将x变成整数,舍弃小数部分int(123.45) 结果为123; int("123") 结果为123
    float(x) 将x变成浮点数,增加小数部分float(12) 结果为12.0; float("1.23") 结果为1.23
    complex(x) 将x变成复数,增加虚数部分complex(4) 结果为 4 + 0j

    实例3: 天天向上的力量

    问题:工作日的努力
    工作日模式要努力到什么水平,才能与每天努力1%一样?
    A君: 一年365天,每天进步1%,不停歇
    B君: 一年365天,每周工作5天休息2天,休息日下降1%,要多努力呢?

    #DayDayUpQ4.py
    def dayUP(df):     //根据df参数计算工作日力量的函数参数不同,这段代码可共用def保留字用于定义函数
    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:   //while保留字判断条件是否成立条件成立时循环执行
    dayfactor += 0.001
    print("工作日的努力参数是:{:.3f} ".format(dayfactor))
    
    

    字符串类型及操作

    字符串类型的表示

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

    • 由一对单引号或双引号表示,仅表示单行字符串
      "请输入带有符号的温度值: " 或者 'C'
    • 由一对三单引号或三双引号表示,可表示多行字符串
      ''' Python
      语言 '''
    • 如果希望在字符串中包含双引号或单引号呢?
      '这里有个双引号(")' 或者 "这里有个单引号(')"
    • 如果希望在字符串中既包括单引号又包括双引号呢?
      ''' 这里既有单引号(')又有双引号 (") '''
      字符串切片高级用法
      使用[M: N: K]根据步长对字符串切片
    • <字符串>[M: N],M缺失表示至开头,N缺失表示至结尾
      "〇一二三四五六七八九十"[:3] 结果是 "〇一二"
    • <字符串>[M: N: K],根据步长K对字符串切片
      "〇一二三四五六七八九十"[1:8:2] 结果是 "一三五七"
      "〇一二三四五六七八九十"[::-1] 结果是 "十九八七六五四三二一〇"
      字符串的特殊字符
      转义符
    • 转义符表达特定字符的本意
      "这里有个双引号(")" 结果为 这里有个双引号(")
    • 转义符形成一些组合,表达一些不可打印的含义
      ""回退 " "换行(光标移动到下行首) " " 回车(光标移动到本行首)

    字符串操作符

    由0个或多个字符组成的有序字符序列

    操作符及使用 描述
    x + y 连接两个字符串x和y
    n * x 或 x * n 复制n次字符串x
    x in s 如果x是s的子串,返回True,否则返回False

    获取星期字符串

    #WeekNamePrintV2.py
    weekStr = 
    "一二三四五六日"
    weekId = eval(input("请输入星期数字(1-7):"))
    print("星期" + weekStr[weekId-1])
    
    

    字符串处理函数

    一些以函数形式提供的字符串处理功能

    函数及使用 描述
    len(x) 长度,返回字符串x的长度 len("一二三456") 结果为 6
    str(x) 任意类型x所对应的字符串形式 str(1.23)结果为"1.23" str([1,2])结果为"[1,2]"
    hex(x) 或 oct(x) 整数x的十六进制或八进制小写形式字符串 hex(425)结果为"0x1a9" oct(425)结果为"0o651"
    chr(u) x为Unicode编码,返回其对应的字符
    ord(x) x为字符,返回其对应的Unicode编码

    字符串处理方法

    "方法"在编程中是一个专有名词
    "方法"特指(a).(b)()风格中的函数(b)()
    方法本身也是函数,但与(a)有关,(a).(b)()风格使用
    字符串或字符串变量是(a),存在一些可用方法
    一些以方法形式提供的字符串处理功能

    方法及使用 描述
    str.lower() 或 str.upper() 返回字符串的副本,全部字符小写/大写"AbCdEfGh".lower() 结果为 "abcdefgh"
    str.split(sep=None) 返回一个列表,由str根据sep被分隔的部分组成"A,B,C".split(",") 结果为 ['A','B','C']
    str.count(sub) 返回子串sub在str中出现的次数"an apple a day".count("a") 结果为 4
    str.replace(old, new) 返回字符串str副本,所有old子串被替换为new"python".replace("n","n123.io") 结果为"python123.io"
    str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar可选"python".center(20,"=") 结果为'=python='
    str.strip(chars) 从str中去掉在其左侧和右侧chars中列出的字符"= python= ".strip(" =np") 结果为"ytho"
    str.join(iter) 在iter变量除最后元素外每个元素后增加一个str",".join("12345") 结果为"1,2,3,4,5" #主要用于字符串分隔等

    字符串类型的格式化

    格式化是对字符串进行格式表达的方式
    字符串格式化使用.format()方法,用法如下:
    <模板字符串>.format(<逗号分隔的参数>)
    槽内部对格式化的配置方式
    { <参数序号> : <格式控制标记>}
    : | <填充> | <对齐> | <宽度> | <,> | <.精度> | <类型>
    引导符号|用于填充的单个字符 | < 左对齐 > 右对齐 ^ 居中对齐 | 槽设定的输出宽度 | 数字的千位分隔符|浮点数小数精度|整数类型等

    模块2: time库的使用

    time库是Python中处理时间的标准库
    time库包括三类函数

    • 时间获取:time() ctime() gmtime()
    • 时间格式化:strftime() strptime()
    • 程序计时:sleep(), perf_counter()

    时间获取

    函数 描述
    time() 获取当前时间戳,即计算机内部时间值,浮点数 >>>time.time() 1516939876.6022282
    ctime() 获取当前时间并以易读方式表示,返回字符串 >>>time.ctime() 'Fri Jan 26 12:11:16 2018'
    gmtime() 获取当前时间,表示为计算机可处理的时间格式 >>>time.gmtime()time.struct_time(tm_year=2018, tm_mon=1...

    时间格式化

    函数 描述
    strftime(tpl, ts) tpl是格式化模板字符串,用来定义输出效果 ts是计算机内部时间类型变量

    格式化控制符

    格式化字符串 日期/时间说明 值范围和实例
    %Y 年份 0000~9999,例如:1900
    %m 月份 01~12,例如:10
    %B 月份名称 January~December,例如:April
    %b 月份名称缩写 Jan~Dec,例如:Apr
    %d 日期 01~31,例如:25
    %A 星期 Monday~Sunday,例如:Wednesday
    %a 星期缩写 Mon~Sun,例如:Wed
    %H 小时(24h制) 00~23,例如:12
    %h 小时(12h制) 01~12,例如:7
    %p 上/下午 AM, PM,例如:PM
    %M 分钟 00~59,例如:26
    %S 00~59,例如:26

    时间格式化

    函数 描述
    strptime(str, tpl) str是字符串形式的时间值 tpl是格式化模板字符串,用来定义输入效果

    程序计时

    函数 描述
    perf_counter() 返回一个CPU级别的精确时间计数值,单位为秒 由于这个计数值起点不确定,连续调用差值才有意义
    sleep(s) s拟休眠的时间,单位是秒,可以是浮点数>>>def wait(): time.sleep(3.3) >>>wait() #程序将等待3.3秒后再退出

    实例4: 文本进度条

    单行动态刷新

    • 刷新的本质是:用之后打印的字符覆盖之前的字符
    • 不能换行:print()需要被控制
    • 要能回退:打印后光标退回到之前的位置
    #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("
    {:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')
    time.sleep(0.1)
    print("
    "+"执行结束".center(scale//2,'-'))
    
    
  • 相关阅读:
    python 执行sql得到字典格式数据
    python爬虫 url链接编码成gbk2312格式
    windows环境下elasticsearch安装教程(单节点)
    python SQLServer 存储图片
    爬虫的本质是和分布式爬虫的关系
    requests form data 请求 爬虫
    mysql 删除 binlog 日志文件
    查看mysql数据表的大小
    xshell 连接报错 Disconnected from remote host
    centos 7.3 安装 mysqldb 报错 EnvironmentError: mysql_config not found ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
  • 原文地址:https://www.cnblogs.com/xusze/p/10358732.html
Copyright © 2011-2022 走看看