python复习1

  • 程序的基本编写方法:IPO

I:input,输入,程序的输入(程序的开始)

P:process,处理,程序的主要逻辑

O:output,输出,程序的输出(程序展示运算结果的方式)

编程解决问题的步骤:分析问题(想清楚),划分边界(规划IPO),设计算法(关注算法),编写程序,调试测试(运行调试),升级维护(更新完善)【确定IPO→编写程序→调试程序】

二、计算机是根据指令操作数据的设备→特性:功能性,可编程性

功能性:对数据的操作,数据计算、输入输出处理和结果存储等

可编程性:根据一系列指令自动地、可预测地、准确地完成操作者的意图

计算机的发展参照摩尔定律(预测法则),表现为指数方式

程序设计是计算机可编程性的体现

三、编程语言的执行方式:编译和解释

源代码,目标代码

编译:将源代码一次性转换成目标代码的过程;一次性翻译,之后不再需要源代码;可优化,执行速度快

解释:将源代码逐条转换成目标代码同时逐条运行的过程;每次都需要源代码参与;不可优化

四、根据执行方式不同,编程语言分为:静态语音(使用编译执行的编程语言);脚本语言(使用解释执行的编程语言,如python)

静态语音——编译器一次性生成目标代码,优化更充分,运行速度快

脚本语言——执行程序时需要源代码,源代码在维护更灵活,跨多个操作系统平台

五、学习计算机编程好处:能训练思维(计算思维),增进认识,带来乐趣,提高效率,带来就业机会

