本文参与「少数派读书笔记征文活动」https://sspai.com/post/45653
以前学习,老是觉得学的时候懂了,以后肯定不会忘,经过多次实践证明,”好记性不如烂笔头“是至理名言。而且基础是真的很重要,python学习,希望是我自学大数据一个好的开始。
python API帮助文档:https://docs.python.org/3.6/library/turtle.html?highlight=turtle#module-turtle
pycharm帮助文档:https://www.jetbrains.com/help/pycharm/getting-help.html
python语法的三个阶段:
- Python基础语法:函数式编程
- Python进阶语法:面向对象编程
- Python高级语法:Pythonic编程
应用深度:
- Python网络爬虫与信息提取
- Python数据分析与展示
- Python机器学习应用
- Python科学计算三维可视化
- Python+大数据+人工智能
- Python+嵌入式+可编程硬件
#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("输入格式错误")
上段代码是华摄氏度(F)与摄氏度(C)的转换
#TurtleExample.py
import turtle as tur
tur.color('red','yellow') #同时设置pencolor和fillcolor
tur.begin_fill() #在绘制需要填充的图形前调用
while True:
tur.forward(200)
tur.left(170)
if abs(tur.pos())<1: #返回海龟当前坐标(abs即求坐标的模)
break
tur.end_fill()
tur.done()
输出:
Python有33个保留字(大小写敏感):
and | elif | import |
raise | global | as |
else | in | return |
nonlocal | assert | except |
is | try | True |
break | finally | lambda |
while | False | class |
for | not | with |
None | continue | from |
or | yield | def |
if | pass | del |
字符串索引(返回一个字符):TempStr[-1]即字符串倒数第一个字符1;正向从0开始
字符串切片(返回子串):TempStr[0:-1]即第一个字符到倒数第二个字符的字段
列表[]:由0个或多个数据组成的有序序列,使用保留字in判断一个元素是否存于列表
input(<提示信息字符串>):从控制台获得用户的输入且返回字符串
print():以字符形式向控制台输出字符串,默认换行;
评估函数eval(“1”):去掉参数最外侧引号并执行余下语句,得带数字1;
eval('"1+2"'):得到字符串1+2
eval('printt("Hello")'):输出字符串Hello
#PythonDraw.py
import turtle
turtle.setup(650,350,200,200)
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()
输出:
利用计算机绘图绘制蟒蛇
turtle库(turtle绘图体系,python标准库之一)
python计算生态=标准库+第三方库
标准库:随解释器安装到操作系统的功能模块
第三方库:需要经过安装才可使用的功能模块
库Library、包Package、模块Module,统称模块
turtle绘图窗体:最小单位是px
*turtle.setup(width,height,[startx],[starty]):设置窗体大小及位置,默认窗体居中
turtle空间坐标体系(非窗口):绝对位置&海龟位置
turtle.goto(x,y):使"海龟"游到指定坐标
turtle.write('年',font=("Arial",18,"normal")) #输出字符串
turtle.hideturtle() #“海龟”隐身
turtle角度坐标体系(非窗口):绝对角度&海龟角度
RGB色彩体系turtle.colormode():默认采用小数值,可切换为整数值
from turtle import *:引入turtle库保留字,可直接使用函数名调用函数,不加库名
使用库别名调用函数:import <库名> as <库别名> <库别名>.<函数名>(<函数参数>)
turtle画笔控制函数:
penup() :“海龟”飞起,不在画布形成图案
pendown() :”海龟“爬行
pensize() :“海龟”腰围
pencolor():为“海龟”上色
字符串pencolor("purple")
RGB小数值pencolor(0.63,0.13,0.94)
RGB的元组值pencolor((0.63,0.13,0.94)):将小数值或整数值转换为独立元素
画笔操作后一直有效,一般成对出现
运动控制函数:
turtle.forward(d):前进 别名turtle.fd(d),d为行进距离(px),可为负数
turtle.bk(d):后退
turtle.circle(r,extent=None):以左侧的某点为圆心r为半径绘制extent角度的弧形,默认圆心为海龟当前垂直左侧距离r的地方 turtle.circle(-100,90):右侧100px
方向控制函数:
turtle.seth(45):“海龟”运行方向为正向45度(绝对角度)
turtle.left/right(angle):向左/右改变方向(海龟角度)
循环语句:for <变量> in range(<函数名>)
for i in range(5):
print("Hello:",i) #(加"逗号",输出变空格)
range(N):产生1到N-1的整数序列
range(M,N):产生M到N-1的整数序列
弧长计算公式:l=nπr/180(n为圆心角,r为半径)
turtle.done():程序运行完毕,窗口不退出
type():查看数据类型
#DayDayUp.py
"""一年365天,工作日每天进步1%,休息日退步1%"""
daybase=1.0
dayfactor=0.01
i=1;
for i in range(365):
if i%7 in [6,0]:
daybase=daybase*(1-dayfactor)
else:
daybase=daybase*(1+dayfactor)
print("有休息日的年头,力量={:.2f}".format(daybase))
#DayDayUpQ2.py
"""工作日每天进步多少,才能达到一年365天,每天进步1%的效果"""
def dayUp(dayfactor):
daybase=1;
for i in range(365):
if i%7 in[6,0]:
daybase*=(1-0.01)
else:
daybase*=(1+dayfactor)
return daybase
dayfactor=0.01
while dayUp(dayfactor)<37.78:
dayfactor+=0.001
print("工作日的努力参数是:{:.3f}".format(dayfactor))
整数类型:
十进制:1010,99
二进制:以0b或0B开头
八进制:以0o或0O开头
十六进制:以0x或0X开头
浮点类型:
浮点数取值范围和小数精度都存在限制
取值范围数量级约-10的308次方至10的308次方,精度数量级10的-16次方
二进制表示小数,可以无限接近,但不完全相同(如:0.1)
0.1+0.2==0.3 False
<a>e<b> 表示a*10的b次方
复数类型:a+bj
real获取实数
image获取虚数
数值运算操作符:
x/y:(python中)获得浮点数结果
x//y:整数除
x**y:x的y次方(幂运算)
数字类型的关系:
整数->浮点数->复数(逐渐“扩宽”)
数值运算函数(内置):
abs(x)绝对值
divmod(x,y)-->(x//y,x%y),同时输出商和余数
power(x,y[,z])-->(x**y)%z
round(x[,d])四舍五入(d保留小数位)
max返回最大值
min返回最小值
int(小数/字符串)->整数
float(整数/字符串)->浮点数
complex(整数)->加虚数变成复数
#WeekNamePrintV1.py
weekStr="星期一星期二星期三星期四星期五星期六星期日"
weekId=eval(input("请输入星期数字(1-7):"))
resultStr=weekStr[(weekId-1)*3:(weekId-1)*3+3]
print(resultStr)
字符串有2类共4种表示方法
'C'或"C":表示单行字符串
'''C'''或"""C""":表示多行字符串,当这种形式不存在于任何函数中,可充当注释
print("'Hello'")->'Hello' print('"Hello"')->"Hello"
字符串切片:
<字符串>[M:N],M缺失表示至开头,N缺失表示至结尾
<字符串>[M:N:K],以步长为K截取([::-1],字符串倒序)
转义符:(\")->"
\b回退 \n换行 \r回车
字符串操作符:
x+y:连接
n*x或x*n:复制n次字符串x
x in s:若x是s的子串,返回True
字符串处理函数:
len(x):返回长度(python中英文、数字、汉字等都是一个字符)
str(x):任意类型x所对应的字符串形式(将任何类型的变量增加一对引号)
hex(x)或oct(x):整数x的十六进制或八进制小写形式字符串
#TestUnicode
"""输出12星座符号"""
flag=9800
for i in range(12):
print(chr(flag),end=""); #末尾不换行,为空字符
flag+=1
(这个挺有趣的,哈哈)输出:♈♉♊♋♌♍♎♏♐♑♒♓
chr(x):x为Unicode编码,返回其对应的字符串
ord(x):x为字符串,返回其对应的Unicode编码(python字符串中每个字符都是Unicode编码字符)
字符串处理方法:<a>.<b>()即面向对象的风格
str.lower()或str.upper:返回字符串副本,全部小写/大写
str.split():返回一个列表:“A,B,C”->['A','B','C']
str.count(sub):返回子串sub在str中出现的次数
str.replace("oldstr","newstr"):返回str的副本
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控制参数(默认左对齐,空格填充):
"{0:=^20}".format("python")->format方法的第0个参数以用=填充长度为20且居中对齐的形式输出
"{0:,.2f}".format(12345.6789)->12,345.68(,为千位分隔符)
”{:b},{:c},{:d},{:o}“.format(425)