zoukankan      html  css  js  c++  java
  • python基本语法

    1、首先简单认识python

      python是一种解释型语言,啥时解释语言呢?打个简单的比方,你不懂别人说英语的意思,听不懂外国人说话,这个时候就是给你一个翻译,别人说一句英语翻译就给你立马翻译成你懂的汉语,这个时候你就知道别人在说什么了。这个跟计算机与python语言之间的关系类似,计算机它本身只知道0 1这种二进制代码,它根本不知道python语言,这个时候python自己的解释器就相当于这个翻译,每执行一段代码就把这段代码翻译成计算机懂的语言,这样计算机就可以执行它根本不懂的语言,现在除python外还有一个非常火的解释型语言就是java,它执行则是通过java本身的jvm虚拟机去执行被解释的java语句的;除了解释型语言外还有一种就是编译语言,比如c、c++、c#,这些语言是在编写完后就编译一次直接成计算机懂的二进制语言,后面拿到计算机中就可以直接使用了。也正是这个原因,解释型语言比编译型语言执行效率要差很多。

      但是这并不影响人们学习python的热情,为啥呢?因为python学起来比其他语言简单,没有热别复杂的语言,更重眼的是现在应用也越来越广泛,比如比较火的数据挖掘、人工智能,还有用于自动测试以及后台应用服务器接口开发。所以好好学python还是比较实用的。

    2、变量

      首先呢任何语言都会有变量,其次还要知道一点是任何应用程序都是在内存中运行的,原因是cpu只能在内存中操作数据的,而变量声明就是在内存中声明一个地址并接收输入的变量值,后面要使用就可以直接通过变量来得到想要的值。

      python定义变量时跟其他语言还有不同,python不用声明变量的类型,而是根据最终赋值的结果来确定参数的类型,比如age=27,这里不用age就是变量,它是根据后面赋值的整数27来确定变量age是整型的;

      在声明变量的时候最好的原则是声明的变量要明白它的具体意思,也就是见参数名知其意,还有一点需要特别注意的是跟其他的语言一样,python本身自有的关键字不能做参数,python本身的关键字如下:

    ['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'] 

    #声明整型
    age=27
    name='zhangsan'
    score=83.85
    my_list=[1,2,3,4] #定义一个列表变量
    my_tuple=(1,2,3,4) #定义一个元组变量

    #字符串使用单引号/双引号/三引号的情况
    str1='你好!菜鸟' #单引号就是里面就是字符串
    str2="i'am green hand" #用双引号就是因为里面有单引号
    str3='"菜鸟好好学习吧"' #字符串中有双引号时,引用就用单引号
    str4='''green hand say:"i'am green hand"''' #字符串里面既有单引号,又有双引号是选择3引号

    #3个单引号就是注释的作用,这里就是不再执行了
    '''
    print(age,name,score,my_list,my_tuple)
    print(str1,str2,str3,str4)
    '''
    print(str4)
    print("姓名:{name},年龄:{age},分数:{grade}".format(name=name,age=age,grade=score))

    3、格式化输出

      先了解下python3接收键盘输入的函数input(),这里接收输入的是字符串的类型,如果想得到int类型的数据,就要加Int进行强制转化,比如age=int(input("请输入年龄:"))

      格式化输出就是按照指定的格式来输出结果,现在学习的有3种格式化输出的内容,

    import datetime
    today=datetime.date.today()
    username=input("请输入姓名:")
    #采用+号来拼接字符串,但是占用内存比较多,这里username 欢迎光临 还有组合的字符串
    print("欢迎光临"+username)

    name='zhangsan'
    age=27
    score=98.255
    #使用+号进行字符串的拼接,不推荐用+号的形式连接,是因为比较耗内存,
    #还有一点就是连接的必须是字符串类型,整形和浮点型要转化为str类型
    print("name:"+name+",age:"+str(age)+",score:"+str(score))
    #用,进行连接
    print("welcome",name)
    #使用占位符来格式化输出,
    print("welcome:%s,today is %s,your score is %.2f"%(name,today,score))
    #使用format字符串的格式化来输出
    print("welcome:{name},today is {today},you score is{score}".format(name=name,today=today,score=score))

    4、条件判断

      python中判断只有if ...elif....else,只有两条判定路径是就是有if...else,有多条判定条件时就使用if....elif....else

      a、两个条件判断: if...else...

    age=int(input("请输入年龄:"))
    if age<10:
    print("未成年")
    else:
      print("成年人") 

    b、多个判定条件 if elif else

    score=int(input("请输入分数:"))

    #多条件判断加多个elif
    if score>90:
    print("优秀")
    elif 75<score<=80:
    print("良好")
    elif score>60 and score<=75:
    print("及格")
    else:
    print("该努力了小伙!")

    if判断中的非空即真(空字符串、空列表、空字典、空集合等都符合这一语法)、非0即真、非None即真,这三个用在平常的代码里会减少代码的量,比如现在需要判断用户的输入是否为空,直接把用户输入的参数跟在判断条件后面即可,不需要调用strip和len函数来去前后空格然后取输入长度来判断参数是否为空,代码如下:

    复制代码
     1 #非空即真
     2 if '':  #字符串为空,所以为假,进入下一个判断
     3     print('假')
     4 elif 'asd': #字符串有值不为空,所以为真,这里会打印真
     5     print('真')
     6 else:
     7     print('over')
     8 
     9 #非0即真
    10 if 0:  #值是0,所以为假,进入下一个判断
    11     print('假')
    12 elif 123: #值不是0,所以为真,这里会打印真
    13     print('真')
    14 else:
    15     print('over')
    16 
    17 #非None即真
    18 if None:  #值为None,所以为假,进入下一个判断,这个类似于''
    19     print('假')
    20 elif 'asd': #字符串有值不为空,所以为真,这里会打印真
    21     print('真')
    22 else:
    23     print('over')
    复制代码
     


    5、循环

      python中循环有两种,一种是while循环,一种是for循环,循环的意义就是可以按条件循环循环体内的指令,完成重复性的操作。

      先看while循环,看到while循环顾名思义就是当什么时候,如果满足条件就执行while循环下面的循环体内容,反之当不满足条件的时候就不执行循环,这样结束循环后又会回到判断条件这里来,这时你也发现了,只要条件一直为真,那么他将马不停蹄的运行下去,就跟永动机一样,这就是所谓的死循环,所以我们用来判断的这个条件,不能是一个常量,判断条件需要时变化的,就是要赋值一个计数器,并且计数器循环一次改变一次,不然就是一个死循环,程序就永远也不会结束。

    #从0开始定义一个计数器
    count=0
    #while后面跟一个判定条件,满足则运行循环体代码
    while count<10:
    print(count)
    #计数器自加1
    count+=1

    #跟着的else就是一个正常结束的意思
    else:
    print("over")

      while循环里面还有一个break终止和continue,break顾名思义就是终止,在while循环中只要遇到break,不管循环有没有结束都退出整个循环,遇到continue就是跳出本次循环,接着进行下次循环。
    i=0
    while i<=10:
        i += 1
        if i==5:    #当i的值等于5时,执行下面的break
            break   #while遇到break时,就结束掉整个循环了,所以这段代码运行的结果是 打印1-4
        print(i)
    else:   #当上面的while循环正常结束,运行else
        print('over')   #这里非正常结束,所以打印1-4后,不打印over
    复制代码
    复制代码
    i=0
    while i<=10:
        i += 1
        if i==5:    #当i的值等于5时,执行下面的continue
            continue   #while遇到continue时,就结束掉本次循环,继续下一个循环,所以这段代码运行的结果是 打印1-4,5-11
        print(i)
    else:   #当上面的while循环正常结束,运行else
        print('over')   #这里会正常结束,所以打印1-4,5-11后,会打印over


    for循环,for的翻译是“为了”,python这里就是说为了什么而循环,比如后面跟一个列表,为了列表里面的元素循环,循环取列表里的元素,就好比后面跟的是自己的孩子,肯定不能厚此薄彼,全部都要照顾到。for循环后面必须接一个可迭代的对象,什么是可迭代的对象呢?先把可以把它想象成糖葫芦,以后自然会理解,这个迭代的对象就是一串糖葫芦,可以每次取一颗下来吃,这就是可迭代。for循环就是每次取一颗糖葫芦出来,直到取完为止,也就是说你有几个糖葫芦就循环几次。

      这样理解应该比较好理解了,那么python里有哪些可迭代的对象呢,用的比较多的就只有这几种:字符串(每次取一个字符),列表(每次取一个元素),元祖(每次取一个元素),集合(每次取一个元素),字典(注意,这里取的是字典的key)。主要就是这些,后面都会讲到,这里先记住这些事可以迭代的,切记,数字、小数是不能迭代的。

      用for循环,比较while而言更方便,以后基本都会用到for循环,因为不像while需用设置计数器,for永远也不用担心会进入死循环,它迭代完后面的可迭代对象里的值之后,就结束了,不存在死循环,所以在这点上比while好用。其他和上面的while语法差不多,代码如下:

    for i in ['a','b','c']:
        if i=='b':    #当i的值等于'b'时,执行下面的break
            break   #for遇到break时,就结束掉整个循环了,所以这段代码运行的结果是 打印'a'
        print(i)
    else:   #当上面的for循环非正常结束,运行else
        print('over')   #这里非正常结束,所以打印'a'后,不打印over
    for i in ['a','b','c']:
        if i=='b':    #当i的值等于'b'时,执行下面的continue
            continue   #for遇到continue时,就结束掉本次循环,继续下一个循环,所以这段代码运行的结果是 打印'a','c'
        print(i)
    else:   #当上面的for循环正常结束,运行else
        print('over')   #这里非正常结束,所以打印'a','c'后,打印over

       

      for循环记住以下几点,在后面再细讲:

      1.循环list实质是根据下标循环里面的元素

      2.循环list的时候,切记不要删除list元素,不然会导致取值错乱,解决方法,用copy方法设置一个新list

      3.只要能通过下标取值的对象,都能够用for循环

      4.循环文件对象的时候,实质是循环文件里的行内容

      5.循环字典的时候,实质是循环key

      

  • 相关阅读:
    windows 7系统搭建PHP网站环境
    本机搭建PHP环境全教程(图文)
    cmd不是内部命令解决方法
    [Tex学习笔记]章节用罗马字母编号
    丁伟岳院士逝世 享年70岁
    2014年度江西省青年科学家培养对象名单(共36名)
    Alexander Grothendieck去世了
    [詹兴致矩阵论习题参考解答]序言
    2014-2015第一学期听课安排
    一个老和尚的真言
  • 原文地址:https://www.cnblogs.com/zpbk1991/p/8593717.html
Copyright © 2011-2022 走看看