Python简介
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
最新的TIOBE排行榜,Python赶超C#占据第四, Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。
Python是一门什么样的语言?
python是一门动态解释性的强类型定义语言
Python语言缺点
第一个缺点就是运行速度慢。(相对而言。)
第二个缺点就是代码不能加密。(编译型语言只需要把编译后的机器码发布出去。要从机器码反推出源代码是不可能的。)
Python版本
本人才疏学浅不敢妄自菲薄,引用python的声明。
Python 科学栈中的所有主要项目现在都支持 Python 3.x 和 Python 2.7,很多项目已经支持这两种版本很多年。尽管我们不断开发用于高效维护兼容性的工具和技术,但是在大量代码开发中这仍然是虽然微小但经常出现的冲突。
我们希望充分使用 Python 3,目前接受交叉兼容代码以实现顺利过渡,但是我们不打算无限期维护该兼容性。尽管从 Python 2 到 Python 3 的过渡不像我们希望的那么快,但是它的确发生了,越来越多的人使用、教授和推荐 Python 3。
由于很多人仍然使用 Python 2,Python 语言的开发者将 Python 2.7 的支持期扩展为 2015 到 2020。我们认为这 5 年足够用户从 Python 2 中迁移出来,我们的项目计划最迟在 2020 年底停止支持 Python 2。之后,我们能够简化代码,充分利用 Python 语言和标准库当前版本的很多新功能。
此外,2020 年之前,我们的一些项目将减少对 Python 2.7 的支持,只修复 bug,新功能版本则使用 Python 3。这和 Python 语言本身的支持相匹配,Python 2.7 版本仅包括修复 bug 和安全提升。
第三方可能对我们的旧 Python 版本项目提供付费支持,时间长于我们对旧 Python 版本的支持。我们不会阻止这类行为,这是免费、开源软件的核心原则,因此这种行为是可行的。但是,如果你想要免费的第一方支持,请开始迁移到 Python 3 吧。
Python解释器
当我们编写python代码时,我们得到的是一个包含python代码以.py结尾的文本文件。要运行代码,就需要python解释器去执行.py文件。
Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
Python安装
下载地址
https://www.python.org/downloads/
环境变量
win10环境变量: 计算机-->属性-->高级系统设置-->高级-->环境变量-->系统变量-->Path
Ps:
注意添加 python\Scripts 路径,否则pip命令无法使用。
多版本添加默认的版本路径,备用版本先改解释器名称再添加。如python.exe --> python2.exe,pip.exe-->pip2.exe
第一个程序
1 C:\Users\root>python 2 Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32 3 Type "help", "copyright", "credits" or "license" for more information. 4 >>> print('hello world') 5 hello world
编码
python2.x 默认使用ascii码。文件开头需添加如下代码。python3.x解释器默认编码utf-8
1 #-*- coding:utf-8 -*-
ASCII
Unicode
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。
gbk
对亚洲国家的文字做的对应关系
Ps:
utf-8 使用3个字节来表示一个中文。gbk用俩个字节表示。
一个字节是8位计算机码。如:00000000
变量
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。
格式:变量名 = 值
1 name = 'haibin' 2 age = 13
命名规则:
- 数字、字母、下划线(_)组成.
- 不能数字开头。
- 不能使用Python关键字。
python关键字
1 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
Ps:
别用汉字当变量。别用拼音当变量(有道词典了解一下)。见名知意。
用小写。(大写为全局变量)
变量、函数用下划线。类用驼峰。
if语句
格式
1 if 条件: 2 pass 3 elif 条件: 4 pass 5 else: 6 pass
Ps:
elif 和 else非必须,可只有if。
实例
1 age = 20 2 3 if age > 18: 4 print("age > 18") 5 elif age > 13: 6 print("age > 13") 7 else: 8 print("age is" + str(age))
结果为:
age > 18
Ps:
if 语句自上而下匹配条件,最多匹配一次。可以匹配不上。
while
格式
while 条件: pass
Ps:
while True 传说中的死循环,慎用。一、条件不给True。二、满足某种条件内部破坏循环。
实例
while True: print("God is girl.")
for
格式
for i in 可迭代对象:
print("God is girl.")
Ps:
必须为可迭代对象,否则报错。关于可迭代对象,后面详解。
示例
for i in [1, 5, 7, 9]: print(i)
continue和break
continue # 跳出当前这一次循环 break # 跳出当前这个循环
示例
for i in [1, 5, 7, 9]: if i == 7: continue if i == 9: break print(i)
Ps:
需要注意的是,这里个参数只对循环语句即(while和for生效。)很多时候会遇到好几个语句、循环嵌套的情况。当运行结果与预期不符的时候用print打印排查。
练习题
求1-100的所有数的和(假装没有sum函数)
count = 1 sum = 0 while count < 101: sum += count count += 1 print(sum)
sum = 0 for i in range(1, 101): sum += i print(sum)
输出 1-100 内的所有奇数
count = 1 while count < 101: if count % 2 == 1: print(count) count += 1
for i in range(1, 101): if i % 2 == 1: print(i)
输出 1-100 内的所有偶数
for i in range(1, 101): if i % 2 == 0: print(i)
count = 1 while count < 101: if count % 2 == 0: print(count) count += 1
求1-2+3-4+5 ... 99的所有数的和
sum = 0 for i in range(1, 100): if i % 2 == 0: sum -= i else: sum += i print(sum)
count = 1 sum = 0 while count < 100: if count % 2 == 0: sum -= count else: sum += count count += 1 print(sum)
用户登录(三次错误机会)
1 count = 1 2 while True: 3 user_name = input("UserName:") 4 passwd = input("Password:") 5 flag = False 6 for item in user_list: 7 if item['username'] == user_name and item['password'] == passwd: 8 print("Log in successfully.") 9 flag = True 10 break 11 if flag: 12 break 13 else: 14 print("The input is invalid.") 15 if count < 3: 16 pass 17 else: 18 print("You've tried it too many times.") 19 break 20 count += 1
1 user_list = [ 2 {'username':'root', 'password':'123' }, 3 {'username':'ubuntu', 'password':'123'}, 4 {'username':'admin', 'password':'123'} 5 ] 6 count = 1 7 while True: 8 user_name = input("UserName:") 9 passwd = input("Password:") 10 flag = False 11 for item in user_list: 12 if item['username'] == user_name and item["password"] == passwd: 13 flag = True 14 break 15 if flag: 16 print("Log in successfully.") 17 break 18 else: 19 print("The input is invalid.") 20 count += 1 21 if count == 4: 22 print("You've tried it too many times.") 23 break
1 user_list = [ 2 {'username':'root', 'password':'123' }, 3 {'username':'ubuntu', 'password':'123'}, 4 {'username':'admin', 'password':'123'} 5 ] 6 count = 1 7 while True: 8 user_name = input("UserName:") 9 passwd = input("Password:") 10 flag = False 11 user_info = {'username':user_name, 'password':passwd} 12 if user_info in user_list: 13 print("Log in successfully.") 14 break 15 else: 16 print("The input is invalid.") 17 count += 1 18 if count == 4: 19 print("You've tried it too many times.") 20 break