Python自学笔记
交互式
利用idle
适合单条语法的练习
文件式(主要)
一次性批量编写
一次性产生相关结果
例子1
计算圆面积
1.交互式
Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> r=25
>>> area=3.1415*r*r
>>> print(area)
1963.4375000000002
>>> print("{:.2f}".format(area))
1963.44
>>>
2.文件式
先通过idle shell打开file新建
r=25
area=3.1415*r*r
print(area)
print("{:.2f}".format(area))
再点run即可
例子2
同切圆绘制
1.交互式
>>> import turtle
>>> turtle.pensize(2)
>>> turtle.circle(10)
>>> turtle.circle(40)
>>> turtle.circle(80)
>>> turtle.circle(160)
>>>
2.文件式
import turtle
turtle.pensize(2)
turtle.circle(10)
turtle.circle(40)
turtle.circle(80)
turtle.circle(160)
例子3
同切圆绘制
1.交互式
>>> from turtle import *
>>> color('red', 'red') //这里一定要加空格
>>> begin_fill()
>>> for i in range(5):
fd(200)
rt(144)
>>> end_fill()
>>>
2.文件式
from turtle import *
color('red', 'red')
begin_fill()
for i in range(5):
fd(200)
rt(144)
end_fill()
done()
需求:两种温度体系(摄氏度华氏度)相互转化。
不单单可以理解为数值的计算。
还可将计算部分扩大,将声音或图像形式进行理解和转换。
分析:
1.划分边界。
输入:带温标的温度值。温标在后,F,C。
处理:转换算法。
输出同输入。
2.设计算法:
C=(F-32)/1.8
F=C*1.8+32
----------------------------------------------------
上代码:
#Temp.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("输入格式错误")
------------------------------------------------------
//缩进表达程序的格式框架
//缩进是表达代码间包含和层次关系的唯一手段
//长度一致,单一程序,4空格或tab或其他长度空格
------------------------------------------------------
注释!!!
单行注释。以#开头,其后为注释。#......
多行注释。三个单引号作为开头和结尾。'''......'''
------------------------------------------------------
变量!
TempStr,F,C
变量名可以是汉字!!!!!!!
变量名不能以数字开头。
------------------------------------------------------
保留字。(关键字)
被编程语言内部定义并保留使用的标识符。
------------------------------------------------------
数据类型!
整数:10011101
字符串:"10,011,101"
-----------------------------------------------------
!!列表类型!!!:[10,011,101]
由0个或多个数据组成的有序序列
用逗号分隔各元素
可使用保留字in判断一个元素是否在列表中
列表中可以只有一个元素
TempStr[-1] in ['F', 'f']
!!字符串!!!:由一对单引号或双引号表示(无区别)
字符串是字符的有序序列,可以对其中的字符进行索引,从0开始
-------------------------------------------------------
!!!!字符串的序号:
eg.
反向递减序号
<-------
-3 -2 -1
请 输 入
0 1 2
------->
正向递减序号
--------------------------------------------------------
索引:
使用[]获取字符串中单个字符 <字符串>[M]
如TempStr[-1]获取倒数第一个字符
切片:
返回字符串中一段子字符串 <字符串>[M:N]
[1:3]表示取出第一个字符、第二个字符,但不到第三个字符
TempStr[0:-1]表示从0开始,但不到最后一个字符
---------------------------------------------------------
分支语句
if elif else
if......: //每个保留字所在行最后存在一个冒号(:),语法的一部分
冒号后有缩进
----------------------------------------------------------
输入函数input
<变量> = input(<提示信息字符串>)
括号中的信息是提示信息
如TempStr = input("请输入带有符号的温度值:")
"请输入带有符号的温度值:"并不作为TempStr的一部分
----------------------------------------------------------
print的格式化操作方法:
print("转换后的温度是{:.2f}C".format(C))
{ }表示槽,后续变量填充到槽中
{:.2f}表示将变量C填充到这个位置时取小数点后两位
------------------------------------------------------------
评估函数eval()
能将任何字符串语句的信息变成Python语句
去掉参数最外侧引号(无论单双)并执行余下语句
如>>>eval("1")
1
>>>eval("1+2")
3
>>>eval('"1+2"')
'1+2'
>>>eval('print("Hello")')
Hello
eval(TemStr[0:-1])
如果TemStr[0:-1]值是“12.3”,输出是
12.3
---------------------------------------------------------
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。
实例
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world'
>>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world'
>>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
----------------------------------------------------------
代码分析:
#Temp.py //这一行为注释,可略去
TempStr = input("请输入带有符号的温度值:")//字符串类型变量
if TempStr[-1] in ['F', 'f']://判断最后一个字符是否在['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("输入格式错误")
------------------------------------------------------------
换行
\n
-------------------------------------------------------------
#蟒蛇
import turtle #海龟
turtle.setup(650, 350, 200, 200) #窗口长宽,左上端点;非必须
#turtle.setup(650, 350) #可不指定起始点,默认中心
#turtle.setup(650, 350, 0, 0) #左上角
turtle.penup()
turtle.fd(-250)
turtle.pendown()
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()
------------------------------------------------------
空间坐标体系
绝对坐标
中心为0,0点,类似平面直角坐标系
-------------------------------------------------------
goto()函数
不改变箭头方向
import turtle
turtle.goto( 100, 100)
turtle.goto( 100, -200)
turtle.goto( 80, -180)
turtle.goto(100,-200)
turtle.goto(100,100)
turtle.goto(50,50)
turtle.goto(0,-200)
turtle.goto(80,200)
--------------------------------------------------------
海龟坐标:
当前行进方向为前进方向,以此定义左侧、右侧、后退方向
--------------------------------------------------------
turtle.fd(d)
海龟方向向前运动d像素点
turtle.bk(d)
海龟方向反方向运动d像素点,不改变海龟朝向
turtle.circle(r,angle)
以海龟当前位置左侧的一个点为圆心,曲线运行
------------------------------------------------------------
绝对角度
当前方向为0度或360度
左侧方向为90度或-270度
----------------------------------------------------------
turtle.seth(angle)
改变海龟行进方向
不在图像中绘制任何信息(箭头方向有所改变)
只是改变方向不行进
参数为绝对度数
turtle.seth(45)
turtle.seth(-135)
--------------------------------------------------------------
海龟角度
左右
-----------------------------------------------------------
turtle.left(angle)
turtle.right(angle)
---------------------------------------------------------
绘制z型
import turtle
turtle.left(45)
turtle.fd(150)
turtle.right(135)
turtle.fd(300)
turtle.left(135)
turtle.fd(150)
-----------------------------------------------------------
RGB色彩体系
turtle.colormode(mode)
1.0:RGB小数模式
255:RGB整数模式
-------------------------------------------------------------
库引用
扩充Python程序功能的方式
import <库名>
<库名>.<函数名>(<函数参数>)
简化引用方法
from <库名> import <函数名>或
from <库名> import *
<函数名>(<函数参数>)
在调用函数过程中不需turtle.
会与自定义函数冲突
改造:
#蟒蛇
from turtle import*
setup(650, 350, 200, 200)
penup()
fd(-250)
pendown()
pensize(25)
pencolor("purple")
seth(-40)
for i in range(4):
circle(40, 80)
circle(-40, 80)
circle(40, 80/2)
fd(40)
circle(16, 180)
fd(40 * 2/3)
done()
-------------------------------------------------------
库别名
import <库名> as <库别名>
取小名
<库别名>.<函数名>(<函数参数>)
给调用的外部函数关联一个更短更适合自己的名字
改造:
#蟒蛇
import turtle as t
t.setup(650, 350, 200, 200)
t.penup()
t.fd(-250)
t.pendown()
t.pensize(25)
t.pencolor("purple")
t.seth(-40)
for i in range(4):
t.circle(40, 80)
t.circle(-40, 80)
t.circle(40, 80/2)
t.fd(40)
t.circle(16, 180)
t.fd(40 * 2/3)
t.done()
--------------------------------------------------------
画笔控制函数:
画笔操作后一直有效,一般成对出现
-------------
turtle.penup() 别名

浙公网安备 33010602011771号