Python基础数据结构-day1

  说实话第一次接触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

posted @ 2017-02-26 23:20  Leon-pn  阅读(445)  评论(0编辑  收藏  举报