Python之路(二)Python基础

发布时间:2019-06-24 15:58:21编辑:auto阅读(1275)

    执行

    • Windows
    方式一
    D:\Python\python.exe D:\Python17\DAY01\Helloworld.py
    
    方式二
    D:\Python\python.exe
    • Linux
    方式一
    [root@linux-node1 ~]# /usr/bin/python Helloworld.py
    
    方式二
    [root@linux-node1 ~]# python
    
    方式三
    [root@linux-node1 ~]# vim Helloworld.py
    #!/usr/bin/python       // 增加头部信息
    # -*- coding:utf8 -*-   // 解释器编码
    print('Hello Python!')
    [root@linux-node1 ~]# chmod +x Helloworld.py        // 增加可执行权限
    [root@linux-node1 ~]# ./Helloworld.py

    编码

    • 字符编码

    计算机从本质上来说只认识二进制中的0和1,可以说任何数据在计算机中实际的物理表现形式也就是0和1,所有的信息最终都表示为一个二进制的字符串,每一个二进制位(bit)有0和1两种状态。

    • ASCII

    ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)编码规则是由美国定制,一共规定了128(2**8)个字符的编码,例如空格SPACE是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的一位统一规定为0。

    • GB2312、GBK

    虽然计算机是美国人发明的,但是全世界的人都在使用计算机。现在出现了另一个问题:如何让中文被计算机理解?这下麻烦了,中文不像拉丁语系是由固定的字母排列组成的。ASCII 码显然没办法解决这个问题,为了解决这个问题中国国家标准总局1980年发布《信息交换用汉字编码字符集》提出了GB2312编码,用于解决汉字处理的问题。GB2312的出现,基本满足了汉字的计算机处理需要,但对于人名、古汉语等方面出现的罕用字,GB2312不能处理,导致后来出现了GBK编码。

    • Unicode

    随着计算机的普及,显然ASCII码无法将世界上的各种文字和符号全部表示,所以诞生了Unicode编码。
    Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定所有的字符和符号最少由16位来表示(2个字节)。

    • UTF-8

    由于Unicode收录了更多的字符,可想而知它的解析效率相比ASCII码的速度要大大降低,原因是Unicode通过增加一个高字节对ISO Latin-1字符集进行扩展,当这些高字节位为0时,低字节就是ISO Latin-1字符。对可以用ASCII表示的字符使用Unicode并不高效,因为Unicode比ASCII占用大一倍的空间,而对ASCII来说高字节的0对他毫无用处。为了解决这个问题,就出现了UTF-8编码。UTF-8可以根据不同的符号自动选择编码的长短,例如英文字母可以只用1个字节就够了。

    • 编码小结
    1. 为了处理英文字符,出现了ASCII编码。
    2. 为了处理中文字符,出现了GB2312编码。
    3. 为了处理各国字符,出现了Unicode编码。
    4. 为了提高Unicode存储和传输性能,出现了UTF-8编码。

    注释

    • 单行注释

    #常被用作单行注释符号,在代码中使用#时它右边的任何数据都会被忽略,当做是注释。

    # 如下是单行注释
    # print('Hello Python!')
    • 多行注释

    多行注释是用三引号""" """包含的。

    # 如下是多行注释
    """
    print('Hello Java!')
    print('Hello PHP!')
    """

    引号

    • 单引号
    a = '谁说我的眼里只有你,让我把你忘记!'
    print(a)
    // 单引号字符串
    • 双引号
    a = "谁说我的眼里只有你,让我把你忘记!"
    print(a)
    // 双引号字符串
    • 三引号
    a = '''谁说我的眼里只有你,让我把你忘记!'''
    print(a)
    // 三单引号字符串,支持换行符
    
    a = """谁说我的眼里只有你,让我把你忘记!"""
    print(a)
    // 三双引号字符串,支持换行符

    变量

    • 定义
    a = '谁说我的眼里只有你,让我把你忘记!'
    print(a)
    // 变量名为:a,变量a的值为:'谁说我的眼里只有你,让我把你忘记!'
    • 命名规则
    1. 字母,数字,下划线组成
    2. 不能以数字开头
    3. 不能使用关键字
    4. 变量名见名知义
    • 赋值
    name = '林斌'
    user = name
    // 变量name,user在内存中指向同一段地址
    
    name = '林斌'
    user = '林斌'
    // 变量name,user在内存中指向同一段地址,Python的内存优化机制
    
    name = '大师兄'
    print(name)     // 打印大师兄
    user = name
    print(user)     // 打印大师兄
    name = '二师兄'
    print(name)     // 打印二师兄
    print(user)     // 打印大师兄

    输入输出

    • 输入
    name = input('请输入用户名:')
    print(name)
    
    import getpass
    password = getpass.getpass('请输入你密码:')
    print(password)
    • 输出
    a = 'Hello Python!'
    print(a)

    条件语句

    • 单分支结构
    if 1 == 1:
        print('条件正确')
    
    if 1 == 1:
        print('条件正确')
    else:
        print('条件错误')
    • 多分支结构
    name = input('请输入用户名:')
    if name == 'linbin':
        print('超级管理员')
    elif name == 'LinBin':
        print('管理员')
    elif name == 'LB':
        print('普通用户')
    else:
        print('匿名用户')
    • 嵌套结构
    name = input('请输入用户名:')
    if name == 'linbin':
        password = input('请输入密码:')
        if password == 'axbc1kof':
            print('登录成功!')
        else:
            print('登录失败!')
    else:
        print('你是谁啊?')

    循环语句

    • while

    在给定的判断条件为True时执行循环体,否则退出循环体。

    continue:跳出本次循环,继续下一次循环
    break:跳出整个循环

    i = 0
    while i < 11:
        print(i)
        i += 1
    • for

    重复执行语句。

    continue:跳出本次循环,继续下一次循环
    break:跳出整个循环

    a = ['a','b','c','d']
    for item in a:
        print(item)

    其它

    小试牛刀

    打印1,2,3,4,5,6,8,9,10

    i = 1
    while i < 11:
        if i == 7:
            i += 1
            continue
        print(i)
        i += 1

    计算1-100之和

    i = 1
    sum = 0
    while i < 101:
        sum += i
        i += 1
    print(sum)

    打印1-100奇数

    i = 1
    while i < 101:
        if i % 2 == 1:
            print(i)
        i += 1

    计算1-100奇数之和

    i = 1
    sum = 0
    while i < 101:
        if i % 2 == 1:
            sum += i
        i += 1
    print(sum)

    打印1-100偶数

    i = 1
    while i < 101:
        if i % 2 == 0:
            print(i)
        i += 1

    计算1-100偶数之和

    i = 1
    sum = 0
    while i < 101:
        if i % 2 == 0:
            sum += i
        i += 1
    print(sum)

    计算1-2+3-4+5......99结果

    i = 1
    sum = 0
    while i < 100:
        if i % 2 == 1:
            sum += i
        else:
            sum -= i
        i += 1
    print(sum)

    用户登录(三次机会重试)

    count = 0
    while count < 3:
        import getpass
        name = input('请输入用户名:')
        password = getpass.getpass('请输入密码:')
        if name == 'linbin' and password == 'axbc1kof':
            print('登录成功!')
            break
        else:
            print('登录失败!')
            count += 1

关键字