六、python程序语法元素分析:程序的格式框架,注释,命名与保留字,字符串,赋值语句,input()函数,分支语句,eval()函数,print()函数,循环语句,函数

  1. 程序的格式框架:“缩进”:代码前的空格,用来表达程序的格式框架;严格明确,所属关系,长度一致
  1. 注释:辅助性信息,分为单行注释(以#开头)和多行注释(以”’开头和结尾)
  1. 命名与保留字:

     变量:程序中用于保存和表示数据的占位符号;变量用标识符(名字)来表示,关联标识符的过程叫命名;用=赋值

    命名规则:大小写字母、数字、下划线和汉字等字符及组合(注意:大小写敏感,首字符不能是数字,不与保留字相同,如123python是错的,python和Python不同)

保留字(关键字):内部保留使用的标识符,33个(书P39,需掌握其中的26个)

  1. 数据类型

字符串、整数、浮点数、列表

例:整数类型:110101  字符串类型:”110,101”  列表类型:[110,101]

  • 字符串类型:由0个或多个字符组成的有序字符序列;由一对单引号或一对双引号表示;序号从0开始

序号分为正向递增序号(0,1,2,...)和反向递减序号(-1,-2,...)

索引:返回字符串中的单个字符 <字符串>[序号位置]

      例:TempStr[-1]:获取TempStr字符串倒数第一个字符

切片:返回字符串中一段字符子串  <字符串>[M:N]

      例:TempStr[0:-1]:从0开始,但不到最后一个字符的字符串

  • 数字类型:整数(如12,-46)和浮点数(实数,带有小数部分,如1.8,-6.3)
  • 列表类型:由0个或多个数据组成的有序序列,用[ ]表示,用逗号隔开;使用in判断一个元素是否在列表中

例:TempStr[-1] in ['C','c'] 判断前者是否与列表中的C或c相同,结果→True/False

  1. 语句与函数
  • 赋值语句:由=构成的一行代码;用来给变量赋予新的数据值;赋值语句右侧的数据类型同时作用于变量
  • 分支语句:由判断条件决定程序运行方向的语句;使用if,elif,else构成条件判断的分支结构
  • 函数:根据输入参数产生不同输出的功能过程  <函数名>(<参数>)
  1. python程序的输入输出:
  • input():从控制台获得用户输入的函数

       使用格式:<变量>=input(<提示信息字符串>)

       例:TempStr=input("请输入:")

  • print():以字符形式向控制台输出结果的函数

  (1) 基本使用格式:print(<拟输出的字符串或字符串变量>)

        字符串类型的一对引号仅在程序内部使用,输出无引号

        例:print("输入格式错误")   >>>输入格式错误

  (2)格式化:print("字符串{}".format(变量))

           {}表示槽,后续变量填充到槽中

    例:print("转换后的温度是{:.2f}C".format(C))

     其中{:.2f}表示将变量C填充到这个位置时取小数点后2位

   (3)print(a,b) 逗号使得输出时a和b之间有空格

  • eval():去掉参数最外侧引号并执行余下语句的函数;评估函数

  基本使用格式:eval(<字符串或字符串变量>)

 例:eval("1")  >>>1   eval("1+2")  >>>3  eval(' "1+2" ')  >>>"1+2" eval('print("Hello")')  >>>Hello        

eval(input(<输入提示字符串>))    将字符串类型变成数字类型

七、

  1. 库引用与import:
  • 库引用:扩充Python程序功能的方式;使用import完成,采用<a>.<b>()编码风格
  • ①import<库名>

<库名>.<函数名>(<函数参数>)          或

②from <库名> import <函数名>  /  from <库名> import *

<函数名>(<函数参数>)

①不会出现函数重名问题,而②会出现函数重名问题

可使用第三种:③import <库名> as <库别名>

                <库别名>.<函数名>(<函数参数>)

整数→浮点数→复数

abs(x):x的绝对值   divmod(x,y):商余,输出(x//y,x%y)

pow(x,y[,z]):幂余,(x**y)%z,其中z可省略

round(x[,d]):四舍五入,d是保留小数位数,默认值是0

max(x1,x2,...,xn):返回最大值   min(x1,x2,...,xn):返回最小值

int(x):把x变成整数,舍弃小数部分,可以把字符串变成整数

float(x):把x变成浮点数,增加小数部分,可以把字符串变成浮点数

complex(x):把x变成复数,增加虚数部分

九、天天向上的力量的重点:

  for i in range(365):

     if i%7 in [ , ]:

        ...

     else:

        ...

  • import 引入一个当前代码之外的功能,如turtle
  • 循环语句与range()函数:
  •  循环语句:按照一定次数循环执行一组语句
  • for <变量> in range(<参数>):

    <被循环执行的语句>

    其中,<参数>是循环的次数;<变量>表示每次循环的计数,0到<次数>-1

  •  range()函数 产生循环计数序列
  • ①range(N)  产生0到N-1的整数序列,共N个

    ②range(M,N) 产生M到N-1的整数序列,共N-M个

    八、数字类型及操作

  • 整数类型    ——数学中的整数
  • 可正可负

    pow(x,y) 计算xy

    4种进制:十进制

             二进制:以0b或0B开头

             八进制:以0o或0O开头

             十六进制:以0x或0X开头

  • 浮点数类型      ——数学中的实数
  • 带有小数点及小数的数字

    取值范围和小数精度存在限制,常规计算可忽略——基本无限制

    取值范围数量级约-10308至10308,精度数量级10-16

    浮点数间运算存在不确定尾数,不是bug

    round(x,d):对x四舍五入,d是小数截取位数

    科学计数法:<a>e<b> 或 <a>E<b> 表示a*10b 

               例:9.6E5 表示960000.0

  • 复数类型     ——数学中的复数
  • a+bj   a实部,b虚部

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

  • 数值运算操作符
  • x+y加; x-y减; x*y乘; x/y除,浮点数;x//y整数除,整数商(10//3=3)
  • +x:x本身  -y:y的负值 x%y:余数(10%3=1) x**y:①幂运算,即xy  ②当y是小数时,开方运算(10**0.5=根号10)
  • x+=y  x-=y  x*=y  x/=y  x//=y  x**=y  x%=y
  • 类型间可进行混合运算,生成结果为“最宽”类型
  • 数值运算函数

十、字符串

字符串类型的表示

   由一对单引号或一对双引号表示

   字符串是字符的有序序列,可以对其中的字符进行索引

  ①有一对单引号或双引号表示,仅表示单行字符串

  ②由一对三单引号或三双引号表示,可表示多行字符串

 正向递增序号(从0开始)和反向递减序号(从-1开始)

   基本用法(上面第3页)

   高级用法:[M:N:K]根据步长对字符串切片

   -<字符串>[M:N],M缺失表示至开头,N缺失表示至结尾

   -<字符串>[M:N:K],根据步长K对字符串进行切片

   -倒序:[::-1]

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

   \b 回退;\n 换行(光标移动到下行首);\r 回车(光标移动到本行首);\\ 反斜杠;\’ 单引号;\” 双引号;\t 制表符(Tab)

   x in s  如果x是s的子串,返回True,否则返回False

 

  • 字符串是由0个或多个字符组成的有序字符序列
  • 表示方法:
  • 字符串的序号:
  • 索引(上面第3页)
  • 切片
  • 转义符\ 表达特定字符的本意
  • 字符串操作符
  • x+y 连接两个字符串    n*x或x*n  复制n次字符串x   
  • 字符串处理函数

len(x) 返回字符串x的长度

str(x) 任意类型x所对应的字符串类型   与eval()相反

hex(x) 形成整数x的十六进制的小写形式字符串

oct(x) 形成整数x的八进制的小写形式字符串

chr(u) u为Unicode编码,返回其对应的字符

ord(x) x为字符,返回其对应的Unicode编码

Python字符串中每一个字符都是Unicode编码字符

例:"n".center(5,"=")  >>> '==n=='

注意:当str为单数,宽度为双数时,填充前少后多;str为双数,宽度为单数时,填充前多后少

字符串格式化使用.format()方法:

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

 

 

  • end=" " 表示不换行(在print函数中)
  • 字符串处理方法
  • “方法”在编程中是一个专有名词,特指<a>.<b>()风格中的函数<b>()方法本身也是函数,但与<a>有关;字符串及变量也是<a>,存在一些方法
  • str.lower()或str.upper() 返回字符串的副本,全部字符小写/大写
  • str.split(sep=None) 返回一个列表,由str根据sep被分隔的部分组成  例:"A,B,C".split(",")  >>>['A','B','C']
  • str.count(sub) 返回子串sub在str中出现的次数
  • str.replace(old,new) 返回字符串str副本,所有old子串被替换为new子串
  • str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar可选
  • str.strip([chars]) 从str中去掉在其左侧和右侧chars中列出的字符    例:"= python=".strip(" =np")  >>>"ytho"
  • str.join(iter) 在iter变量除最后元素外每个元素后增加一个str, 主要用于字符串分隔   例: ",".join("12345")  >>>"1,2,3,4,5"   
  • 字符串类型的格式化
  • 格式化是对字符串进行格式表达的方式
  • 槽:相当于一个占位信息符,使用一对"{}"来表示,只在字符串中有用

十一、time库

基本介绍

   import time

   time.<b>()

时间获取:time()  ctime()   gmtime()

时间格式化:strftime()   strptime()

程序计时:sleep()   perf_counter()

    time()  获取当前时间戳,即计算机内部时间值,浮点数

            time.time()

    ctime()  获取当前时间并以易读方式表示,返回字符串  

            time.ctime()

gmtime()  获取当前时间,表示为计算机可处理的时间格式

          time.gmtime()

                   ts是计算机内部时间类型变量

例:t=time.gmtime()

time.strftime("%Y-%m-%d %H-%M-%S",t)

>>>'2018-01-26 12:55:20'

%Y 年份(0000~9999)   %m 月份(01~12)

%B 月份名称(January~December)

%b 月份名称缩写(Jan~Dec)   %d 日期(01~31)

%A 星期(Monday~Sunday)    %a 星期缩写(Mon~Sun)

%H 小时(24h制,00~23)   %h 小时(12h制,01~12)

%p 上午/下午(AM/PM)    %M 分钟(00~59)

%S 秒(00~59)

>>>import time

>>>start=time.perf_counter()

>>>end=time.perf_counter()

>>>end-start

>>>def wait():

   time.sleep(3.3)

>>>wait()     程序将等待3.3秒之后再退出

  • time库是python中处理时间的标准库
  • time库包括三类函数:
  • 时间获取
  • 时间格式化——将时间以合理的方式表示出来
  • strftime(tpl,ts)   tpl是格式化模板字符串,用来定义输出效果
  • 时间格式化的控制符:
  • strptime(ts,tpl) 与 strftime(tpl,ts) 互补,将字符串转换为时间
  • 程序计时应用
  • 测量时间:perf_counter()  返回一个CPU级别的精确时间计数值,单位为秒;由于这个技术值起点不确定,连续调用差值才有意义
  • 产生时间:sleep(s)  s拟休眠的时间,单位是秒,可以是浮点数

十二、文本进度条

采用字符串方式打印可以动态变化的文本进度条

进度条需要能在一行中逐渐持续变化

采用sleep()模拟一个持续的进度

刷新的本质:用后打印的字符覆盖之前的字符

不能换行→print()需要被控制(print函数默认在输出字符之后会换行)

要能回退→打印后光标退回到之前的位置→\r(刷新的关键)

十三、程序的分支结构

   <语句块>

    <语句块1>

else:

    <语句块2>

   <表达式1> if <条件> else <表达式2>   

   注:是表达式而不是语句(有赋值)

<语句块1>

elif:

<语句块2>

......

else:

<语句块n>

< 小于   <= 小于等于  >= 大于等于   > 大于

== 等于   != 不等于

x and y : 与 ;  x or y : 或 ; not x : 非

       <语句块1>         或          <语句块1>

   except:                         except <异常类型>:

       <语句块2>                     <语句块2>

   try:

       <语句块1>

   excpet:

       <语句块2>

   else:

       <语句块3>

   finally:

       <语句块4>

(finally对应语句块4一定执行;else对应语句块3在不发生异常时执行;异常:语句块1→2→4;不异常:语句块1→3→4)

十四、身体质量指数BMI

  读程序先看分支

十五、程序的循环结构

for <循环变量> in <遍历结构>:

 <语句块>

从遍历结构中逐一提取元素,放在循环变量中;

由保留字for和in组成,完成遍历所有元素后结束;

每次循环,所获得元素放入循环变量,并执行一次语句块

(1)计数循环(N次)

for i in range(N):

<语句块>

遍历由range()函数产生的数字序列,产生循环

(2)计数循环(特定次)

for i in range(M,N,K):

<语句块>

从M开始,不到N(到N之前)的整数,步长为K

(3)字符串遍历循环

for c in s:

<语句块>

s是一个字符串,c表示字符串中的每个字符,遍历字符串每个字符,产生循环

(4)列表遍历循环

for item in ls:

    <语句块>

ls是一个列表,遍历列表每个元素,产生循环

(5)文件遍历循环

for line in fi:

<语句块>

fi是一个文件标识符,遍历其每行,产生循环

Ctrl+C组合键,退出“循环执行又永不退出的循环程序”

反复执行语句块,直到条件不满足时结束

 

 

  • 单行动态刷新
  • 需要在输出字符串的后面增加信息,就在print函数中的end="信息";如果不希望增加换行,就end=" "
  • 单分支结构
  • 根据判断条件的结果而选择不同向前路径的运行方式
  • if <条件>:
  • 二分支结构
  • 根据条件判断的不同而选择不同执行路径的运行方式
  • if <条件>:
  • 紧凑形式:适用于简单表达式的二分支结构
  • 多分支结构
  • 根据多个条件来选择不同语句块运行的一种分支结构
  • if <条件>:
  • 编写时要注意多条件之间的包含关系;注意变量取值范围的覆盖关系
  • 条件判断及组合
  • 操作符
  • 用于条件组合的保留字
  • 程序的异常处理
  • try:                            try:
  • 异常处理的高级使用:
  • 遍历循环:遍历某个结构形成的循环运行方式   for in
  • 无限循环:由条件控制的循环运行方式  while

    while <条件>:

        <语句块>

  • 循环控制保留字  break 和 continue
  • break 跳出并结束当前整个循环,执行循环后的语句(打破当前循环)
  • continue 结束当次循环,继续执行后续次数循环(打破当次循环,不打破当前循环)
  • break和continue可以与for和while循环搭配使用
  • 多层循环
  • 循环的高级用法
  • 循环与else:

    for <循环变量> in <遍历结构>:        while <条件>:

    <语句块1>               或       <语句块1>

    else:                              else:

    <语句块2>                        <语句块2>

    当循环没有被break语句退出时,执行else语句块

    else语句块作为“正常”完成循环的奖励(与异常处理中的else用法相似)

  • 十六、random库

  • 基本介绍
  • 能够利用随机数种子产生“确定”伪随机数

    random库是使用随机数的Python标准库,主要用于生成随机数

    使用random库:import random

    基本随机数函数:seed()  random()

    扩展随机数函数:randint()  getrandbits()  uniform()

                    randrange()  choice()  shuffle()

  • 基本随机数函数
  • 随机数种子确定随机序列的产生
  • seed(a=None) 初始化给定的随机数种子,默认为当前系统时间
  • random() 生成一个[0.0,1.0)之间的随机小数

    注:如果程序需要再现随机过程,就需要设定种子;如果只需要随机数,不需再现(复现),就可以不设定种子

  • 扩展随机数函数
  • randint(a,b)  生成一个[a,b]之间的整数
  • randrange(m,n[,k])  生成一个[m,n)之间以k为步长的随机整数

    getrandbits(k)  生成一个k比特长的随机整数

    uniform(a,b)  生成一个[a,b]之间的随机小数

    choice(seq)  从序列seq中随机选择一个元素

    shuffle(seq)  将序列seq中元素随机排列,返回打乱后的序列

    十七、圆周率的计算

    蒙特卡洛方法:在正方形中撒点有多少在圆内

     

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值