PYTHON
简介
- PYTHON3的所有常用语法
- 面向对象编程思维
- 运用模块进行编程
- 游戏编程
- 计算机仿真
IDLE是一个PYTHON Shell,shell的意思就是“外壳”,是通过键入文本与程序交互的途径,类似于windows的CMD
第一节:
实例1
print('----小游戏----')
temp = input("不妨猜一下我在想哪个数字:")
guess = int(temp)
if guess == 8:
print("successfully!")
else:
print("once again!")
print("game over !")
缩进
变量不需要声明,函数不需要{},在PYTHON用缩进
-
== 判断是否相等 = 赋值
-
input返回值给 temp-从右->左 int(temp)整型
内置函数
BIF – Built-in functions
dir(__builtins__) //PYTHON内置函数库
help(input) //查找该函数的用法
第二节:
变量
将一个值赋值给一个名字时,会存储在内存中,称之为变量(variable),给变量赋值
-
PYTHON与大多数语言稍有不同,它不是把值存储在变量中,更像是将名字贴在值上面
PYTHON没有变量,只有名字
-
使用变量是应该先赋值
-
变量名可以包括字母、数字、下划线、变量名不可以以数字开头
-
PYTHON变量名对大小写敏感
>>> first = 3 //= 为赋值的意思,左边为名字,右边为值
>>> second = 8
>>> third = first + second
>>> print(third)
11
拼接字符串
>>> myteacher = 'BYF'
>>> yourteacher = 'byf'
>>> ourteacher = myteacher + yourteacher //拼接字符串
>>> print(ourteacher)
BYFbyf
加法、拼接字符
>>>5+8
13
>>>'5'+'8' //字符串用''闭合
'58'
转义字符
>>> 'Let's go!'
SyntaxError: invalid syntax
>>> 'Let\'s go!' //使用转义符号\
"Let's go!"
原始字符串
原始字符串
>>> str = 'C:\now'
>>> str
'C:\now'
>>> print(str)
C:
ow
>>> str = 'C:\\now'
>>> print(str)
C:\now
>>> str = r'C:\now\123\a'
>>> str
'C:\\now\\123\\a'
长字符串(三重引号)
长字符串
三重引号字符串""""""
>>> str = """ 1
2
3
4
5
6
7
8
9
"""
>>> str
' 1\n2\n3\n4\n5\n6\n7\n8\n9\n'
第三节:
条件分支
比较操作符
返回值为true/false
>>> 1 < 3
True
>>> 1 > 3
False
PYTHON 条件分支语法if-else
if 条件:
条件为真(True)执行的操作
else :
条件为假(False)执行的操作
实例1改进if-else
print('---------------我爱鱼C工作室----------')
temp = input("不妨猜一下我在想哪个数字:")
guess = int(temp)
if guess == 8:
print("successfully!")
else:
if guess > 8:
print("大了!")
else:
print("小了!")
print("game over !")
while循环
当条件为真时,执行循环体,当循环体中定义修改条件操作时,当条件为假时跳出循环
while 条件:
条件为真(True)时执行的操作
while 条件:
循环体
实例1改进while循环
print('实例1改进while')
temp = input("不妨猜一下我在想哪个数字:")
guess = int(temp)
while guess != 8:
temp = input("不对的,请重新输入:")
guess = int(temp)
if guess == 8:
print("successfully!")
else:
if guess > 8:
print("大了!")
else:
print("小了!")
print("game over !")
AND逻辑操作符
PYTHON中的and逻辑操作符可以将任意表达式连接在一起,并得到一个布尔类型的值
比较运算符优先级>逻辑运算符
>>> 3>2 and 1<2
True
>>> 3>2 and 1>2
False
外援模块:random模块
random模块中有一个函数
#####randint()函数 - 返回随机整数
import random
secret = random.randint(1,10) //产生1-10内随机数赋给secret变量
print('实例1改进random模块')
temp = input("不妨猜一下我在想哪个数字:")
guess = int(temp)
while guess != secret:
temp = input("不对的,请重新输入:")
guess = int(temp)
if guess == secret:
print("successfully!")
else:
if guess > secret:
print("大了!")
else:
print("小了!")
print("game over !")
第四节:
PYTHON的数据类型
字符串
‘520’ VS 520
带’‘或者""或者’’’’’'都为字符串
####数值类型
整型
PYTHON3对长度无限制
浮点型
PYTHON区分整型与浮点型的区别就是有没有小数点
e记法
e相当于10
非常大的数或者非常小的数
>>> a = 0.000000000000000002
>>> a
2e-18
>>> 15000
15000
>>> 1.5e4
15000.0
布尔类型
布尔类型就是Ture或者False,在PYTHON中可以直接拿过来进行计算
True = 1
False = 0
>>> True + True
2
>>> True * False
0
>>>
类型转换
借助一些PYTHON内置函数
int()
整数 - int( ) - 将浮点或者字符串转换成一个整数,在将浮点数转化为整数时会执行截断处理,将小数点后的数值直接去除
>>> a = '520'
>>> b = int(a)
>>> b
520
>>> a = 5.99
>>> c = int(a) //直接去除小数点后的.99 只保留 5
>>> c
5
float()
浮点数 - float( ) - 将整数或者字符串转化成一个浮点数
>>> a = '520'
>>> b = float(a)
>>> b
520.0
>>> a = 520
>>> c = float(a)
>>> c
520.0
>>>
str()
字符串 - str( ) - 将整数或者浮点数转化成一个字符串
>>> a = 520
>>> b = str(a)
>>> b
'520'
>>> a = 5.99
>>> b = str(a)
>>> b
'5.99'
>>> c = str(5e19)
>>> c
'5e+19'
>>>
注意:当函数名被当做变量使用时,不能再使用该函数原本的功能
>>> str = "BYF"
>>> str
'BYF'
>>> c = str(5e19)
Traceback (most recent call last):
File "<pyshell#33>", line 1, in <module>
c = str(5e19)
TypeError: 'str' object is not callable
type()
>>> a = '520'
>>> type(a)
<class 'str'>
>>> type(5.2)
<class 'float'>
>>> type(True)
<class 'bool'>
>>> type(5e15)
<class 'float'>
>>>
isinstance()
isinstance(object,classinfo)
- object – 实例对象
- classinfo – 可以是直接或间接类名、基本类型或者由他们组成的元组
返回值:如果对象的类型与参数二的类型(classinfo)相同则返回True,否则返回False
>>> a = 'BYF'
>>> isinstance(a,str)
True
>>> isinstance(a,float)
False
>>> isinstance(a,int)
False
>>> isinstance(320,int)
True
>>> isinstance(320.25,bool)
False
第五节:
PYTHON算数操作符
加减乘除
+ - * /
>>> a = 3
>>> a += 5 //3+5
>>> a
8
>>> b = 7
>>> b -= 3 //7-3
>>> b
4
>>> a = b = c = d = 10
>>> a += 1
>>> b -= 3
>>> c *= 10 //10*10
>>> d /= 8 //10/8
>>> a
11
>>> b
7
>>> c
100
>>> d
1.25
>>>
% ** //
//-底板除
>>> 10 // 8
1
>>> 3.0 // 2
1.0
%-求余
>>> 5 % 2
1
>>> 10 % 2
0
**-幂运算
>>> 3 ** 2
9
>>> 5 ** 4
625
运算符优先级问题
先乘除后加减,括号内运算优先于其他
>>> -3 * 2 + 5 / -2 - 4
-12.5
>>> ((-3) * 2) + (5 / (-2)) - 4
-12.5
>>>
**幂运算时,右侧优先级高于左侧优先级
>>> -3 ** 2
-9
>>> - (3 ** 2)
-9
>>> 3 ** -2
0.1111111111111111
>>> 3 ** (-2)
0.1111111111111111
>>>
逻辑操作符
and
or
not
第六节:
分支和循环1
打飞机游戏框架
1.加载背景音乐
2.播放背景音乐(设置单曲循环)
我方飞机诞生
interval = 0
while True:
if 用户是否点击关闭按钮
退出程序
interval += 1
if interval == 50:
interval = 0
小飞机诞生
小飞机移动一个位置
屏幕刷新
if 用户鼠标产生移动:
我方飞机中心位置 = 用户鼠标位置
屏幕刷新
if 我方飞机与小飞机发生肢体冲突:
我方飞机挂
修改我方飞机图案
打印"Game over"
定制背景音乐,最好淡出
分支和循环2
评分系统
//自己完成
print('百分之输出')
score = input("请输入你的成绩:")
intscore = int(score)
if intscore >= 90:
print("A")
else:
if intscore >= 80:
print("B")
else:
if intscore >= 60:
print("C")
else:
print("D")
print("评分结束!")
elif函数-else if
print('评分系统')
score = int(input("请输入你的成绩:"))
if 100 >= score >= 90:
print("A")
elif 90 > score >= 80:
print("B")
elif 80 > score >= 60:
print("C")
elif 60 > score >= 0:
print("D")
else:
print("输入错误")
print("评分结束!")
PYTHON 之 有效避免"悬挂else"
在C语言中的就近原则,会将之下代码中的else认为是就近的if条件判断
if(hi > 2)
if(hi > 7)
printf("NICE!");
else
printf("...");
PYTHON中的强制缩进,会让程序员来决定else处于哪个位置
*条件表达式(三元操作符)
x,y = 4,5
if x < y:
small = x
else:
small = y
small = x if x < y else y
断言(assert)-植入检查点
-
assert这个关键字我们可以称之为"断言",当这个关键字后边的条件为假时,程序自动崩溃并抛出AssertionError异常
-
举个例子
>>> assert 3 > 4 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> assert 3 > 4 AssertionError >>> assert 4 > 3 >>>
-
一般来说,我们可以用它在程序中植入检查点,当需要确保程序中的某个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了
for循环
-
语法
for 目标 in 表达式:
循环体
>>> favourite = 'BYF'
>>> for i in favourite:
print(i,end=' ')
B Y F
>>> member = ['BYF','SHY','XT','ZBY']
>>> for each in member:
print(each,len(each))
BYF 3
SHY 3
XT 2
ZBY 3
>>>
range()
- 语法: range([start,] stop[,step=1])
- 该BIF有三个参数,其中用括号括起来的两个表示这两个参数时可选的
- step=1表示第三个参数的值默认值为1
- range这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列
>>> range(0,5)
range(0, 5)
>>> list(range(0,5))
[0, 1, 2, 3, 4]
>>> for i in range(5):
print(i)
0
1
2
3
4
>>> for i in range(2,9):
print(i)
2
3
4
5
6
7
8
>>> for i in range(1,10,2):
print(i)
1
3
5
7
9
>>>
break
a = 'BYF'
b = input('请输入一句话:')
while True:
if b == a:
break
b = input('错了,请重新输入:')
print('牛皮!')
>>>
======================== RESTART: D:/PYTHON/实例/break.py ========================
请输入一句话:123
错了,请重新输入:123
错了,请重新输入:456
错了,请重新输入:BYF
牛皮!
>>>
continue
终止本轮循环并开始下一轮循环,在开始下一轮循环时,当条件为True时才会开始
for i in range(10):
if i%2 != 0:
print(i)
continue
i += 2
print(i)
======================= RESTART: D:/PYTHON/实例/continue.py ======================
2
1
4
3
6
5
8
7
10
9
>>>