Python--基础一

发布时间:2019-03-12 23:20:58编辑:auto阅读(2544)

    Python基础:print & input & 变量 & 运算符 & Python数据类型 & 运算符与表达式

    Python 基础 1

    注释

    单行注释

    #我注释了一行

    多行注释

    三个单引号'''括起来

    '''
    我可以注释多行
    我可以注释多行
    我可以注释多行
    '''

    三个双引号"""括起来

    """
    我可以注释多行
    我可以注释多行
    我可以注释多行
    """

     print 输出

    作用:打印到屏幕上一些信息

    可以接受多个字符串,用逗号分隔,遇到逗号会输出一个空格

    print(" It's a beautifu day", "Nice day", "my finished")
    print(18)
    print(10 + 8)
    print("10 + 8 =", 18)

    input 输入

    作用:从外部获取变量的值

    等待输入(阻塞),输入的内容报错在age里

    age = input("请输入您的年龄:")
    print("age =", age)

    变量

    概述:程序可操作的存储区的名称,程序运行期间能改变的数据,每个变量都有特定的类型;把程序运行的中间结果临时的存在内存里,以便后续的代码调用。

    作用:将不同类型的数据存储到内存

    变量的定义:变量名 = 初始值(为了确定变量的类型)

    数据的存储:变量名 = 数据值 (注意:变量在使用前必须先“定义”(即赋予变量一个值),否则会出现错误)

    删除变量:del 变量名 (删除后变量无法引用)

    定义变量的规则

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

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

      变量的定义要具有可描述性

    以下关键字不能声明为变量名:

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

    推荐定义方式

    #驼峰体
    
    AgeOfOldboy = 56
    
    NumberOfStudents = 80
    
    #下划线
    
    age_of_oldboy = 56
    
    number_of_students = 80

    变量的赋值

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    name1 = "wupeiqi"
    name2 = "alex"

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    name1 = "taibai"
    name2 = name1

    定义变量不好的方式举例

      变量名为中文、拼音

      变量名过长

      变量名词不达意

    常量

    常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量

    数据类型

    什么是数据类型?

      我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’的区别的,因此,在每个编程语言里都会有一个叫数据类型的东东,其实就是对常用的各种数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。

    整数 int

     Python可以处理任意大小的整数,当然包括负整数,在程序中的表示和数学的写法一样

    num1 = 10
    num2 = num1
    print(id(num2))
    1998374864
    # 连续定义多个变量
    num3 = num4 = num5 = 1
    print(num3, num4, num5)
    1 1 1
    #交互式赋值定义变量
    num6, num7 = 6, 7
    print(num6, num7)
    6 7

    布尔值 bool

    布尔值就两种:True,False。就是反应条件的正确与否。

    真   1   True。

    假   0   False。

    浮点数 float

    浮点型由整数部分与小数部分组成,浮点数运算可能会有四舍五入的误差

    f1 = 1.1
    f2 = 2.2
    f3 = f1 + f2
    print(f3)
    3.3000000000000003

    字符串类型(str)

    在Python中,加了引号的字符都被认为是字符串!

    >>> name = "Alex Li" #双引号
    >>> age = "22"       #只要加引号就是字符串
    >>> age2 = 22          #int
    >>> hometown = 'ShanDong'   #单引号也可以

    那单引号、双引号、多引号有什么区别呢? 让我大声告诉你,单双引号木有任何区别,只有下面这种情况 你需要考虑单双的配合

    msg = "My name is Alex , I'm 22 years old!"
    

    多引号什么作用呢?作用就是多行字符串必须用多引号

    msg = '''
    今天我想写首小诗,
    歌颂我的同桌,
    你看他那乌黑的短发,
    好像一只炸毛鸡。
    '''
    print(msg)

    数据类型转换

    print(int(1.9))
    1
    print(float(1))
    1.0
    print(int("123"))
    123
    print(float("12.3"))
    12.3
    #如果有其他无用字符会报错
    print(int("abc"))
    print(int("123abc"))
    Traceback (most recent call last):
      File "H:/Python项目/day/file.py", line 2, in <module>
        print(int("abc"))
    ValueError: invalid literal for int() with base 10: 'abc'
    #只有作为正负号才有意义
    print(int("+123"))
    123
    #print(int("12+3"))    #无意义会报错
    print(int("-123"))
    -123

    数字功能

    返回数字的绝对值 abs

    a1 = -10
    a2 = abs(a1)
    print(a2)
    10

    比较两个数的大小

    a3 = 100
    a4 = 9
    print((a3>a4)-(a3<a4))
    1

    返回给定参数的最大值 max

    print(max(1,2,3,4,5,6,7,8))
    8

     返回给定参数的最小值 min

    print(min(1,2,3,4,5,6,7,8))
    1

     求 x 的 y 次方 pow

    print(pow(2, 5))
    32

     round(x[,n])返回浮点数x的四舍五入的值,如果给出n值,则代表舍入到小数点后n位

    print(round(3.456))
    3
    print(round(3.556))
    4
    print(round(3.456, 2))
    3.46
    print(round(3.546, 1))
    3.5

    数学相关的库 math

    import math
    #   向上取整
    print(math.ceil(18.1))
    19
    print(math.ceil(18.9))
    19
    #   向下取整
    print(math.floor(18.1))
    18
    print(math.floor(18.9))
    18
    #   返回整数部分与小数部分
    print(math.modf(22.3))
    (0.3000000000000007, 22.0)
    #   开方
    print(math.sqrt(16))
    4.0

    range 指定范围,生成指定数字

    for i in range(1,10):
        print(i)
    
    for i in range(1,10,2):  # 步长
        print(i)
    
    for i in range(10,1,-2): # 反向步长
        print(i)

    随机数 random

    从序列的元素中随机挑选一个元素

    import random print(random.choice([1,3,5,7,9])) 5 print(random.choice(range(5))) #range(5)== [0,1,2,3,4] 3 print(random.choice("Lee")) #"Lee" == ["L","e","e"] e

    产生一个1~100之间的随机数

    r1 = range(1,101)
    for i in r1:
        print(i)
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

    从指定范围内,按指定的基数递增的集合中选取一个随机数

    #   random.randrange([start,] stop[,step])
    #   start--指定范围的开始值,包含在范围内,默认是0
    #   stop--指定范围的结束值,不包含在范围内
    #   step--指定的递增基数,默认是1
    print(random.randrange(1,100,2))
    13
    #    从0-99选取一个随机数
    print(random.randrange(100))
    61

    随机生成[0,1]之间的数(浮点数)

    print(random.random())
    0.14728254253360773

    随机生成一个实数,它在[3,9]范围

    print(random.uniform(3,9))
    4.516309142130013

    运算符与表达式

    算数运算

    表达式:由变量、常量和运算符组成的式子

    算术运算符和算术运算表达式

    算术运算符

    +   -    *    /     %      **      //

    以下假设变量:a=10,b=20

    比较运算

    以下假设变量:a=10,b=20

    赋值运算

    以下假设变量:a=10,b=20

    逻辑运算

     

    and

    逻辑与:  and
    逻辑与运算表达式:表达式1  and  表达式2
    值:
    如果表达式1的值为真,表达式2的值也为真,整体逻辑与运算表达式的值为真
    如果表达式1的值为真,表达式2的值为假,整体逻辑与运算表达式的值为假
    如果表达式1的值为假,表达式2的值为真,整体逻辑与运算表达式的值为假
    如果表达式1的值为假,表达式2的值也为假,整体逻辑与运算表达式的值为假  
    【有一个为假就为假】 
    表达式1  and  表达式2  and  表达式3  and  ......  and  表达式n
    num1 = 10
    num2 = 20
    if num1 and num2:
        print("&&&&&&&&&&&")
    &&&&&&&&&&&

    or

    逻辑或: or
    逻辑或运算表达式:表达式1  or  表达式2
    值:
    表达式1的值为真,表达式2的值为真,逻辑或运算表达式为真
    表达式1的值为真,表达式2的值为假,逻辑或运算表达式为真
    表达式1的值为假,表达式2的值为真,逻辑或运算表达式为真
    表达式1的值为假,表达式2的值为假,逻辑或运算表达式为假
    【有一个为真就为真】
    表达式1  or  表达式2  or  表达式3  or  ......  or  表达式n
    num3 = 0
    num4 = 1
    if num3 or num4:
        print("||||||||||")
    ||||||||||

    not

    逻辑非:  not
    逻辑非运算表达式:   not 表达式
    值:
    如果表达式的值为真,整体逻辑非运算表达式的值为假
    如果表达式的值为假,整体逻辑非运算表达式的值为真
    【颠倒黑白】
    if not 0:
        print("++++++++++")
    ++++++++++

    成员运算符

    in:如果在指定的序列中找到值返回True,否则返回False
    not in: 如果在指定的序列中没有找到值返回True,否则返回False

    身份运算符

    is:判断两个标志符是不是引用同一个对象
    is not:判断两个标志符是不是引用不同的对象

    运算符优先级

    运算符优先级
    **
    ~ + -   正负号(一元加减)
    *   /   %   //
    +   -
    >>  <<
    &
    ~   |
    <=  <   >   >=
    ==  !=
    =   %=  +=  -=  //= 
    is  in not
    in  not in 
    and     or      not

    if for while 语句

    if 语句

    格式:

    if 表达式:
        语句...

    逻辑:当程序执行到if语句时,首先计算“表达式”的值,如果“表达式”的值为真,那么执行if下的“语句”,如果“表达式”的值为假,则跳过整个if语句继续向下执行。
    何为真假?

    假:0    0.0    ''    None    False
    真:除了假就是真
    num5 = 10
    num6 = 20
    if num5 == num6:
        num5 = 100
    print("num5 =", num5)
    num5 = 10
    --------------------------------
    num5 = 20
    num6 = 20
    if num5 == num6:
        num5 = 100
    print("num5 =", num5)
    num5 = 100

    if -else 语句

    格式:

    if 表达式:
        语句1
    else:
        语句2

    逻辑:当程序执行到if-else语句时,首先计算“表达式”的值,如果表达式的值为真,则执行 “语句1”。执行完“语句1”跳出整个if-else语句。如果“表达式”的值为假,则执行“语句2”。执行完“语句2”跳出整个if-else语句。

    num = int(input())
    if num % 2 == 0:
        print("是偶数")
    else:
        print("是奇数")

    if-elif-else 语句

    格式:

    if  表达式1:
        语句1
    elif 表达式2:
        语句2
    elif 表达式3:
        语句3
    ……
    elif 表达式n:
        语句n
    else:                    #可有可无
        语句e

    逻辑:当程序执行到if-elif-else语句时,首先计算“表达式1”的值,如果“表达式1”的值为真,则执行“语句1”,执行完“语句1”,则跳过整个if-elif-else语句。如果“表达式1”的值为假,计算“表达式2”的值。如果“表达式2”的值为真,则执行“语句2”,执行完“语句2”,则跳过整个if-elif-else语句。如果“表达式2”的值为假,计算“表达式3”的值。如此下去直到某个表达式的值为真才停止,如果没有一个真的表达式,且有else,则执行“语句e”

    age = int(input())
    if age < 0:
        print("娘胎里")
    if age >=0 and age <= 3:
        print("婴儿")
    if age >=4 and age <= 6:
        print("儿童")
    if age >=7 and age <= 18:
        print("童年")
    if age >=19 and age <= 30:
        print("青年")
    if age >=31 and age <= 40:
        print("壮年")
    if age >=41 and age <= 50:
        print("中年")
    if age >=51 and age <= 100:
        print("老年")
    if age >=101 and age <= 150:
        print("老寿星")
    if age > 150:
        print("老妖怪")

    for 循环语句

    格式:

    for 变量名 in 集合:
        语句

    逻辑:按顺序取“集合”中的每个元素赋值给“变量”,在去执行语句。如此循环往复,直到取完“集合”中的元素截止

    range([start,] end[, step])函数 列表生成器
    start默认为0,step默认为1
    功能呢:生成数列
    a = range(10)
    print(a)
    range(0, 10)
    
    for x in range(10):
        print(x, end=" ")
    0 1 2 3 4 5 6 7 8 9
    
    for y in range(2, 20, 2):
        print(y, end=" ")
    2 4 6 8 10 12 14 16 18

    同时遍历下标和元素

    方法一:
    for index, m in enumerate([1,2,3,4,5]): #index, m = 下标,元素
        print(index, m)
    0 1
    1 2
    2 3
    3 4
    4 5
    
    方法二:
    index = 0
    for i in range(1,6):
        print(index, i)
        index += 1
    0 1
    1 2
    2 3
    3 4
    4 5

    while 循环语句

    格式:

    while 表达式:
        语句
    逻辑:当程序执行到while语句时,首先计算“表达式”的值,如果“表达式”的值为假,那么结束整个while语句。如果“表达式”的值为真,则执行“语句”,执行完“语句”再去计算“表达式”的值。如果“表达式”的值为假,那么结束整个while语句。如果“表达式”的值还为真,则执行“语句”,执行完“语句”再去计算“表达式”的值。如此循环往复,知道表达式的值为假才停止。
    
    while 表达式:
        语句1
    else:
        语句2
    
    逻辑:在条件语句(表达式)为False时执行else中的“语句2”
    
    a = 1
    while a <= 3:
        print("lee is a good man!")
        a += 1
    else:
        print("very very good")
    
    print("you are right")

    break 语句

    作用:

    跳出for和while的循环

    注意:只能跳出距离他最近的那一层循环

    for i in range(10):
        print(i)
        if i == 5:
            break
    
    num = 1
    while 1 <= 10:
        print(num)
        if num == 3:
            break
        num += 1
    #注意:循环语句可以有else语句,break导致循环截止,不会执行else下面的语句
    else:
        print("lee is a good man")

    continuc 语句

    作用:跳出当前循环中的剩余语句,然后继续下一次循环

    注意:跳出距离最近的循环

    for i in range(10):
        print(i)
        if i == 3:
            continue
        print("*")
        print("&")
    
    num = 0
    while num < 10:
        print(num)
        if num == 3:
            num += 1
            continue
        print("*")
        print("&")
        num += 1

     

关键字