• python day1


    第1章 Day1

    1.1 第一个python脚本

    #!/usr/bin/env python

    #_*_coding:utf-8_*_

    print ("hello,world")

    1.2 变量:变化的量

    1.2.1 变量定义的规则:

    变量名只能是 字母、数字或下划线的任意组合

    变量名的第一个字符不能是数字

    以下关键字不能声明为变量名
    ['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']

    1.2.2 变量的赋值

    >>> name = "lieying"

    >>> name2 = name

    >>> print(name, name2)

    lieying lieying

    >>> name = "Jack"

    >>> print("What is the value of name2 now?")

    What is the value of name2 now?

    >>> print("What is the value of %s now?" %name2) #格式化输出 是为了方便在字符串中插入变量的值

    What is the value of lieying now?

    >>> print("What is the value of",name2,"now?") 否则只能这样写 把字符串打断

    What is the value of lieying now?

    >>> print("What is the value of"name2"now?")  打印输出时,字符串与变量之间必须用逗号分隔,逗号默认打印空格

    SyntaxError: invalid syntax

    1.3 字符编码

    Python 2.7 默认编码为 ASSCII

    Asscii码使用八位二进制来表示一个字节 可以表示最多2**8=256个字符 中文有2万多汉字 所以表示不过来

    1980年GB2312 一共收录了7445个字符,包括6763个汉字和682个其它符号。

    1995年的汉字扩展规范GBK1.0收录了21886个符号

    2000年的 GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不作要求。所以手机、MP3一般只支持GB2312。

    Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
    注:此处说的的是最少2个字节,可能更多

    UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

    所以要表示中文在python文件中要声明

    #!/usr/bin/env python

    # -*- coding: utf-8 -*-  

    print ("你好,世界")

    1.4 注释

      当行注视:# 被注释内容

      多行注释:""" 被注释内容 """

    1.5 用户输入

    1.5.1 当我们需要交互的获取一些变量的值时要用input

    >>> name = input("What is your name?")     # 将用户输入的内容赋值给 name 变量

    What is your name?lieying

    >>> print("Hello " + name )

    Hello lieying

    1.5.2 输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

    #!/usr/bin/env python

    # -*- coding: utf-8 -*-

    import getpass

     

    pwd = getpass.getpass("请输入密码:")

     

    # 打印输入的内容

    print(pwd)

    1.6 模块初识

    [root@linux-node1 scripts]# cat test.py

    #!/usr/bin/env python

    # -*- coding: utf-8 -*-

    import sys,os

    print(sys.argv) #把执行脚本时传递的参数获取到了

    os.system("df -h") #调用系统命令

    os.system(''.join(sys.argv[1:])) #把用户的输入的参数当作一条命令交给os.system来执行

    [root@linux-node1 scripts]# python test.py pwd

    ['test.py', 'pwd']

    Filesystem      Size  Used Avail Use% Mounted on

    /dev/sda3        28G  2.5G   26G   9% /

    devtmpfs        983M     0  983M   0% /dev

    tmpfs           993M     0  993M   0% /dev/shm

    tmpfs           993M  8.7M  984M   1% /run

    tmpfs           993M     0  993M   0% /sys/fs/cgroup

    /dev/sda1      1014M  137M  878M  14% /boot

    tmpfs           199M     0  199M   0% /run/user/0

    /server/scripts

    用Java来举例,Java首先是通过编译器编译成字节码文件,然后在运行时通过解释器给解释成机器文件。所以我们说Java是一种先编译后解释的语言。

    其实Python和Java/C#一样,也是一门基于虚拟机的语言

    1.7 简述Python的运行过程

    在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。

    我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。

    当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

    当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

    所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

    第2章 python数据类型

    1、数字

    2 是一个整数的例子。
    长整数 不过是大一些的整数。
    3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
    (-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数,数学中表示复数是什么?。

    int(整型)

      在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
      在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

    long(长整型)
      跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
      注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
    float(浮点型)

          先扫盲 http://www.cnblogs.com/alex3714/articles/5895848.html 
      浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
    complex(复数)
      复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

    注:Python中存在小数字池:-5 ~ 257

    2、布尔值

      真或假

      1 或 0

    2.1 字符串

    "hello world"

    万恶的字符串拼接:

      python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。

    字符串格式化输出

    name = lieying

    print "i am %s" %name

    输出: i am lieying

       

    PS: 字符串是 %s;整数 %d;浮点数%f

    字符串常用功能:

    移除空白

    >>> print(' lieying '.strip())

    lieying

    分割

    >>> print('lieying'.split('i'))

    ['l', 'ey', 'ng']

    长度

    >>> print(len('lieying'))

    7

    索引    

    >>> print('lieying'.index('i'))  #默认从零开始到第一个i

    1

    >>> print('lieying'.index('i',2))  #指定到第二个i

    4

    切片

    >>> print('lieying is a good boy'[1:15:2])

    iyn sag

    2.2 列表

    list1=['lieying','jianhong','meiyue','liming',201,]

    或者list1=(['lieying','jianhong','meiyue','liming',201,])

    2.2.1 索引

    >>> list1.index('jianhong')

    1

    >>> list1.index(201)

    4

    2.2.2 切片

    >>> list1[0:4:2]

    ['lieying', 'meiyue']

    >>> list1[0::2]

    ['lieying', 'meiyue', 201]

    >>> list1[::2]

    ['lieying', 'meiyue', 201]

    2.2.3 追加 var.append(‘xx’)

    >>> list1.append('六中')

    >>> print(list1)

    ['lieying', 'jianhong', 'meiyue', 'liming', 201, '六中']

    2.2.4 删除

    >>> list1.remove('六中')

    >>> print(list1)

    ['lieying', 'jianhong', 'meiyue', 'liming', 201]

    2.2.5 长度

    >>> len(list1)

    5

    2.2.6 循环

    >>> for n in list1:

        print(n)

    lieying

    jianhong

    meiyue

    liming

    201

    2.2.7 包含

    list1=['lieying', 'jianhong', 'meiyue', 'liming', 201]

    >>> 'lieying' in list1

    True

    >>> 201 in list1

    True

    2.3 元组  不可变列表

    ages = (11,22,33,44,55)

    ages = tuple((11,22,33,44,55))

    2.4 字典

    person = {‘name’:’meiyue’,’age’:’26’,’phone’:’18310015326’}

    person = dict({‘name’:’meiyue’,’age’:’26’,’phone’:’18310015326’})

    字典是无序的  列表时有序的 所以字典的查询速度比列表快

    2.4.1 索引    #只可以索引键 不能索引值 因为键是唯一的(不能为列表和字典,可以为字符串或者整数)

    >>> person = {'name':'meiyue','age':'26','phone':'18310015326'}

    >>> 'age' in person

    True

    >>> 'meiyue' in person

    False

    2.4.2 新增

    >>> person['sex']='man'

    >>> person

    {'age': '26', 'sex': 'man', 'phone': '18310015326', 'name': 'meiyue'}

    2.4.3 删除

    >>> del person['age']  #指定键删除

    >>> person

    {'sex': 'man', 'phone': '18310015326', 'name': 'meiyue'}

    >>> person.popitem()  #随机删除

    ('sex', 'man')

    >>> person

    {'phone': '18310015326', 'name': 'meiyue'}

    键值对

    2.4.4 循环

    >>> person['sex']='man'

    >>> person['age']=26

    >>> person

    {'age': 26, 'sex': 'man', 'phone': '18310015326', 'name': 'meiyue'}

    >>> for n in person:

        print(n,person[n])

    age 26

    sex man

    phone 18310015326

    name meiyue

    2.4.5 长度

    >>> len(person)

    4

    2.4.6 查 键值对

    >>> person['name']

    'meiyue'

    >>> person['age']

    26

    2.4.7 改

    >>> person['age']=8

    >>> person

    {'age': 8, 'sex': 'man', 'phone': '18310015326', 'name': 'meiyue'}

    2.5 数据运算  

    算数运算:

    比较运算:

    赋值运算:

    逻辑运算:

    成员运算:

    身份运算:

    位运算:

    2.6 判断If..else

    [root@linux-node1 scripts]# cat login.py

    #!/usr/bin/env python

    # -*- coding: utf-8 -*-

     

    import getpass

     

     

    name = raw_input('请输入用户名:')

    pwd = getpass.getpass('请输入密码:')

     

    if name == "alex" and pwd == "cmd":

        print("欢迎,alex!")

    else:

        print("用户名和密码错误")

    2.7 loop循环for

    >>> for i in range(5):

        print("loop:", i )

     

    loop: 0

    loop: 1

    loop: 2

    loop: 3

    loop: 4

    >>> for i in range(10):

        if i<5:

            continue #不往下走了,直接进入下一次loop

        print("loop:", i )

       

    loop: 5

    loop: 6

    loop: 7

    loop: 8

    loop: 9

     >>> for i in range(10):

        if i>5:

            break #不往下走了,跳出本层循环

        print("loop:", i )

    loop: 0

    loop: 1

    loop: 2

    loop: 3

    loop: 4

    loop: 5

    >>> 

    2.8 While loop

    死循环

    count = 0

    while True:

        print("你是我的玫瑰,你是我的爱...",count)

    count +=1

    循环一百次退出

    count = 0

    while True:

        print("你是我的玫瑰,你是我的爱",count)

        count +=1

        if count == 100:

          print("你太累了,也该歇歇了")

          break

        

    count = 0

    while count<100:

      print("你是我的玫瑰,你是我的爱",count)

      count +=1

        

    2.9 三元运算

    result = 值1 if 条件 else 值2

    如果条件为真:result = 值1
    如果条件为假:result = 值2

  • 相关阅读:
    MT7621 将gpio对应pin设置gpio模式
    openwrt jshn.h 详细用法数组遍历
    sql时间处理(使用函数DATEPART和STR)
    (1)Node.js 与 NPM 的 介绍、安装配置
    The elements in the "SELECT LIST" list must be separated using commas.
    1085. 【GDOI2008】彩球游戏
    3283. 【GDOI2013】大山王国的科举考试
    01.17~01.27 总结
    5190. 【NOI2017模拟7.1】景中人
    3647. 【GDOI2014】oj
  • 原文地址:https://www.cnblogs.com/lieying6011/p/7150260.html
Copyright © 2020-2023  润新知