1.Python前世今生
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
最新的TIOBE排行榜,Python赶超PHP占据第五!
Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web 等。
注视:上述重点字体表示该公司主要使用Python语言开发
2.为什么是Python而不是其他语言?
C 和 Python、Java、C#等
C语言: 代码编译得到机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作
其他高级语言: 代码编译得到字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行
Python 和 C Python这门语言是由C开发而来
对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
对于速度:Python的运行速度相较与C,绝逼是慢了
Python 和 Java、C#等
对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
对于速度:Python在速度上可能稍显逊色
所以,Python和其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。
3.Python的种类
- Cpython(解释)代码----字节码-----机器码(解释一行,执行一行)
Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。 - Jyhton
Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。 - IronPython
Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似) - PyPy(特殊)(编译)代码---字节码-----机器码(全部转换完之后在执行)
Python实现的Python,将Python的字节码字节码再编译成机器码。 - RubyPython、Brython ...
4、输入 输出
输入:
input:v = input ('请输入用户名:') v = 表示接收用户输入的值(等同于变量)
import:示例: import getpass v = getpass.getpass('请输入密码:')
输出:
print('内容'):打印括号里面的内容 print(变量):打印变量的内容
示例:
name = input('请输入姓名:')
print(name) import getpass
pwd = getpass.getpass ('>>>')
print(pwd) import getpass
name = input('请输入姓名:')
pwd = getpass.getpass ('请输入密码:')
age = input('请输入您的年龄:')
print(name)
print(pwd)
print(age)
复制代码
5、条件语句
if 条件: if 条件: if 条件:
成功走这儿 ... if 条件:
else: elif 条件: ...
失败走这儿 ... elif 条件:
elif 条件: ...
... else:
else: ...
...
示例:
username = input('请输入用户名:')
if username == 'sunkedong':
print('超级管理员')
elif username == 'wuyanmin':
print('超级管理员的老婆大人')
elif username == '乖乖':
print('吾皇')
else:
print('拜拜。。。')
print('end')
6、.循环语句
while 条件:
continue (跳出本次循环,执行下次循环)
break (跳出所有循环)
示例:
i = 1
while i < 11 :
print(i)
i += 1
=========================>
while True:
username = input('请输入用户名:')
pwd = input('请输入密码:')
if username == 'chengfei' and pwd == '':
print('登录成功')
break
else:
print('登录失败,请重新登录')
示例:
i = 1
while True:
if i == 7 :
i += 1
continue
print(i)
i += 1
if i == 11 :
break
示例:
i = 1
while i < 11 :
if i == 7:
i += 1
continue
print(i)
i += 1
if i == 11:
break
7、运算符
a.算术运算符
b.比较运算符
c.赋值运算符
d.逻辑运算符
8、.python类型
—整数:创建:a = 123 或 a = int(123) 转换:age = ‘18’ ---- new_age = int(age) print (type(变量)) 查看这个变量是什么类型
—布尔值 :创建:a = True b = False 转换:数字转换时,只有0是False,其他都是True,字符串转换时,只有为空时是False,其他True(a = 1 -- b = bool(a) print (b))
—字符串:-创建:a = 'tom' 或 a = str('tom') -转换:age = 18 new_age = str(age)
-字符串的拼接:如下
str = '我叫孙克东,今年18岁,性别:男。'
val = '扯淡'
new_str = str + val
print(new_str)
9.列表
-创建列表:a = ['tom','jim',123,'alxe'] 或 a = list(['tom','jim',123,'alxe'])
-in判断:
-索引 val = a [0] print (val)
-长度 val = len(a) print (val)
-切片 val = a [0::2] print (val)
-追加 a.append ('chengfei') 追加只能从最后追加
-插入 a.insert (1,'xo') 在第二个字符串前面插入,这里的0指的是索引
-删除 a.remove ('tom') 只删除列表中的第一个该字符串 del a [0] 删除列表下的第几个字符串 (可以索引删除,也可以切片删除)
-修改 a[0] = 'chengfei' 重新给该字符赋值
10.字典
-创建 v = {'name':'tom','pwd':'123'} 或 v = dic ({'name':'tom','pwd':'123'})
-索引 val = v['name'] print(val)
-增加 (有该值时,修改,没有该值,增加)v['age'] = 18 print (v)
-删除 del v['name']
-for循环
-长度 print (len(v))
-示例
字典的嵌套
user_list = {
'k1': 'v1',
'k2': {'kk1': 'vv1','kk2': 'vv2'},
'k3': 456,
'k4': ['tom','jim',123,{'k11':'v11'},['a','b','c']]
}
user_list['k4'][4].append('')
user_list['k4'][3]['name'] = 'sunkedong'
print(user_list)
应用
user_list = [
{'name':'jim','pwd':'','time':1},
{'name':'tom','pwd':'','time':1},
{'name':'alxe','pwd':'','time':1}
]
user = input('用户名:')
pwd = input('密码:')
for item in user_list:
if user == item['name'] and pwd == item['pwd']:
print('登陆成功')
break
练习:
打印-10的偶数
count = 0
while count <= 10:
if count%2 == 0:
print(count)
count +=1
猜大小游戏
count = 0
while count < 3:
sun_age = 24
input_age = int(input('>>'))
if input_age > sun_age :
print("猜大了,继续猜")
elif input_age < sun_age :
print("猜小了。继续猜")
else:
print("恭喜,猜对了")
count +=1
11、作业:
最终的用户登录接口
#coding:utf-8
import os
#定义一个用户列表
info=[['admin','adminpass'],['sunkd','sunkdpass'],['root','rootpass']]
#模拟用户登录的主机名
hostname = 'localhost'
count=0
tag=True
while tag:
if count >=3:
break
username = input("user:")
password = input("pass:") if username == info[0][0] and password == info[0][1] or username == info[1][0] and password ==info[1][1] or username == info[2][0] and password == info[2][1]:
print('welcome to %s user'%(username))
while tag:
msg=input('[%s@%s ~]'%(username,hostname))
if msg == "quit":
tag=False
else:
print(msg)
else:
print("login failed")
count+=1
surplus=3 - count
print(surplus)
print('你已经输错%s次,还有%s次机会'%(count,surplus))
if count >= 3:
#如果用户输入三次,锁定结果到文件,下次进行判断
os.system('echo lock > lock.log')