目录
Python
从 IDLE是一个Python Shell,shell的意思就是 外壳,是一个通过键入文本与程序交互的途径
>>>print(“I love you !”)
输出:I love you
p.s.:Alt+n上一条语句
Alt+p下一条语句
>>>print(5+8)
输出:8
>>>print(“well water”+” river”)
输出:well water river
>>>print(“well” * 3)
输出:well well well
>>>print(“well\n”+8)
报错
入门小程序
IDLE -> File -> new window
代码:
temp = input(“猜一下我心里现在想的是哪个数字:”)#temp不分类型
guess = int(temp);#字符串转整形
if guess == 8;
print(“正确”)
print(“没奖励”)
else:
print(“错,是8”)
print(“游戏结束”)
运行:run/F5
记住:Python严格缩进,没有大括号,没有分号
BIF(built-in function)内置函数,
输入dir(__builtins__),可以查看所有BIF,
输入help(函数)可以查看函数的使用方法。
Python之变量
变量名就像我们现实社会的名字,把一个值赋值给一个名字时,Ta会存储在内存中,称之为变量(variable),在大多数语言中,都把这种行为称为“给变量赋值”或“把值存储在变量中”
不过python和大多数语言的做法稍有不同,Ta并不是把值存储在变量中,而更像是把名字贴在值的上边,所以有些Python程序用会说“python没有变量,只有名字”
注意:
- 在使用变量之前,需要对其先赋值
- 变量名可以包括字母,数字,下划线,但变量名不能一数字开头
- 字母可以是大写或小写,但大小写是不同的,也就是说Test和test对于Python来说是完全不同的两个名字
- 等号(=)是赋值的意思,左边是名字,右边是值,不可以写反
- 变量的命名理论可以取任何合法的名字,但作为一个优秀的程序员,请将尽量给变量去一个专业的名字
Python之字符串
到目前为止,我们所认知的字符串就是引号内的一切东西,我们也把字符串叫做文本,文本和数字是截然不同的:5+8,‘5’+‘8’
要告诉Python创建一个字符串,就要在字符两边加上引号,可以是单引号,也可以是双引号,但是必须成对。
如果字符串中需要出现单引号或者双引号怎么办?例如:打印Let’s go
有两种方法:
- 第一种:比较常用,使用转义字符(\)对字符串中的引号进行转义:>>>’Let\’s go’
- 第二种:
原始字符串:
>>>str = ‘c:\now’
>>>str
‘c:\now’
>>>print(str) #把\n当作是转义字符回车键了
c:
ow
当然,我们可以用\对\自身进行转义>>>str = ‘c:\\now’,这时打印出来的是正常的。
但是如若在字符串中有很多反斜杠,我们可以使用原始字符串,只需在字符串前加一个英文字母r即可:
>>>str = r‘c:\now\a’
>>>str
C:\\now\\a
>>>print(str)
C:\now\a
我们不能在字符串结尾加‘\‘,否则会报错,如果非要加,要在反斜杠后面加上空格。
长字符串
如果希望得到一个跨越多行的字符串,需要使用到三重引号字符串,可以是“““^_^”””,也可以是‘‘‘……’’’
注意:所有标点都要用英文字符!
Python的数值类型
- 整型
- 浮点型
- 布尔类型
e记法:科学计数法15e10,1.5e-10
类型转换:
- int()将字符串或浮点转换为整型
- str()将整型或浮点或其他什么转换为字符串
- float()将字符串或整型转换为浮点
获取关于类型的信息:
type()
Isinstance(a,int) #符合返回true,不符合返回false
Python之操作符
1. 算术操作符:+ - * / ** // %
Python中对除法做了改进,整型/整型,会得到浮点型(真正的除法)
//:会舍弃小数部分,无论是整型的除法还是浮点型的除法
**:幂运算,3**2 = 9,幂运算符比左侧的一目运算符优先级高,比右面的一目运算符优先级低。
2. 逻辑操作符:and,or,not
结果为True/false
0为false,非零的数为true
Python中: >>> 3<4<5 #合法,会得到true,被解释成(3<4)and(4<5)
- 优先级问题:(从高到低)
- 幂运算:**(特殊,见上)
- 正负号:+N -N
- 算术操作符:* / // + -
- 比较操作符:< <= > >= == !=
- 逻辑运算符:not and or
Python之条件分支
改进之前的游戏:
- 猜错后给提示
- 提供多次猜的机会
- 答案是随机的,不是固定的
第一个改进要求:猜错的时候程序提示用户当前的输入比答案是大了还是小了
if判断
if 条件:
条件为true执行的操作
else:
条件为false执行的操作
while循环
while 条件:
条件为真时执行的操作
还可以加and逻辑操作符:python的and路基操作符可以将任意表达式连接在一起,并得到一个布尔类型的值。
这里我们为改进程序引入外援——random模块
这个random模块里有一个函数:randint(),它会返回一个随机的整数。
import random
secret = random.randint(1,10)
temp = input(“猜数字:”)
guess = int(temp)
while guess != secret and time>0: #time表示次数
temp = input(“重新输入:”)
time = time-1
if guess == 8
print(“对”)
print(“没奖励”)
else
if guess > 8
print(“大了”)
else
print(“小了”)
print(“结束”)
存在问题:第一次就才对的话,没有正确的提示。
条件表达式(三目运算符)
x,y = 4,5
if x < y:
small = x
else:
small = y
用三目运算符则可以简化为:small = x if x<y else y
语法:
x if 条件 else y(真为x,假为y)
断言(assert)
assert这个关键字我们称之为“断言”,当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionError的异常。
>>> assert 3>4
一般来说我们可以用它在程序中置入检查点,当需要确保程序中的某一个条件一定为真才能让程序正常工作的话,assert关键字就非常有用了。
实战应用
用Python做一个小游戏
实现:加载背景音乐
播放背景音乐(单曲循环)
加载我方飞机
伪代码:
interval = 0 #为了防止小飞机产生的数量过多
While True:
if 用户是否点击了关闭按钮
退出程序
interval += 1
if interval == 50:
interval = 0
小飞机诞生
小飞机移动一个位置
屏幕刷新
if 用户鼠标产生移动
我方飞机中心位置 = 用户鼠标位置
屏幕刷新
if 我方飞机与小飞机发生接触
我方挂,播放撞击音乐
修改我方飞机图案
打印“Game over”
停止背景音乐,最好淡出
几个练习
1. 输入成绩,输出等级
法一:
score = int(input(‘请输入一个分数:’))
if 100 >= score >= 90
print(‘A’)
if 90 > score >=80
print(‘B’)
if 80 > score >=60
print(‘C’)
if 60 > score >= 0
print(‘D’)
if score < 0 or score>100
print(‘输入错误!’)
法二:用if-else,节省了CPU
法三:elif,与if-else相同,但是不用频繁缩进
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(‘输入错误!’)
Python可以有效避免“悬挂else”
if和它对应的else,一定会属于同一个缩进级别。
Python之循环
while循环
while 条件:
循环体
for循环
for 目标 in 表达式
循环体
例子:
>>>favoutit = ‘flower’
>>>for i in favourite:
print(i,end=‘ ’)
f l o w e r
>>>member = [‘one’,’two’,’three’,’four’,’five’]
>>>for each in member:
print(each,len(each))
one 3
two 3
three 2
four 2
five 2
range()
range([strat,], stop[, step=1])
这个BIF有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
step = 1表示第三个参数的值默认值是1,每次递增多少
range这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列。
>>>range(5)
range(0,5)
>>>for i in range(2,9)
print(i)
2 3 4 5 6 7 8 #不包括9
两个关键语句
- Break,跳出循环
- continue,终止本轮循环
for i in range(10)
if i%2 !=0
print(i)
continue
i += 2
print(i)
打印:2 1 4 3 6 5 8 7 10 9