# python

251 阅读4分钟

1.软件安装

[安装网址] www.python.org/downloads/
[学习网址] www.icourse163.org/

2.基本语法

eg1: val = input("请输入带符号的温度:") 或 val =28C

  • input表示用户输入
  • val[-1]表示最后一个字符C
    提示:-1表示文件最后的索引
  • val[0:2]表示前两个字符组成的字符串,它表示一个[0,2)的区间
  • val[0:-1]表示除去最后一个字符剩下的字符串
    eg2: if val[-1] in ['c','C']
  • 用来判断左侧的值是否在右侧集合中
    eg3: 赋值语句(交换x与y的值)
  • 单个赋值:t=x,x=y,y-t 等价于 x,y = y,x
    eg4: 循环语句
  • 让一个程序循环10次
for i in range(10):
    <表达式组>
  • 温度转换程序代码如下:
val = input("请输入带符号的温度:")
if val[-1] in ['c','C']:
    f = 1.8 * float(val[0:-1]) +32
    print("转换后的温度为:%.2fF"%f)
elif val[-1] in ['f','F']:
    c = (float(val[0:-1]) -32) /1.8
    print("转换后的温度为:%.2fC"%c)
else:
    print("输入有误")

3.绘制图形 turtle库

import turtle
def drawSnake(rad,angle,len,neckrad):
    for i in range(len):
        # .circle表示小乌龟沿着圆形爬行,rad描述圆形轨迹半径的位置,angle表示小乌龟沿着圆形爬行的弧度值
        turtle.circle(rad,angle)
        turtle.circle(-rad,angle)
    turtle.circle(rad,angle/2)
    # .fd也称为.forward()函数,表示小乌龟向前直线爬行,参数表示爬行的距离
    turtle.fd(rad)
    turtle.circle(neckrad+1,180)
    turtle.fd(rad*2/3)

def main():
    # .setup(宽,高,左上角在屏幕中的坐标位置)
    turtle.setup(1300,800,0,0) 
    pythonsize = 30
    # pensize函数表示小乌龟运行轨迹的宽度
    turtle.pensize(pythonsize)
    turtle.pencolor("blue")
    # seth表示小乌龟启动时运行的方向
    turtle.seth(-40)
    drawSnake(40,80,5,pythonsize/2)

main() 
  • 库函数的引用:
    eg1. from <库名> import <函数名>
    eg2. from <库名> import * 例如:from turtle import *

3.1 turtle库的常用指令

3.2 绘制五角星的代码

#5.绘制五角星
from turtle import Turtle
p = Turtle()
p.speed(1)
p.pensize(7) #线条粗细
p.color("black",'yellow')  #画笔颜色及背景色
p.begin_fill() 
for i in range(5):
    p.forward(200) #前进的距离
    p.right(144) #角度
p.end_fill() #颜色填充

3.3 绘制一棵树的算法:

3.4 绘制多棵树的算法:

  • 说明: 参数(x,y)表示歧视位置

4.python语言的数据类型

4.1 数字类型、字符串类型、元组类型、列表类型、文件类型、字典类型

eg1. 整数类型:10进制,0x十六进制,0b二进制,0o八进制
eg2. 科学计数法:a e b = a * 10的b次方 9.6e5
说明:e或E为幂的符号,以10为基数

  • 整数,浮点数,复数三种数据类型可以进行函数转换分别为函数:int()、float()、complex()
  • 1.数字类型判断:type(x)      2.pow(x,y)x的y次方
  • 字符串:1.len()函数返回字符串的长度     2.str()函数将其他格式的数据转换为字符串
  • 字符串例子代码:
#4.输入月份转换为英文
Months = "JanFebMarAprMayJunJulAugSepOctNovDec"
n = input("请输入月份(1-12):")
try:
    if (int(n) >=1  and int(n) <= 12 ):
        month = Months[3*int(n)-3:3*int(n)]
        print("month is %s" %month)
    else:
        print("输入有误")
except:
    print("must input number")

4.2 字符串类型:

  • 遍历字符串 eg:for <var> in <string>

4.3 元组类型:

  • 元组:元组是包含多个元素的类型,元素之间用逗号分隔。 eg:t1=123,456,"hello"

4.4 列表类型

  • 列表的操作1如下:
  • 示例代码如下:
 vlist =[0,1,2,3,4]   >>> vlist*2 =[0,1,2,3,4,0,1,2,3,4]
 len[vlist[2:]]  >>> 3
 for i in vlist[:3] >>> 0,1,2
 2 in vlist >>> true
  • 列表操作2:
  • 示例代码:
用split()函数将字符串分割,得到列表
"python is an excellent language".split()  >>>
 ['python','is','an','excellent','language']

4.5 字符串反转:

def reverse(s):
    if s == "":
        return s
    else:
        return reverse(s[1:]) + s[0]

5.math库与random库

5.1 math库

图1

图2

5.2 random库

  • 导入random库 from random impotr *

6 异常处理

  • 模板代码:
try:
    <body>
except <ErrorType1>:
    <handler1>
except <ErrorType2>:
    <handler2>
except <ErrorType3>:
    <handler3>
else:
    <process_else>
finally:
    <process_finally>
  • 示例代码:

7.循环

7.1 for循环(需要知道循环的次数)

7.2 while循环(不用限制循环次数)

  • 文件循环运用:
每个数字占一行
  • 循环嵌套代码:
每行以逗号分隔

8.布尔操作符(and,or,not)

  • 优先级:not > and > or
  • 示例代码:

9.文件(文本文件和二进制文件)

9.1 文本文件

9.2 二进制文件:照片、音乐、视频、计算机程序等

  • 注意: 1.文本文件是基于字符定长的ASCII
    2.二进制文件编码是变长的,灵活利用率高

9.3 文件操作

9.3.1 打开文件

  • open(<name>,<mode>)       eg:open("a.txt","r")
  • 打开模式:

9.3.2 文件读取

  • 读取文件例子:
  • 读取文件前五行:

9.3.3 写入文件

  • 写入文件代码:

9.3.4 文件遍历和文件拷贝

文件遍历

文件拷贝

9.3.5 文件合并