嵩天老师的Python基础MOOC课笔记

本文是嵩天老师Python基础课程的学习笔记,涵盖了从解决问题的步骤到Python的各个基础概念,包括命名规则、数据类型、分支语句、函数、循环、随机数、字符串操作、时间库、文件操作、数据结构等。同时介绍了turtle库、jieba库等实用库的使用,是Python初学者的入门参考资料。
摘要由CSDN通过智能技术生成

Python


都是本人一个一个字敲出来的,献给大家,kez

解决问题6个步骤

  • 分析问题
  • 划分边界IPO
    Input, Process, Output
  • 设计算法
  • 编写程序
  • 调试测试
  • 升级维护

命名

  • 大小写字母\数字\下划线和汉字
  • KaTeX parse error: Undefined control sequence: \首 at position 18: …olor{red}{大小写敏感\̲首̲字符非数字\不与保留字相同}
    保留字
and elif import r a i s e \color{red}{raise} raise global
as else in return n o n l o c a l \color{red}{nonlocal} nonlocal
a s s e r t \color{red}{assert} assert except i s \color{red}{is} is try True
break finally lambda while False
c l a s s \color{red}{class} class fo not w i t h \color{red}{with} with None
continue from or y i e l d \color{red}{yield} yield
def if pass del

缩进

  • 语 法 的 一 部 分 \color{red}{语法的一部分}
  • 表达包含和层次关系的唯一手段
  • 程序内长度一致即可

注释

  • 单行注释 #123123
  • 多行注释 ‘’‘开头 结尾’’’

数据类型

  • 整数类 123123
  • 字符串 “123,123”
    字符串序号
    由0个活多个字符组成
    正向递增序号/反向递减序号

    0~n    /  -n~1
    • 索 引 : < 字 符 串 > [ M ] 第 M 个 \color{red}{索引:<字符串>[M]第M个} :<>[M]M
    • 切 片 : < 字 符 串 > [ M : N ] 第 M 到 N − 1 个 \color{red}{切片:<字符串>[M:N]第M到N-1个} :<>[M:N]MN1 注意是冒号!!
  • 列表[123,123]
    • 判断元素是否在列表中 in
TempStr[-1] in ['C','c']

分支语句

  • if elif else
    • if …: elif: else:
    • 冒号及后续缩进表示所属关系
  • 紧凑形式<表达式1>if<表达式2>else<表达式3>
print("猜{}了".format("对" if guess==9 else "错"))

函数

<函数名>(<参数>)

  • input(“提示信息”)- 以字符串类型保存

  • print()

    • print(“转换后的温度是{:.2f}C”.format©)
      • {}表示槽,将后续变量C填充其中 :.2f表示取小数点后两位
      • print(,end="")👉默认最后的换行,可换成空白使不换行
        print("\r单行刷新",end="")  \r表将光标移至行首
  • eval():去掉参数最外层引号并执行余下语句的函数
    eval函数

    • 如果直接输入"Hello",由于没定义过Hello,会报错
    • 只拆一层引号,eval("‘Hello’")=‘Hello’
  • str.replace(old,new[,max]) 替换函数

#阿拉伯数字转汉字:将n的第c个转换为s的第c个字符,循环
n = input()
s = '零一二三四五六七八九'
for c in '0123456789':
    n = n.replace(c, s[eval(c)])
print(n)
  • import函数

    • <库>.<函数>(<函数参数>)
    • from<库>import*
      <函数>(<函数参数>)
      容易出现函数重名!
    • import<库>as<库别名>
  • pow(x,y) 计算x的y次幂

  • round(x,d) 对x四舍五入,取d位小数


#温度转换 TempConvert.py
TempStr = input("请输入带有符号的温度值:")
if TempStr[-1] in ['F','f']:
    C = (eval(TempStr[0:-1]) - 32)/1.8
    print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['C','c']:
    F = 1.8*eval(TempStr[0:-1]) + 32
    print("转换后的温度是{:.2f}F".format(F))
else:
    print("输入格式错误")

#Hello World的条件输出
'''获得用户输入的一个整数,参考该整数值,打印输出"Hello World",要求:
如果输入值是0,直接输出"Hello World"
如果输入值>0,以两个字符一行输出"Hello World"
如果输入值<0,以垂直方式输出"Hello World" '''
n = eval(input)
if n==0 :
    print("Hello World")
elif n>0:
    print("He\n''\no \nWo\nrl\nd")
else:
    for c in "Hello World":
    print(c)

turtle库-乌龟库

  • setup(宽度,高度,起始x,起始y),非必须

  • goto(x,y) goto

  • circle(r,angle) 绕着左边半径为r的圈爬angle角度,默认360 circle

  • seth(angle) 只改变方向,绝对角度 seth

  • left/right(angle) l/r

  • fd/forward/bk(像素点) 向前/向前/向后多少像素点

  • penup()/pu()/pendown()/pd() 停止作画/继续作画
    pd()/pendown()只是放下画笔,并不绘制任何内容!

  • colormode() 1.0:RBG小数 (默认255):RBG整数

  • pencolor(RGB) (“purple”) /(0.63,0.13,0,94)/(160,32,240)

