说实话第一次接触Python还是在我刚上班的时候,听说很多人这个开发语言很吊,应用的领域很多。but这些东西还不能够吸引我,真正的原因是因为这个开发语言很是简单,比较适合我这种2B学的。但是越往后越觉得这个语言的牛逼之处(虽然我现在才学到CLASS,但是已经觉得IQ不够用了)。所以说我现在又得重新的复习下了,这个就很烦。顺便也可以给刚刚学习Python的人做一些笔记。相信以我这种小学毕业的人做的笔记肯定是浅显易懂了。
很多人有可能是从Linux运维来学一点Python的,相信我现在光做运维是不行的了。摆在你面前的就两条路:一个是运维开发,一个是纯开发。好了咱们废话也不多说了,因为我觉得还有可能坚持不下来,所以就不在这个地方立flag了。让我们开始装X之路......
对了下面咱们使用的Python版本都是Python3x,开发平台为window,使用的开发工具为pycharm,下面我们就要开始开发之路了,记住你只一个运维开发。
首先国际惯例:在Linux系统上用vi编译器写出一个句话:
1 print("Hello World")
是不是感觉自己特别的牛逼,没有错,你现在已经是一个牛逼的程序员了。在这里这个代码做了一个打印动作打印出“Hello World”这句话(这里我们这里补充一下如果你是在Linux平台下把这个程序当作一个脚本使用的话,也就是用vi编辑器写了一个Python脚本,记得需要在第一行加上#!/usr/bin/python3或者是#!/usr/bin/env python3记住这两个的区别,env是找系统的环境变量,也就是系统默认的Python3,相对于前面的好处就是,前者将Python所调用的解释器定义死了,后者更加灵活)。
一、变量
变量也有一些命名的规范:
1.变量开端不能是数字
2.一个变量之间不能有空格
3.变量不能是一个特殊字符,或者是Python自己占用的关键字
1 #可变的量 2 name = "yanweijian" #将yanweijian这个字符串赋值给了name这个变量 3 #存储数据,方便以后的调用 4 x = 5 5 y = 6 6 print (y + x) #这里的x,y可以是任意你输入的一个值,然后相加 7 #减少重复代码 8 name = "yanweijian" 9 name2 = "abc" 10 msg = "Hello" 11 print (msg name) 12 print (msg name2) #这里我们就省去了输入名字的这个步骤,直接调用变量
二、数据类型
在Python的学习中我们会遇到很多的数据类型,下面我给大家介绍以后会经常用到的几种。
在这里我们必须几种整型、str(后面的字符串类型)、布尔值。
1 int(整型):任意的一个数字(Python2x中取值范围是-2**31~2**31-1,这个是32位系统中,64位就是63次方,但是在Python3x中没有限制) 2 long(长整型):这个在Python3x中已经没有了,所以你就把它当成皮放了吧 3 float(浮点数):http://www.cnblogs.com/alex3714/articles/5895848.html 4 complex(复数):这个小弟是真不知道所以就不解释了,其实也用不到 5 6 布尔:真或者是假 True or False 1(True) 或 0(False) 7 True就是条件成立,False就是条件不成立 8 5 + 10 > 12 (True) 9 5 + 10 > 18 (False) 10 11 字符串:"你好123" 被""包含起来的就是字符创
三、字符串的常用功能
对字符串的操作有很多,在这里我们会介绍几个这一节会用到的几个;比如说计算一个字符串的长度,给字符串进行切片,提取自己需要的内容,格式化输出和字符串的组合。
1 hobbies = girl #变量 2 msg = "yanweijian is good man" #变量 3 # 0123456789.....(下标也叫索引)以此类推 4 msg.strip() #移除空白 5 msg[0:10] #比如我们只需要"yanweijian"这一段字符,这里为什么会写到下标10呢,n对应的下标不是9吗?大爷们切片需要记住顾头不顾尾。 6 len(msg) #长度 7 msg1 = msg + "and he's hobbies " +hobbies 8 print(msg1) #组合 9 #上面的方法实际上调用了好几次的内存,这样会占用资源,所以一般不用这种方发 10 msg1 = "%s and he's hobbies %s" %(msg,hobbies) #格式化输出,这样也同样实现了上面的功能
四、数据类型——列表
我现在有一个需求,让大家打印一组人的名字。没错你首先会想到直接print("you name"),但是如果让你打印一堆花里胡哨并跟上人名,你一个一个打印可能就让你有点难受了,这时我们就引进了一个新的字符类型列表(list)。这个时候你就可以将需要打印的人名放进一个列表中。在需要的时候直接取索引就能把想要的人名取出来了,废话不多说,下面我们直接和大家说说list的基本操作。
1 msg = ["yanweijian","wuzhihu","liyaseng","yuechengjun","caoyun"] #定义一个列表,名字为msg 2 3 #list的基本操作: 4 print(msg[0]) #查看msg的第一个下标,也就是"yanweijian"这个字符串 5 msg.index("wuzhihu") #查找出"wuzhihu"这个字符串的下标 6 msg[msg.index["wuzhihu"] = "liuyao" #找到"wuzhihu"并改成"liuyao" 7 msg.count("yanweijian") #查找出列表中有几个"yanweijian" 8 msg.sort() #首字母按照ASCII码排序 9 msg.reverse() #和sort相反 10 msg.append("alex") #将"alex"插入到最后面 11 msg.insert(2,"liuyao") #2指的是list中的下标,也就是"liyaseng"的后面 12 del msg[1] #删除"wuzhihu",这里的1指的是下标也就是"wuzhihu" 13 msg.remove("liyaseng") #删除"liyaseng" 14 msg[0:1] #取出"yanweijian"和"wuzhihu" 15 msg[0:5:2] #0:5是范围,2是步长,去出的是"yanweijian","liyaseng","caoyun"
五、运算
运算就是将运算符左右两边的值进行对比,从而判断是True还是FALSE或者是通过运算所得出来的值(这个会将下面说的if判断引出来所以在此不多说,请各位大爷们继续往下看)
1 5%2 #取余数 2 5 // 2 #去整除,这里为2 3 "yanweijian" != "wuzhihu" #"!="为不等于 返回的是bool(布尔值) 4 ==, >= , <= , > , < #此处就不多说了,聪明的人都会 5 += #自加,后面的作业会说到
六、成员运算和身份验证
1 and #逻辑与 2 name = "yanweijian" 3 msg = "shuai" 4 name == "yanweijian" and msg == "shuai" #返回真和假True or False,此处为True 5 6 or #逻辑或 7 name = "yanweijian" 8 msg = "shuai" 9 name == "yanweijian" and msg == "chou" #返回真和假True or False,此处为True 10 11 not #逻辑非,这个在下面会介绍
七、流程控制if...else...流程控制
说到if语句,很多会运维的人肯定是想到了bash shell中的if;没有错,这里的if语句很shell中的很是相似,下面我们通过图片和代码来了解下,Python语句的魅力;从此刻开始大家也就正是开始了Python代码之旅了。
if语句流程图(画的不好,大爷们将就看看吧):
场景一、用户登陆验证
1 # 提示输入用户名和密码 2 3 # 验证用户名和密码 4 # 如果错误,则输出用户名或密码错误 5 # 如果成功,则输出 欢迎,XXX! 6 7 8 #!/usr/bin/env python 9 # -*- coding: encoding -*- 10 11 import getpass 12 13 14 name = raw_input('请输入用户名:') 15 pwd = getpass.getpass('请输入密码:') 16 17 if name == "yanweijian" and pwd == "cmd": 18 print("欢迎,yanweijian!") 19 else: 20 print("用户名和密码错误")
场景二、猜年龄游戏
在程序里设定好你的年龄,然后启动程序让用户猜测,用户输入后,根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 5 my_age = 28 6 7 user_input = int(input("input your guess num:")) 8 9 if user_input == my_age: 10 print("Congratulations, you got it !") 11 elif user_input < my_age: 12 print("Oops,think bigger!") 13 else: 14 print("think smaller!")
八:for循环
最简单的循环10次
1 #_*_coding:utf-8_*_ 2 3 for i in range(10): 4 print("loop:", i )
输入:
1 loop: 0 2 loop: 1 3 loop: 2 4 loop: 3 5 loop: 4 6 loop: 5 7 loop: 6 8 loop: 7 9 loop: 8 10 loop: 9
需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环
1 for i in range(10): 2 if i<5: 3 continue #不往下走了,直接进入下一次loop 4 print("loop:", i )
需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出
1 for i in range(10): 2 if i>5: 3 break #不往下走了,直接跳出整个loop 4 print("loop:", i )
九、while死循环
while循环不同上面的for循环,只要触发就不会“停止”
1 count = 0 2 while True: 3 print("你是sb,你是sb",count) 4 count +=1
其实除了时间,没有什么是永恒的,死循环还是少写为好
上面的代码循环100次就退出吧
1 count = 0 2 while True: 3 print("我要大保健,我要大保健",count) 4 count +=1 5 if count == 100: 6 print("大兄弟们北京大保健多少钱呀") 7 break
十、补充
在Python中的的注释是“#”开头的一行话,但是有时候我们需要多行注释,这个是时候somebody(简称sb)出来说了,我们可以在每一行的开头加上#。如果你真是这样干了的话,你就是“真皮沙发了”。对于多行注释Python中有专门的方法:
1 '''妹子加微信:Myyanweijianstar 2 男的不要加,因为我喜欢女的 3 0.0 4 ''' 5 #同时上面的方法还可以打印多行比如 6 info = ''' 7 NAME 8 AGE 9 JOB 10 ''' 11 print(info)
输出结果:
1 NAME
2 AGE
3 JOB
小练习:
编写登陆接口:
- 输入用户名密码
- 认证成功后显示欢迎信息
1 count = 0 2 while count <3: 3 name = input("you're name:") 4 password = input("you're password:") 5 if name == "yanweijian" and password == "shuaige": 6 print("welcome login...") 7 else: 8 print("you're password is error please again...") 9 count += 1
Email:yanweijian_tt@icloud.com or yanweijian_tt@163.com