环境搭建
- 官网下载python解释器即可
- 用idea还是编辑器自己定
先从一段代码入门,温度转换
#tmp.py
tmpStr = input("输入温度:");
if tmpStr[-1] in ['F', 'f']:
C = (eval(tmpStr[0:-1]) - 32) / 1.8
print("转换后为{:.2f}C".format(C))
elif tmpStr[-1] in ['C', 'c']:
F = 1.8 * eval(tmpStr[0:-1]) + 32
print("转换后为{:.2f}F".format(F))
else:
print("格式错误!")
- 用缩进表达包含关系,即if,else,while等层次关系
- #是单行注释,”’是多行注释(用三个单引号开头与结尾)
- 变量命名规则:大小写字母、数字、下划线和汉字,大小写敏感,首字符不能为数字
- 保留字的
True
与False
的首字母是大写,要注意。
数据类型
字符串
定义:由一对单引号或者双引号表示的字符序列。单引号与双引号没有区别。
编号,从0开始表示第一个字符。提供两种体系,正向递增序号与反向递减序号。
正向从0到n-1,反向从-1到-n。用<字符串>[i]
获取字符,用<字符串>[i:j]
返回一段字符串,这是左闭右开,j位置取不到,如str[0:-1]表示0 ~ n-2
的这么一段字符串。用[M: N: K]
根据步长对字符串切片。[::-1]
相当于将字符串逆序。
扩展字符串
由一对三单引号或者三双引号表示多的多行字符串。(也可当做注释)
''' python
语言 '''
希望在字符串中出现单引号,那么字符串就用双引号括起来;反之,希望出现双引号,就用单引号括起来。若又想单引号又想双引号,那么用三个单引号表示字符串。
数字类型
整数:无取值范围限制。pow(x, y)可计算x^y
,想算多大算多大,不像C++。
浮点数:浮点数取值范围和小数精度都存在限制,常规计算可忽略。运算存在不确定尾数。多以浮点数比较用round(x,d)
,对x四舍五入,d是小数截取位数。round(0.1 + 0.2, 1) == 0.3 -> true
。注意:round
函数的第二个参数不加就表示取整。
复数:a + bj
,a是实部,b是虚部。z = 1.23e-4 + 5.6 + 89j
,z.real
获取实部,z.imag
获得虚部。
列表类型
由0个或多个数据组成的有序序列,用[]
表示,中间元素用,
分隔。
str[-1] in ['F','f']
表示字符串str的最后一个字符是不是在列表元素总,即是否与某一个列表元素相同。
数值运算操作符
+ - * /
注意, x / y
产生的是浮点数,要求得整数除,用x // y
。
-y
表示y的负值。x ** y
表示x的y次幂x^y
,y可以是小数。
类型键可以进行混合运算,生成结果“最宽”。整数 -> 浮点数 -> 复数,由窄到宽。
字符串操作符
x + y
:表示字符串连接
n * x 或 x * n
:表示复制n次字符串x
x in s
:判断x是否为s的子串,返回true / false
字符串方法
str.lower()或者str.upper():将字符串中的字符变为全小写或者全大写。
str.split():分割,返回一个列表。如:"A,B,C".split(",") 结果为 ['A', 'B', 'C']
str.join(iter):在iter变量除最后元素外每个元素后增加一个str。如:",".join("12345") 结果为 "1,2,3,4,5"
,主要用于分隔字符串
str.count(sub):返回子串sub在str中出现的次数。
str.replace(old, new):返回符串str的副本,所有old子串被替换成new子串。
str.center(width[,fillchar]):字符串根据宽度width居中。如:"Python".center(20,"=") 结果为 =======Python=======
str.strip(chars):从str中去掉在其左侧和右侧chars中列出的字符。如:"= python= ".strip(" =np") 结果为 "ytho
,将左右两侧' ', '=', 'p', 'n'
去掉。
str.join(iter):在iter变量除最后元素外每个元素增加一个str。如:"j".join("12345") 结果为 "1,2,3,4,5"
,主要用于字符串分隔。
字符串的格式化
<模板字符串>.format()
槽: 由一对大括号{}
组成,每个槽需要添加的内容与.fomat()中的参数顺序一致,类似于printf。如:
"{}:计算机{}的CPU的占用率为{}%".format("2018","C",10)
槽内部对格式化的配置方式{<参数序号>:<格式控制标记>}
,其中格式控制标记为<填充符><对齐方式><宽度><,(表示千位分隔符)><.精度><类型>
,如:
"{0:=^20}".format("python")
结果为 '=======python======='
注意:^居中对齐,<左对齐,>右对齐
"{:10}.format("BIT")"
结果为 'BIT '
直接给出宽度,默认左对齐,填充空格
"{:,.2f}".format(12345.6789)
结果为 '12,345.68'
"{0:b},{0:o},{0:X}".format(425)
结果为 '110101001,651,1A9'
b,o,X表示类型二进制、八进制、大写十六进制
"{0:e},{0:%}".format(3.14)
结果为 '3.140000e+00,314.000000%'
语句与函数
赋值语句
赋值语句的右侧数据类型同时作用于变量,如:
str = input("")
,input返回一个字符串,那么str就是字符串类型。
分支语句
用if elif else
构成条件判断语句,并且要加:
,若条件成立则执行缩进的语句。
函数语句
input():从控制台获得用户的输入。<变量> = input(<提示信息字符串>)
,以字符串格式类型保存在<变量中>。
print():向控制台输出。printf(<字符串>)
。保留两位小数print("{:.2f}".format(变量))
eval():去掉参数最外侧引号(单或双)并执行余下语句。如:eval("1")
将得到数字 1 , eval("1 + 2")
将得到数字3,eval('"1"')
得到字符串”1”,eval('"print("hello!)"')
将执行print(“hello”)语句。
divmod(x, y):商余,同时输出商和余数。divmod(10, 3)的结果为(3, 1)
。
pow(x, y[, z]):等同于(x ** y) % z
。
max(x1, x2, …, xn):求最大值
min(x1, x2, …, xn):求最小值
int(x):取整数部分,int(123.6) = 123
,int("123") = 123
float(x):将x变成浮点数,增加小数部分。float(12) = 12.0
,float("1.23") = 1.23
len(x):返回字符串的长度。
str(x):任意类型x所对应的字符串形式,如str(1.23)结果为"1.23",str([1,2])结果为"[1,2]"
,与eval()函数
相反。
hex(x)或者oct(x):将x转化为16进制或者8进制的小写形式字符串,如:hex(425)结果为"0x1a9"
ord(char):得到Ascll码
画画
import 引入了turtle库(海龟库)。是python标准库之一,随解释器安装。
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.setup(width, height, startx, starty)
,设置窗体大小以及位置。电脑的屏幕左上角为(0,0)
,startx
和starty
是窗体的左上角在电脑屏幕的坐标(不指定则在正中心)。并不必须
turtle.done()
,加上后窗体不会自动关闭。
画笔控制
turtle.penup()
,拿起画笔,此时移动海龟不会留下线。turtle.pendown()
,落下画笔,移动海龟会留下线。turtle.pensize(width)
,设置画笔的粗细。turtle.pencolor(color)
,修改画笔颜色,可以是颜色字符串、RGB小数值或者元组值。
运动控制
turtle.goto(x, y)
,表示从当前位置到(x,y)
位置,中途经过地方都会有线。这个坐标是turtle坐标,即窗体的最中心是(0,0)
&#x