英文名称 RGB整数值 RGB小数值 中文名称
white 255,255,255 1,1,1 白色
yellow 255,255,0 1,1,0 黄色
magenta 255,0,255 1,0,1 洋红
cyan 0,255,255 0,1,1 青色
blue 0,0,255 0,0,1 蓝色
black 0,0,0 0,0,0 黑色
seashell 255,245,238 1,0.96,0.93 海贝色
gold 255,215,0 1,0.84,0 金色
pink 255,192,203 1,0.75,0.80 粉红色
brown 165,42,42 0.65,0.16,0.16 棕色
purple 160,32,240 0.63,0.13,0.94 紫色
tomato 255,99,71 1,0.39,0.28 番茄色
  • pensize/width(width) 画笔宽度

  • turtle.Turtle().screen.delay(0) 去除画画延迟

  • speed()

fastest 0
fast 10
normal 6
slow 3
slowest 1

循环语句

while:需要提前对计数器初始化,并每次累加等操作
for:自动在循环变量中遍历,维护也不影响

  • for<变量>in range(<次数>):
    *<变量>表循环计数,从0到<次数>-1

    • r a n g e ( N ) 产 生 从 0 到 N − 1 的 整 数 序 列 , 共 N 个 \color{red}{range(N)产生从0到N-1的整数序列,共N个} range(N)0N1,N
    • r a n g e ( M , N ) 产 生 M 到 N − 1 的 整 数 序 列 , 共 N − M 个 \color{red}{range(M,N)产生M到N-1的整数序列,共N-M个} range(M,N)MN1,NM
    • range(M,N,K) -K为步长
    • 字符串穿遍历循环 for c in s:
    • 列表遍历循环 for item in ls:(遍历元素)
    • 稳健遍历循环 for line in fi: fi是文件标识符,遍历每行
  • while<条件>: (Crtl+C退出循环)

  • break 和 continue

    • break:跳出并结束整个循环
    • continue: 结束当次循环
for c in "PYTHON":
    if c == "T":
        continue
    print(c,end="")
----PYHON

for c in "PYTHON":
    if c == "T":
        break
    print(c,end="")
----PY
  • else:注意是循环语句中的,非条件语句中
    • 当循环没被break退出,则执行else

random库 随机数(标准库) - 梅森旋转算法

  • seed() - 初始化随机种子,默认为当前系统时间
    *种子相同,生成的随机数相同
  • random() - 生成0.0~1.0之间的随机小数 16位
  • randint(a,b) - [a,b]生成整数
  • randrange(m,n[,k]) [m,n ) 之间以k为步长的随机整数 注意不取到最右边
  • getrandbits)(k) - 生成一个k比特长的随机整数
  • uniform(a,b) - [a,b]之间的随机小数
  • choice(seq) - 从序列中随机选择一个元素
  • shuffle(seq) - 将序列中元素随机打乱排列

#单位正方形内随机点落到圆内的概率
#CalPiV2.py
from random import random
from time import perf_counter
DARTS = 1000* 1000
hits = 0.0
start = perf_counter()
for i in range(1, DARTS+1):
    x,y = random(),random() #生成0-1的随机小数,即单位正方形内计算
    dist = pow(x**2+y**2,0.5)
    if dist<=1.0:
        hits += 1
pi = 4 * (hits/DARTS)
print("圆周率值是:{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter() - start()))

#turtle画画
#PythonDraw.py
import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pd()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
    turtle.circle(40,80)
    turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3)
turtle.done()

数字类型

  • 整数类型:可正可负,无取值范围限制

    • pow(x,y) 计算x的y次幂
  • 浮点数类型:带小数点的小数 范围与精度存在限制,常规计算可忽略

    • KaTeX parse error: Expected '}', got 'EOF' at end of input: …于二进制来回换算引起),一般在 1 0 − 16 10^{-16} 1016KaTeX parse error: Expected 'EOF', got '}' at position 7: 位置左右产生}̲
    • 要 用 r o u n d ( x , d ) : 对 x 四 舍 五 入 , 截 取 d 位 小 数 \color{red}{要用round(x,d):对x四舍五入,截取d位小数} round(x,d):x,d
    • 可用科学计数法表示
      • 使用e或E作为符号,以10位基数,则 a e b aeb aeb表示 a ∗ 1 0 b a*10^{b} a10b
  • 复数类型

    • 与数学一致,定义为 j = − 1 j=\sqrt{-1} j=1 , a + b j a+bj a+bj为复数,a为实部,b为虚部
      z = 1.23 e − 4 + 5.6 e + 89 j z=1.23e-4+5.6e+89j z=1.23e4
  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值