python学习总结
一、python35安装及环境变量配置
1、python安装包下载地址:
https://www.python.org/downloads/
2、安装:
安装路径:C:\Python35
3、环境变量配置:
【计算机右击】——》【属性】——》【高级系统设置】——》【高级】——》【环境变量】——》【双击变量名为path一行】——》【Python安装目录追加到变量值中,用 ; 分割】如;C:\Python35;C:\Python35\Scripts;
4、验证python是否安装成功:
二、python入门
什么是编程语言?
定义好一套与计算机交互的语法规则,这套规则 就可称为一门编程语言,学习编辑语言就是学习语法规则
1、执行py程序方式为:
交互模式:(缺点:程序不能永久保存,主要用于简单的语法 测试相关)
文件执行,如运行如下目录的代码——》F:\python_code\hello.py
注:推荐pycharm开发工具IDE:(集成开发环境(IDE))
2、变量
1)声明变量:
上述代码声明了一个变量,变量名为: name,变量name的值为:"tang"
2)变量的意义及作用:为了存储程序运算过路 中的一些中间结果,为了方便日后调用 、修改等操作
3)变量命名规则:
1、以小写字母或下划线开,可字母数字下划线组合;
2、不能以数字开头,不能包含特殊字符和空格;
3、不能以保留字命名
4、不以中文命名(建议)
5、定义的变量应该有意义(见名知义)
6、驼峰式命名或下划线分割单词
7、变量名区分大小写
3、字符编码 (python3默认支持编码:unicode)
1)ASCII编码:将ASCII字符集转换为计算机可以接受的数字系统的数的规则,每个字符统一都需要8个bit来存储;
2)GB2312:支持中文的第一张表就叫GB2312(1980年)
3)GBK1.0:GBK编码扩展了GB2312,完全兼容GB2312编码
5) GB18030:全称:国家标准GB 18030-2005《信息技术 中文编码字符集》,是中华人民共和国现时最新的内码字集,是GB 18030-2000《信息技术 信息交换用汉字编码字符集 基本集的扩充》的修订版。与GB 2312-1980完全兼容,与GBK基本兼容,支持GB 13000及Unicode的全部统一汉字
6) Unicode:也叫(统一码、万国码、单一码、标准万国码),支持所有国家和地区的编码,是向下兼容gb2312 , gbk
7) UTF-8:它是Unicode的扩展集,可变长的字符编码,英文占一个1个字节 ,中文占3个字节
ASCII--->GB2312--->GBK1.0-->GB18030
ASCII-->Unicode-->UTF-8
4、注释
1)单行注释:# 被注释的内容
# 将用户输入的内容赋值给 name 变量 name = input("请输入用户名:")
2)多行注释:三个单引号或三个双引号,''' 被注释的内容'' 、 """被注释的内容""
''' 这是一个多行注释 ''' #或者 这是一个多行注释 """
3)多行打印,三个单引号或三个双引号也可做为多行打印
#多印号用于一段话
msg = ''' name = 'tang' age = 24 ''' #或者 msg = """name = 'tang' age = 24 """
print (msg)
5、输入(input)
input:接受的所有数据都是字符串,即便你输入的是数字,但是依然会被当成字符串来处理
name = input("请输入你的名字:") #input用于用户键盘输入 请输入你的名字:tang print (name) #打印输入的内容 #输出结果 tang age = int(input("请输入你的年龄:")) #把字符串转成int int(被转的数据)
6、输出(print)
print:默认换行输出
# print(a) 等价于print(a,end="\n") ,即默认不换行 a = "hello" b = "python" print (a) #等价于 print (a,end='\n') print (b) #等价于 print (b,end='\n') #输出结果 hello python —————————— #加上end=" "空格不换行 a = "hello" b = "python" print (a,end=" ") #以空格不换行 print (b,end= " ") #输出结果 hello python —————— #end="##",##不换行 a = "hello" b = "python" print (a,end="##") print (b,end= "##") #输出结果 hello##python##
6、流程控制(if、if....else、if....elif....else)、与缩进
#单分支语法结构 if 条件: 满足条件后执行的代码
# 双分支语法结构 if 条件: 满足条件执行代码 else: if条件不满足就走这段
# 单分支 age = 25 if age >23: print ("time to find a bf..") print( "--------hahaha") #输出结果: time to find a bf.. --------hahaha
# 双分支 user_name = "tangqh" user_password = "abc123" username_input = input("请输入你的用户名:") password_input = input("请输入你的密码") if username_input == user_name and password_input == user_password: print ("登录成功") #代码块需要缩进(4个空格,eclipes、与pycharm可以直接按Tab键,可设置) else: print ("用户名或密码)
#多分支语法结构: if 条件: 满足条件执行代码 elif 条件: 上面的条件不满足就走这个 elif 条件: 上面的条件不满足就走这个 else: 上面所有的条件不满足就走这段
#猜年龄(多分支) age = 26 user_guess = int(input("your guess:")) if user_guess == age : print ("恭喜你答对了,耶") elif user_guess > age: print("猜大咯...") else : print("猜小咯...")
# 再来个匹配成绩的小程序吧,成绩有ABCDE 五个等级,与分数的对应关系如下 # A 90-100 # B 80-89 # C 60-79 # D 40-59 # E 0-39 score = int(input("请输入你的成绩:")) if score > 100: print("最高分只能到100") elif score >= 90: print("A") elif score >= 80: print("B") elif score >= 60: print("C") elif score >= 40: print("D") else: print("E")
7、python数据类型:基本类型、数据集
基本的数据类型:数字(整数、长整型、浮点型)、字符串(文本、字节)、布尔(True/False)
数据集:列表、元组、字典(有序字典、无序字典)、集合(有序集合、无序集合)
1)数字:
整数
int(整型)
long(长整型) (注:在py3中已经不区分整型和长整型,统一叫整型)
float(浮点型):浮点数,约等于小数
2)布尔值:就两个值,一个True(真或1),一个False(假或0),主要用于逻辑判断
a = 3 b = 5 print (a > b) #不成立就是False,即假 print (a < b) # 成立就是True,即真 #输出结果: False True
3)列表(list)
4)字符串(string):加了引号的字符都被认为字符串,可以拼接
name = "tang" age = 25 print (name + age) #输出结果 tang25
#格式化输出 name = input("name:") age = input("age:") job = input("job:") hometown = input("hometown:") info = """ ------------info of %s---------- name: %s age: %d job: %s hometown: %s ---------------end-------------- """%(name,name,int(age),job,hometown) # s = string # d = digit # f = float print(info) #输出结果 ------------info of tang---------- name: tang age: 25 job: IT hometown: 湖南 ---------------end--------------
5)元组(tuple)
6)字典(dict)
注:对于列表、字符串、元组、字典的相应操作单独列举
8、运算符:算术运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算
1)算术运算符
以下假设变量: a=10,b=20:
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 - 两个对象相加 | a + b 输出结果 30 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 - x除以y | b / a 输出结果 2.0 |
% | 取模(余) - 返回除法的余数 | b % a 输出结果 0 |
** | 幂 - 返回x的y次幂 | a**b 为10的20次方, 输出结果 100000000000000000000 |
// | 取整除 - 返回商的整数部分 | 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
# 加(+) a = 10 b = 20 print ("a + b =",a + b) #输出结果 a + b = 30
# 减(-) a = 10 b = 20 print ("a - b =",a - b) #输出结果 a - b = -10
# 乘(*) a = 10 b = 20 print ("a * b =",a * b) #输出结果 a * b = 200
# 除(/) a = 10 b = 20 print ("b / a =",b / a) #输出结果 b / a = 2.0
# 取余(%) a = 10 b = 20 print ("b % a =",b % a) #输出结果 b % a = 0 # 取余(%) a = 3 b = 5 print ("b % a =",b % a) #输出结果
# 幂(**) a = 3 b = 5 print ("b ** a =",b ** a) #输出结果 b ** a = 125
# 取整除(//) a = 10 b = 20 print ("b // a =",b // a) #输出结果b // a = 2 # 取整除(//) a = 3 b = 5 print ("b // a =",b // a) # 取整除(//) b // a = 1
2)比较运算符:>, <, >=, <=, ==, !=,<>
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 true. |
<> | 不等于 - 比较两个对象是否不相等 | (a <> b) 返回 true。这个运算符类似 != 。 |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | (a < b) 返回 true。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 true。 |
# 等于(==) a = 10 b = 20 print (a == b) #输出结果 False
# 不等于(!=) a = 10 b = 20 print (a != b) #输出结果 True
# 大于(>) a = 10 b = 20 print (a > b) #输出结果 False
# 小于(<) a = 10 b = 20 print (a < b) #输出结果 True
# 大于等于(>=) a = 10 b = 20 print (a >= b) #输出结果 False
# 小于等于(<=) a = 10 b = 20 print (a <= b) #输出结果 True
3) 赋值运算符:=,+=,-+,*=,/+,%=,**=
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
# 简单的赋值(=) a = 10 #把10赋值给变量a b = 20 c = a + b #将 a + b 的运算结果赋值为 c print (c) #输出结果 30
# 加法赋值运算符(+=) a = 10 #把10赋值给变量a c = 2 c += a #等效于 c = c + a print (c) #输出结果 12
# 减法赋值运算符(-=) a = 10 #把10赋值给变量a c = 28 c -= a #等效于 c = c - a print (c) #输出结果 18
# 乘法赋值运算符(*=) a = 10 #把10赋值给变量a c = 28 c *= a #等效于 c = c * a print (c) #输出结果 280
# 除法赋值运算符(/=) a = 10 #把10赋值给变量a c = 28 c /= a #等效于 c = c / a print (c) #输出结果 2.8
# 取模赋值运算符(%=) a = 3 c = 5 c %= a #等效于 c = c % a print (c) #输出结果 2
# 幂赋值运算符(**=) a = 2 c = 3 c **= a #等效于 c = c ** a print (c) #输出结果 9
# 取整除赋值运算符(//=) a = 2 c = 3 c //= a #等效于 c = c // a print (c) #输出结果 1
4)成员运算符:in、not in
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
# in name_list = ["tang","guo","xie"] print ("li" in name_list) # 判断"li" 是否在name_list列表中,在返回True,不在返回False # 输出结果 False
# in (在) name_list = ["tang","guo","xie"] print ("guo" in name_list) # 判断"guo" 是否在name_list列表中,在返回True,不在返回False # 输出结果 True
# not in (不在) name_list = ["tang","guo","xie"] # 检查"guo"不在 name_list列表中,在False,不在返回True print ("guo" not in name_list) # 输出结果 False
5)逻辑运算符:not 、and、or
以下假设变量 a 为 10, b为 20:
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y |
布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 条件1 and 条件2 ,两个条件成立返回True,否则返回False |
(a and b) 返回 20。 5>3 and 6>2 返回True |
or | x or y |
布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 条件2 or 条件2 ,只要有一个条件成立就返回True,否则返回False |
(a or b) 返回 10。 5>3 or 6<8 返回True |
not | not x |
布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not 条件1 ,条件结果取反 |
not(a and b) 返回 False not 5>3 返回False |
# and (并且) print (5>3 and 6>2) #输出结果 True
# or (或) print ( 5>3 or 6<8 ) # 5 > 3 是条件成立 #输出结果 True
# not print ( not 5>3 ) # 5 > 3 条件成立返回True,not 对条件取反,则返回False #输出结果 False
表达式:由操作数和运算符组成的一句代码和语句
注:and、or、not短路原则
对于and短路原则:如果前面的第一个条件为假,那么这个and前后两个条件组成的表达式的结果就一定为假,第二个条件就不会计算
对于or短路原则:如果前面的第一个特色肉真,那么这个or前面后两个条件组成的表达式的计算结果就一定为假