变量
什么是变量
变化的量
准确的来说是—代表一个未知的数 例如:我们之前学习的一元一次方程x,y之类的
- 运行时环境(程序在运行过程中,这个值可以发生变化的) 变化的量
定义变量的问题
在强数据类型中, 定义变量需要进行如下操作
- 数据类型 变量名称 = 变量值;
- int a = 10
而Python是一门弱数据类型语言
- 变量名称 = 变量值
- a = 10
- a
- 10
什么是强数据类型语言,弱数据类型语言
强数据类型语言:当定义变量的类型后,不允许存储其他数据类型
弱数据类型语言:变量的类型不固定,值是什么类型,变量就会自动的变成对应类型
>>> a = 10
>>> type(a)
<class 'int'>
>>>
>>> a = 2.22
>>> type(a)
<class 'float'>
>>>
>>> a = "哈哈"
>>> type(a)
<class 'str'>
>>>
变量命名的问题
- 1、变量名称只能由有效符号(大小写字母,数字,_)组成
- 2、不能以数字开头
- 3、不能是关键字或者保留字
- 4、变量命名尽量有意义
- 小驼峰法
- 下划线法
查看Python的关键字
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
Python数据类型
- 基本数据类型
- 数值型
- 整数 int
- 浮点数 float
- 复数
- 布尔类型 真(True) 假(False)
- 字符串
- 单引号
- 双引号
- 三引号
- 数值型
- 复合数据类型(引用、指针)
- 字典
- 列表
- 元组
- 集合
- …万物皆对象
全局函数:
-
input(字符串) #标准输入函数,将控制台上一个数输入到代码 (返回的是字符串)
-
print(字符串) #标准输出函数,在控制台上输出这个字符串
-
type(变量) #返回一该变量的数据类型
-
字符串转整型
-
int( )
-
float()
-
str()
-
dir(模块/类/对象) #输出该模块的所有方法属性
-
help(对象) #帮助文档
-
…
算数和关系运算符
常见的运算符
-
算数运算符
+、-、*、 /、 %、 //、 **
-
关系(比较)运算符
- <、 <= 、 > 、 >= 、 = = 返回的是一个布尔值
-
逻辑运算符
- and or not 运算结果是布尔值
-
赋值运算符
- += -= *= /= **= //=
-
位运算 0 1运算
-
成员运算符 ------- in not in 判断某个值是否在容器中
-
身份运算符 ------- is not is 判断两个标识符是不是引用自一个对象
其他常用内置函数
int()函数
将其他类型的数据(字符串)转化为整数
>>> num = int("123")
>>> num
123
>>> type(num)
<class 'int'>
>>> num = int("3.14") # int中传入的字符串必须是十进制整数形式的字符串
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '3.14'
>>> num = int(3.14) # 直接将浮点数转整数 去掉小数部分 只保留整数部分
>>> num
3
>>> num = int(5.99)
>>> num
5
也可以将字符串指定为特定的进制形式来进行转换(进制位在2~36之间)
打印出来的结果永远是十进制
>>> int("1001",2)
9
>>> int("9C1A",16)
39962
>>> int("066",7)
48
>>> int("066",50)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: int() base must be >= 2 and <= 36, or 0
>>> int("abcdefgwxyz123",36)
1759567932504727647771
float()函数
将浮点型字符串转成浮点数字
>>> float(3)
3.0
>>> float("3.14")
3.14
str()函数
将其他类型的数据转为字符串形式
>>> num = 10
>>> num = str(num)
>>> num
'10'
>>> type(num)
<class 'str'>
>>> num = str(3.14)
>>> num
'3.14'
>>> str(True)
'True'
>>> str([1,2,3,4,5,6])
'[1, 2, 3, 4, 5, 6]'
有一个好处就是可以将多个数据进行统一的拼接
>>> print("大家好我叫"+name+",今年"+str(age)+"岁,身高"+str(height)+"米")
大家好我叫张三,今年20岁,身高1.83米
len()函数
查看序列结构数据的长度
>>> s = "123456"
>>> len(s)
6
>>> arr = [1,2,3,4]
>>> len(arr)
4
>>> len(123)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()
type()函数
查看当前数据对象的类型
id()函数
查看当前数据对象的地址
max()/min()函数
最大最小值函数
>>> max(1,2,3,4,5,6,7)
7
>>> min(1,2,3,4,5,6,7)
1
abs()函数
绝对值函数,如果是算整数的绝对值 返回结果就是整数,浮点数的结果是浮点数
>>> abs(-10)
10
>>> abs(-10.12)
10.12
bin()/oct()/hex()函数
这三个函数分别将至今只转化为二、八、十六进制的 返回的结果是字符串
>>> bin(120)
'0b1111000'
>>> oct(120)
'0o170'
>>> hex(120)
'0x78'
ord()/chr()函数
ord:返回某个ASCII字符对应的编码
chr:返回编码对应的某个ASCII字符
>>> ord('a')
97
>>> ord('z')
122
>>> ord('A')
65
>>> ord('Z')
90
>>> ord('0')
48
>>> ord('9')
57
>>> chr(97)
'a'
random模块
主要产生随机数,和随机相关的东西
- random.randint(a,b):返回
[a,b]
之间的一个随机整数 - random.random():返回
[0.0,1.0)
之间的一个随机浮点数 - random.randrange(start,stop,step):从范围内随机产生一个整数
>>> import random
>>> random.randint(1,5)
5
>>> random.random()
0.12105828440314592
round()函数
四舍五入,基本不看符号 直接看小数部分是否需要取舍!
>>> round(4.1)
4
>>> round(4.6)
5
>>> round(-4.1)
-4
>>> round(-4.6)
-5
区别与Math模块中的 ceil()向上取整
floor向下取整
>>> math.ceil(4.1)
5
>>> math.ceil(4.6)
5
>>> math.ceil(-4.1)
-4
>>> math.ceil(-4.6)
-4
>>> math.floor(4.1)
4
>>> math.floor(4.6)
4
>>> math.floor(-4.1)
-5
>>> math.floor(-4.6)
-5
math模块
- math.pi:圆周率
- math.e:自然常数e
- math.pow(a,b):求a的b次幂
- math.fabs(x):绝对值
- math.ceil(x):向上取整
- math.floor(x):向下取整
- math.sqrt(x):开方
- math.sin(x):正弦 弧度单位
- math.cos(x):余弦
- math.tan(x):正切
- math.degrees(x):将弧度转角度
- math.radians(x):将角度转弧度
简单的图形编程
Python自带一套简单的图形开发工具 Turtle 小乌龟 用来画一些简单的二维图形 通过写代码来画画
- import turtle 导入turtle工具
- showturtle() 显示箭头指示 刚开始运行时 箭头指示默认在中心坐标(0,0)
- hideturtle() 隐藏箭头指示
- pendown() 将笔放置在画布上
- penup() 将笔离开画布
- forward(d) 向笔所指的方向前进距离d
- right(angle) 向笔所指的方向右转angle度
- left(angle) 向笔所指的方向左转angle度
- goto(x,y) 跳转到某一坐标x y
- setx(x) 单独设置x坐标
- sety(y) 单独设置y坐标
- circle(r,ext,steps) 画圈 r 半径 steps阶数
- pensize(n) 调整笔的粗细
- color© 设置颜色
- write(“文本”,font = (“字体” , 字号 , “bold”))
- done() 绘制结束
- speed(0) 设置绘制的速度0最快 10最慢
- setheading(n) 0东 90北 180西 270南
绘制一个五环图
# 绘制五环图
import turtle
turtle.speed(0)
# 左上角蓝色的环
turtle.color("blue")
turtle.pensize(10)
turtle.penup()
turtle.goto(-110,-25)
turtle.pendown()
turtle.circle(45)
# 上中黑色的环
turtle.color("black")
turtle.pensize(10)
turtle.penup()
turtle.goto(0,-25)
turtle.pendown()
turtle.circle(45)
# 右上红色的环
turtle.color("red")
turtle.pensize(10)
turtle.penup()
turtle.goto(110,-25)
turtle.pendown()
turtle.circle(45)
turtle.color("yellow")
turtle.pensize(10)
turtle.penup()
turtle.goto(-55,-75)
turtle.pendown()
turtle.circle(45)
turtle.color("green")
turtle.pensize(10)
turtle.penup()
turtle.goto(55,-75)
turtle.pendown()
turtle.circle(45)
turtle.done()
绘制填充图形
- fillcolor© 设置填充颜色的
- begin_fill() 在填充开始前调用
- end_fill() 结束填充
# 绘制填充图形
import turtle
turtle.speed(10)
turtle.pensize(3)
turtle.penup()
turtle.goto(-200,-50)
turtle.pendown()
turtle.begin_fill()
turtle.color("red")
turtle.circle(40,steps=3)
turtle.end_fill()
turtle.penup()
turtle.goto(-100,-50)
turtle.pendown()
turtle.begin_fill()
turtle.color("blue")
turtle.circle(40,steps=4)
turtle.end_fill()
turtle.penup()
turtle.goto(0,-50)
turtle.pendown()
turtle.begin_fill()
turtle.color("green")
turtle.circle(40,steps=5)
turtle.end_fill()
turtle.done()