美文网首页python程序员
python3入门与进阶(一)

python3入门与进阶(一)

作者: icessun | 来源:发表于2017-12-23 23:24 被阅读57次

    语法是编程的先决条件,精通语法是编好程序的必要条件

    导语

    给我最大的感觉是:这个语言的编写,居然不使用 { }来控制代码块的区域,而是使用缩进来分割代码块,所以使用python语言编写的代码不能压缩混淆。

    python语言相对于其他语言来说,最大的特点是:简洁。为什么呢?来看一个变量交互的例子:

    # 很多语言中,需要一个临时变量来交换
    temp = x
    x = y
    y = temp
    
    #  在python中
    x,y = y,x   //实现了x与y的值相互交换
    

    python的功能很强大,可以做爬虫,自动化运维与自动化测试,大数据与数据分析(Spark),AI(机器学习 Tensor Flow),Web开发(Flask,Django),脚本处理。还可以跨平台运行,是面向对象的语言,又有动态脚本的特性(和Javascript一样,属于解释型语言,不用编译成二进制文件;编译型语言会编译成二进制文件供机器执行,相对而言运行效率高)。

    python语言也被称作为:胶水语言,可以混合其他如C++,Java等来编程;可以把其他语言制作的各种模块(尤其是C/C++)很轻松的联结在一起。

    #  python 之禅
    Simple is better than complex.
    简洁胜于复杂;
    这和Steve Jobs的苹果系列产品的理念是一致的
    
    Now is better than never. Although never is often better than right now.
    做也许好过不做,但不假思索就动手还不如不做;
    勤于思考,分析导致问题的原因,不做无用功
    
    • 编程是为了解决我们的问题而存在的一个工具。
    • 当遇到问题的时候,随手拿起python,编写一个工具,这才是python正确的打开方式
    • 什么是扎实的编程功底:数据结构才是基础

    基础语法

    代码:是现实世界事物在计算机世界中的映射
    写代码:是将现实世界中的事物用计算机语言来描述

    在计算机中,怎么样来表示现实世界的事物?
    • 基本数据类型
    基本数据类型
    基本数据类型

    python3中的浮点数不分精度,整型不分短和长;布尔值一定是大写True / False;列表使用[ ],元组使用( ),集合使用{ },字典使用{ k:v }

    type(1+1.0)  # 1.1 float
    type(2 / 2) #  1.0  float
    type(2 // 2)  #  1  int
    
    a = 123 # 不需要写变量的类型
    isinstance(a,int) # True
    

    上面代码里面,type()函数来检查变量的数据类型,也可以使用isinstance来判断一个变量是否属于这个类型;区别在于:

    type()不会认为子类是一种父类类型。
    
    isinstance()会判断子类是否是父类的类型。
    
    • /:表示除法,结果自动转为float类型,会有余数;

    • //:表示整除,求的是整数部分,不会四舍五入,返回的整数类型取决与后面数的类型;

      //类型选择
    • **=:幂赋值运算符,相当于次方的概念

    • %=:取模赋值运算符

    a=(-1)%256  #  255
    
    运算的思路:
    1. 先计算整数部分:c=a/b ====> c = (-1) / 256 = -1
    2. 再计算模:r=a-c*b ====>  (-1)-(-1)*256=255
    

    声明变量不需要在前面写上变量的类型,直接写一个变量名就行,系统会自动判断类型,不像其他语言要标明数据类型,或者是写上var/ let/ const

    • <>:表示值是否不等于
    格式化输出
    age = 18;
    print("我的年龄是%d岁"%age)  #  输出 我的年龄是18岁
    
    name = "xiaoming"
    sex = "男"
    print("大家好,我叫%s,是一个可爱的%s生"%(name,sex));  #  输出  大家好,我叫xiaoming,是一个可爱的男生
    

    上面的代码中%符号,就是格式化的输出,当变量是那种类型,那么%后面接的类型也是那一种。

    那么输入就是input()函数,里面接收一个表达式,返回输入的表达式。都是返回的字符串类型。

    print('*',end='');  #  输出的结果不换行
    
    循环

    一般来说,if.....else是成对出现的,但是当if....else里面还有包含if....else的时候,那么就需要借助elif,必须要和if 一起使用。

    循环是一个整体。

    if  条件1:
         print('你是男生');  
         print('你是XXX'); 
    elif 条件2:
         print('你是女生');   #  elif 可以在里面使用多个
    else:
         print('请输入性别'); #  上述条件都不满足的情况下,默认做的事情
    
    • 使用if,实现一个猜拳的小游戏:整体框架逻辑写完,然后修改
    # 随机函数
    import random  
    while True:
    #  获取用户的输入
             player = input('请输入:剪刀(0)  石头(1)  布(2),9 退出');
             player = int(player);
             if player==9:
                      break;
    #  系统产生一个数字 包含起始位置
             computer = random.randint(0,2);
    #  判断输赢
             if ((player == 0) and (computre == 2)) or ((player == 1) and (compute ==0)) or ((player == 2) and (compute ==1)):
                       print("恭喜你获胜,你太厉害了");
             elif player == computer:
                       print("平局,要不要再来一局");
             else:
                       print("你输了,不要走,决战到天亮!")
    
    • 用循环实现一个九九乘法表:
    # while 循环
    i =1;
    while  i<9:
           j<1
           while j<=i:
                   print("%d*%d=%-2d"%(j,i,i*j),end = '')
                   j+=1
            print('\n')
            i+=1
    
    • For循环
    # for循环
    for  临时变量  in   列表或者字符串等:
           满足条件执行的代码
    else:
            不满足条件执行的代码
    
    # 代码
    name = 'icessun'
    for x in name:
         print(x);
    else:
         print('打印完毕')
    
    • break:结束整个循环
    • continue:结束本次循环,紧接着执行下一次的循环

    两者都是只对最近的一层的循环起作用,都只能使用在循环里面,不能单独使用。

    字符串,元组,列表

    字符串是不可变的;这三种都是有序的

    • 重复表示
    print("icessun"*3)
    >>> 'icessunicessunicessun'
    
    # 元组的重复 元组里面可以有不同的数据类型  (1,‘1’,True,[1,2,4])
    (1,2,3)*3
    >>> (1,2,3,1,2,3,1,2,3)
    
    # 在元组后面添加元素 使用append()方法
    b = [1,2,3]
    b.append(4)
    print(b)
    >>> [1,2,3,4]
    
    # 元组使用+相加
    (1,2,3)+(2,3,4)
    >>> (1,2,3,2,3,4)
    
    # 列表的重复
    ['ice','icess']*3
    >>> ['ice','icess','ice','icess','ice','icess']
    

    列表嵌套

    一个列表中的元素又是一个列表,那么这就是列表的嵌套

    切片操作,取一串值(字符串,列表,元组)

    [起始:结束:步长];

    选取的区间属于左闭右开,从起始位置开始,到结束位置的前一位(不包含结束位置本身);字符串前面数从0开始,从后面开始从-1开始。

    a = 'icessun'
    
    print(a[0:4])
    >>> 'ices'    # 取下标0 ~3的字符
    
    print(a[2:])
    >>> 'essun'   # 取下标2开始到末尾的字符
    
    print(a[1:-1])
    >>> 'cessu'  # 取下标为1到最后第2个之间的字符
    
    print(a[1:-0])
    >>> '  '   # 表示截取了一个空字符串
    
    print(a[1:0])
    >>> '  '   # 表示截取了一个空字符串
    
    print(a[:-4])
    >>> 'ice'  
    
    print(a[-4:])
    >>> 'ssun'   # 起始位置为负数是表示从末尾开始数(从1开始数)到末尾,要是起始位置是负数,那么步长一定省略,否者得到的是空字符串
    
    print(a[::-1])
    >>> 'nusscei'  # 字符串反转
    
    • 内部元素的访问
    # 都是通过索引来访问的
    "icessun"[0]
    >>>  'i'
    
    ['a','b','c'][0]
    >>>  'a'
    
    ('a',2,True)[2]
    >>> True 
    
    # 都可以使用`len()`这个函数来求长度
    
    • 单一的字符串索引操作得到的是字符串,但是一个列表的切片操作得到的是一个列表
    a = 'icessun'
    
    type(a[0:4])
    >>>  <class 'str'>
    
    ["ice","icess","icessun"][0]
    >>> 'ice'  # 是字符串
    
    ["ice","icess","icessun"][0:2]
    >>> ["ice","icess"]  # 是列表
    
    • 注意
    type( (1) )  
    >>> <class 'int'>
    
    type( ('a') )  
    >>> <class 'str'>
    

    一般来说:( )可以表示元组,也可以表示数学运算的优先级;所以当想表示一个只有一个元素的元组,应该这样:( (1,) );在元素的 后面加上一个逗号;表示一个空的元组:( ( ) )

    集合

    无序的,不能通过索引访问,里面的元素不重复

    • 判断一个元素是否在集合里面,这个方法也适合上面的数据类型
    1 in {1,2}
    >>> True
    
    3 not in {1,2,3,4}
    >>> False
    
    • 集合的操作
    # 集合的差集  去掉相同的元素,以前面集合为标准,从一个集合里面去掉后面集合特有的元素
    {1,2,3}-{2,3}
    >>> {1}
    {1,2,3}-{4}
    >>> {1,2,3}
    {1}-{4,2,3}
    >>> {1}
    
    # 集合的交集 找两个集合的公有元素
    {1,2,3}&{2,3}
    >>> {2,3}
    {1,3}&{2}
    >>> set( )  # 表示空集  len(set()) -----> 0
    
    # 集合的并集 把两个集合合并在一起,按照从前往后的顺序,去掉相同的元素
    {1,2,4}|{2,3}
    >>> {1,2,4,3}
    
    • 注意
    # 空集合的表示
    set()
    

    字典

    { key : value},键值对的形式,类似于Javascript中的对象

    • key的取值是不可变的类型:int,str,元组
    • 空的字典:{ }

    相关文章

      网友评论

        本文标题:python3入门与进阶(一)

        本文链接:https://www.haomeiwen.com/subject/teaqgxtx.html