zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Activity中recreate方法的应用
    Python Web框架Tornado的异步处理代码演示样例
    停止复制代理后AWT缓存组的行为
    dlmalloc 2.8.6 源代码具体解释(5)
    大型情感类电视连续剧--Android高德之旅(2)地图类型
    Markdown---语法小记
    用函数指针实现的高速排序算法
    Hadoop-2.6.0上的C的API訪问HDFS
    聊聊高并发(十八)理解AtomicXXX.lazySet方法
    UI_搭建MVC
  • 原文地址:https://www.cnblogs.com/yanlinux/p/6458599.html
Copyright © 2011-2022 走看看