基础知识
变量
- 只能自上而下,比如:
y=2
print(x+y)
x=3 # 错误,Python只能自上而下读取变量
--------------------------------------------------
y=2
x=3
print(x+y # 正确
- 变量名的第一个字符不能是数字
- 关键字不能当做变量名
- 变量名可分为驼峰体和下划线
驼峰体:首字母大写,例如:AgeOfMe=20
下划线:全部小写用下划线分割,例如:age_of_me=20 - 关于常量:Python中的常量约定俗成地用全大写表示,例如:NAME=小明 默认NAME是常量即在下面的代码中不会变动
- 变量替换:因为Python是由上往下的,故直接在下面重新赋值即可,例如:
x=2
y=3
x=5
print(x+y) # 得到的结果就是8而非5
- 注释
1.三个双引号——多行注释
2.一个井号(后最好空两格)——单号注释
3.三个单引号也可以但是尽量不用
Pycharm注释快捷键:选择你要加注释的行ctrl+? 达到全部注释的效果,取消全部注释再次按ctrl+?
基本数据类型
- 整型
int 长度不超过2**62
long 无限大(但是在Python3中已经不区分int 和 long,都认为是int - 浮点型
float 可以认为是小数
在Python中可以调用type来判断变量的数据类型 - 字符串
1.定义:带有双引号/单引号/三引号
2.双引号:适用于所写的字符串里没有双引号的。例如:
print("凡是“辛苦"必是礼物") # 报错
3.单引号:适用于所写的字符串里没有单引号的。例如:
print('I'm xiaoming') # 报错
4.三引号:适用于多行字符串。例如:
print('''
灯火星星
余音杳杳
歌不尽乱世烽火
''')
5.拼接:可进行字符串的加,乘,例如:
str1="一重山"
str2="两重山"
str1+str2
'一重山两重山 ' # 输出结果
str1*3
'一重山一重山一重山' # 输出结果
其他运算基本上都不能实现,比如减法,除法,乘方
- 布尔类型
正确 true 错误 false , 例如:
a=3
b=5
a>b
false # 输出结果
a
- 列表
定义
以中括号括住,双引号引起,逗号隔开,可以提出中间某个元素,正序以0开始索引,逆序以-1开始索引。例如:
poems=["残雪凝辉冷画屏","落梅横笛已三更","更无人处月胧明","我是人间惆怅客","知君何事泪纵横","断肠声里忆平生"]
poems[2]
'落梅横笛已三更' # 输出结果
- 增删改查
1.增
插入:用变量.insert 在列表内部插入,插入的元素在索引字符元素之前,例如:
poems.insert(3,"云想衣裳花想容")
# 输出结果 即在我是人间惆怅客前插入云想衣裳花想容
['残雪凝辉冷画屏', '落梅横笛已三更', '更无人处月胧明', '云想衣裳花想容', '我是人间惆怅客', '知君何事泪纵横', '断肠声里忆平生']
追加:用变量.append 在列表的最后插入,例如:
poems.append("云想衣裳花想容")
# 输出结果,即在列表的最后加入'云想衣裳花想容'
['残雪凝辉冷画屏', '落梅横笛已三更', '更无人处月胧明', '我是人间惆怅客', '知君何事泪纵横', '断肠声里忆平生', '云想衣裳花想容']
2.删
用del [ ]来删除列表指定位置的元素,例如:
del poems[6]
# 输出结果,即删除列表中的第六个元素(在此相当于删除列表中的最后一个元素,也可以写成del poems[-1] )
['残雪凝辉冷画屏', '落梅横笛已三更', '更无人处月胧明', '我是人间惆怅客', '知君何事泪纵横', '断肠声里忆平生']
3.改
直接赋值即可,例如:
poems[3]="晚日寒鸦一片愁"
# 输出结果,将原列表中的我是人间惆怅客替换为晚日寒鸦一片愁
['残雪凝辉冷画屏', '落梅横笛已三更', '更无人处月胧明', '晚日寒鸦一片愁', '知君何事泪纵横', '断肠声里忆平生']
4.查
可直接查,例如:
"落梅横笛已三更" in poems
True # 在,输出true
"柳塘新绿却温柔" in poems
False # 不在,输出false
用变量.index( )索引,例如
poems.index("落梅横笛已三更")
1 # 在列表里面就输出其位置,若不在就会报错
读取用户指令
- 最简单版,用input,注:用input接收到的数据只能以字符串的格式处理。例如:
age=input("请输入你的年龄:")
请输入你的年龄:20 # 输出结果
type(age) # 用input接收到的数据只能以字符串的格式处理
- 格式化打印:
为了使显示出来的界面更加美观,需要添加一些格式,例如:
str1 = float(input('请输入您的身高(单位:米):')) # input默认转化为字符串型 用float转化为浮点型
str2 = float(input('请输入您的体重(单位:千克):'))
BMI = str2/str1**2 # BMI=体重除以身高的平方
msg = '''--------BMI---------
您的身高是: %f # %f 对应以浮点数输出 %s 以字符串输出 %d 以整数输出
您的体重是: %f
您的BMI是: %f
--------end----------'''%(str1,str2,BMI) # 必须紧跟三引号后,与上面三个%f按顺序对应
print(msg)
if BMI < 18.5:
print('过轻,记得补充营养哦')
if BMI > 18.5 and BMI < 24.9:
print('正常,注意保持哟')
if BMI > 24.9:
print('超标,注意均衡饮食')
# 输出结果为:
请输入您的身高(单位:米):1.65
请输入您的体重(单位:千克):60
--------BMI---------
您的身高是: 1.650000
您的体重是: 60.000000
您的BMI是: 22.038567
--------end----------
正常,注意保持哟
运算符
1.算术运算符
- 加 : 两个对象相加 例如:
a=12.36
b=13.987
a+b
26.347 # 输出结果
------------------------------
# 若变量为字符串
a="金风玉露一相逢"
b="便胜却人间无数"
a+b
'金风玉露一相逢便胜却人间无数' # 输出结果
- 减 : 得到负数或是一个数减去另一个数 例如:
a=4.12
b=6.453
a-b-2.333
- 乘 : 两个数相乘或是返回一个被重复若干次的字符串 例如:
a=3
b=9
a*b
27 # 输出结果
-------------------------------------
# 若变量为字符串
a="便胜却人间无数"
a*3 # 只能乘整数,不能拿两个字符串相乘
'便胜却人间无数便胜却人间无数便胜却人间无数'
- / 除 :x 除以y 例如:
a=2.9
b=3.2
a/b
0.9062499999999999 $ 输出结果
- % 取模 : 返回除法的余数 例如:
a=19
b=4
a%b
3 # 相当于19/4=4......3 余数为3
- ** 幂 : 返回x的y次幂 例如:
a=8
b=4
a**b
4096 # 输出结果
- // 取整除: 返回商的整数部分(向下取整) 例如:
a=19
b=4
a//b4 # 相当于19/4=4......3 取商的整数部分
4
2.赋值运算符
- = 简单的赋值运算符 例如:
a=2
b=3
c=a+b
c
5 # c = a + b 将 a + b 的运算结果赋值为 c
- += 加法赋值运算符 例如:
a=2
b=3
a +=b # a += b 等效于 a = a + b
a
5
- -= 减法赋值运算符 例如:
a=8
b=3
a -= b # a -= b 等效于 a = a- b
a
5
- **= 乘法赋值运算符 例如:
a=4
b=5
a*=b # a *= b 等效于 a = a * b
a
20
- /= 除法赋值运算符 例如:
a=35
b=6
a/=b # a /= b 等效于 a= a / b
a
5.833333333333333
- %= 取模赋值运算符 例如:
a=19
b=4
a%=b # a %= b 等效于 a = a % b
a
3
- ** = 幂赋值运算符 例如:
a=2
b=5
a**=b # a **= b 等效于 a = a ** b
a
32
- //= 取整除赋值运算符 例如:
a=17
b=3
a//=b # a //= b 等效于 a = a // b
a
5
3.比较运算符
- == 等于 - 比较对象是否相等
a=10
b=15
a == b
False # a与b不相等,返回False
#下面全都是以a=10 b=15 进行运算的
- != 不等于 - 比较两个对象是否不相等
a != b
True # a与b不相等是真的,返回True
- <> 不等于 - 比较两个对象是否不相等
a <> b
True # 这个运算符类似 != 在Python3中已经不再使用这个运算符了
- 判断两个对象之间的大小
a > b
False # a 小于 b,输出False
a < b
True # 所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价
a >= b
False
a <= b
True
4.逻辑运算符
- and
符号两边的值为数字: 谁假返回谁的值 同假返回符号左边的值 同真返回符号右边的值 例如:
a=10
b=20
a=0
b=20
a and b # a=0 !=10 a为假 b=20 为真 返回假a的值
0
-------------------------------------------------------------------------
a=10
b=20
a and b # a=10 b=20 全为真 返回 真b的值
20
-------------------------------------------------------------------------
a=10
b=20
a=0
b=5
a and b # a=0!=10 为假 b=5!=10为假 返回假a的值
0
--------------------------------------------------------------------------
a=10
b=20
a=10
b=5
a and b # a 为真 b 为假 返回假b的值
5
符号两边的值为字符串:有空字符串则输出空字符串 无空字符串则输出符号右边的值 例如:
a="落花人独立"
b='' a and b''
b and a
'' # 输出结果
----------------------------------------------------------------------------
a="落花人独立"
b="微雨燕双飞"
a and b
'微雨燕双飞' # 同真输出运算符右侧的字符串
----------------------------------------------------------------------------
b and a
'落花人独立' # 同真输出运算符右侧的字符串
符号两边的值为布尔值:同真为真 一假则假 例如:
a=3
b=8
c=5
c>a and c
- or
符号两边的值为数字:a b 谁真返回谁的值 同真返回符号左边的值 同假返回 符号右边的值 例如:
a=10
b=20
a=0
b=20
a or b # a=0 !=10 为假 b=20 为真 返回真b 的值
20
----------------------------------------------------------------------------
a=10
b=20
a=0
b=5
a or b # a=0!=10 为假 b=5!=10 为假 返回假b 的值
5
-----------------------------------------------------------------------------
a=10
b=20
a=10
b=5
a or b # a 为真 b 为假 返回 真a 的值
10
---------------------------------------------------------------------------
a=10
b=20
a or b # a 为真 b 为真 返回真a的值
10
符号两边的值为字符串:相当于只有空字符串为假,两边同为字符串输出空字符串,其他非空字符串都为真,输出符号左边的字符串 例如:
a="落花人独立"
b="微雨燕双飞"
a or b
'落花人独立'
----------------------------------------------------------------------------
b or a
'微雨燕双飞'
----------------------------------------------------------------------------
c=''
a or c
'落花人独立'
----------------------------------------------------------------------------
c or a
'落花人独立'
----------------------------------------------------------------------------
d=''
c or d
''
符号两边的值为布尔值:同假为假 一真则真 例如:
a=3
b=8
c=5
c>a or ca or c
not
符号两边的值为数字 :相当于只有0为假 输出true 其他非0的数字输出false 例如:
a=0
b=2
not a # 对于数字 ,只有0为假 返回true
True
----------------------------------------------------------------------------
not b # 其他任何非·0的数字 全为真 返回false
False
符号两边的值为字符串:相当于只有空字符串为假 输出 true 其他非空的字符串输出 false 例如:
a="空山新雨后"
b=''
not a
False
----------------------------------------------------------------------------
not b
True
符号两边的值为布尔值:真为假 假为真 例如:
a = 5 < 2
not a # 对于布尔类型,a 为假 输出 true
True
------------------------------------------------------------
a = 5 > 4
not a # 对于布尔类型 ,a 为真 输出 false
False
流程控制
- 单分支:
if 条件
语句
若条件成立 则执行语句 不成立则不执行 例如:
a=input('weather:' )
if a=="rainy": # 条件后加 :
print("take an umbrella") # 四个空格 或 Pycharm 中一个tab
# 结果输出
weather:rainy
take an umbrella
-----------------------------------------------------------------------------
weather:sun # 不输出
- 双分支:
if 条件1 : 语句1
else 语句2
若条件成立则执行语句1 不成立则执行语句2 例如:
a=input('weather:' )
if a=="rainy":
print("take an umbrella")
else:
print("it's a good day")
# 输出结果
weather:sun
it's a good day
----------------------------------------------------------------------------
weather:rainy # 输入rainy 输出结果
take an umbrella
- 多分支:
if 条件1 :
语句1
elif 条件2:
语句2
elif 条件3:
语句3
else:
语句4
例如:
age=int(input('请输入你的年龄:'))
if age<12:
print("you are too young!")
elif age<18:
print("you are going to be an adult!")
elif age<30:
print("you are still an energetic man!")
elif age<50:
print("you are a mature man!")
else:
print("enjoy your entirement!")
# 结果输出
请输入你的年龄:10
you are too young!
---------------------------------------------------------------------------
请输入你的年龄:16
you are going to be an adult!
---------------------------------------------------------------------------
请输入你的年龄:20
you are still an energetic man!
---------------------------------------------------------------------------
请输入你的年龄:40
you are a mature man!
--------------------------------------------------------------------------
请输入你的年龄:60
enjoy your entirement!
- while 语法:while...else 例如:
a = 0
while a < 5:
a += 1
print(a)
else:
exit(a)
# 结果输出
12345
- break: 终止全部循环(注:只有在循环里才能使用break) 例如:
a = 0
while a < 10:
a += 1
if a % 2 == 0:
print(a)
else: break
else: exit(a)
# 结果输出:
Process finished with exit code 0 # 因为a的第一次输出应该为1,是奇数,故直接break掉了
- continue: 终止本次循环,进入下次循环 (注:只有在循环里才能使用break) 例如:
a = 0
while a < 10:
a += 1
if a % 2 == 0:
print(a)
else: continue
else: exit(a)
# 结果输出
246810
Process finished with exit code 10
- while True 语法:while True 语句中一定要有结束该循环的break语句,否则就是死循环