zoukankan      html  css  js  c++  java
  • python寒假入门学习

    自学python入门课程作为补充。博客记作学习笔记,便于回顾复习

    前一周已经在实验楼学习了linux入门课程,所以python部分的linux入门直接跳过,从挑战一:创建代码文件开始

    挑战目标:在 /home/shiyanlou 目录下创建 shiyanlou.py 文件;在文件中输入以下内容print('hello shiyanlou');进入 Code 目录,新建名为 test 的目录,然后将刚创建的 /home/shiyanlou/shiyanlou.py 文件复制到目录 /home/shiyanlou/Code/test 中

    实验代码

    touch shiyanlou.py 
    cd /home/shiyanlou/Code //进入Code目录
    mkdir test //创建test目录
    vim shiyanlou.py //进入vim编辑器,编辑shiyanlou.py文件
    cp shiyanlou.py /home/shiyanlou/Code/test //复制文件到test目录下
    

    认识python

    输入python3进入python的交互环境

    • print函数
    print('xxxxxxxxxx')
    

    引号可以是单引号,也可以是双引号,但必须是英文符号,且前后一致

    使用三引号'''可打印多行内容

    • 赋值

    等号在Python里的意思是「赋值符」,代表把右边的数据赋值给左边

    变量的右边,甚至可以是另一个变量

    • input

    主要作用是让用户输入某个内容并接收它

    • 字符串

    包裹字符串的引号必须前后对应,成对出现。如果字符串中还有引号,如 He said "Today's weather is good.",直接写 print('He said "Today's weather is good."') 就会报错

    正确的写法是,在 Today 后面加入 转义符 \ ;转义符 \ 还有一个常用形式是和 n 连起来用, \n 代表换行符

    • format()

    format() 是专门用来 格式化字符串 的函数,它最常用的功能就是「插入数据」和「数字格式化」

    1.插入数据


    2.数字格式化

    只保留两位小数

    print("{:.2f}".format(3.1415926))
    
    • 注释

    '#' 常被用作写单行注释,# 号后的内容会被忽略,不会被当作代码处理

    • 算术运算符
    运算符 名称 描述
    / x 除以 y
    % 取模 返回除法的余数
    ** 返回 x 的 y 次幂
    // 取整 除返回商的整数部分(向下取整)
    • 比较运算符
    运算符 描述
    == 等于:比较对象是否相等
    != 不等于:比较两个对象是否不相等

    |大于:返回 x 是否大于 y
    <|小于:返回 x 是否小于 y
    =|大于等于:返回 x 是否大于等于 y
    <=|小于等于:返回 x 是否小于等于 y

    在 Python 和大多数高级语言中:一个等号代表赋值符,两个等号才代表数学意义上的“相等”

    • 逻辑运算符
    运算符 逻辑 表达式结果
    and(逻辑与) a and b 当 a、b 都为 True 时,返回 True;否则返回 False
    or(逻辑或) a or b 当 a、b 任意一个为 True,就返回 True
    not(逻辑非) not a 当 a 为 True 时,返回 False;反之亦然

    在逻辑运算中,数字 0 代表 False,1 代表 True

    • 创建文件

    我使用vim编辑器创建文件,在终端中输入vim test1.py,这条命令为:用 gedit 打开 test.py 文件;如果该文件不存在,则创建它并打开

    直接使用 Python3 解释器执行 test.py
    python3 test1.py
    文件中的内容直接显示在终端上

    • 流程控制

    if 语句最简单的构成是这样的:

    if xxxxx:
        xxxxxxx
    

    注意第 1 行末尾的冒号 : 和第 2 行的 4 个空格缩进

    除此之外,Python 还加入了 elif,即 else if,方便执行更复杂的判断

    if 看到卖西瓜的:    #当满足条件时,执行内部的代码;如不满足,则跳到下一个语句块
        买 2 个
    elif 看到卖苹果的:
        买 4 个
    elif 看到卖香蕉的:
        买 5 根
    else:   # 如果上面的条件都不满足,则执行 else 内部的代码
        不买
    

    在一个判断中,还可以嵌套另一套判断

    if 亚洲人:
        if 中国人:
            老乡
        else:
            亚裔非中国人
    else:
        外国人
    

    还可以使用 and 和 or 进行综合控制

    if 那A and b:   # A 和 B必须同时满足才能执行
        可以xxxx
    else:
        不可以xxxx
    
    • 循环

    for循环(适用于已知循环次数的循环,所以后面跟的是次数或区间,到达指定次数就停止)

    注意:第 1 行末尾的冒号 ':' 和第 2 行的 4 个空格缩进

    range() 函数

    如果需要处理一组数字列表,并且数字列表满足一定的规律,可以使用 Python 的内置函数 range()

    使用 range(x) 函数,可以生成一个从 0 到 x-1 的整数序列,比如打印 0 到 9 的数

    for a in range(10):
        print(a)
    

    还可以用 range(a,b) 取某个区间的数,比如要打印 1 到 10

    for a in range(1,11):
        print(a)
    

    range(a,b) 包头不包尾,尾数要 + 1

    小练习:用 for 循环帮依萍写出“书桓走的第 n 天,想他”,一直写到第 10 天。

    while循环(后面跟的是一个条件,只要条件满足,这个循环就会一直进行下去)

    打印 1 到 10 的数字

    a = 1
    while a <= 10:  ##同样注意冒号和语句块缩进
        print(a)
        a = a + 1
    

    break表示停止当前循环,如

    for a in range(10):
        if a == 5:
            break
        print(a)
    

    程序会打印 0 到 4 之间的数字

    continue 表示跳过当前循环轮次,去执行下一轮循环,如

    a = 0
    while a < 10:
        a = a + 1
        if a == 5:
            continue
        print(a)
    

    这次打印 1 到 10 的数,但不打印 5

    挑战二:逢 7 跳过

    7 的倍数,可以理解为除以 7 余数为 0 的数

    个位上是 7 的数,即除以 10 余 7 的数

    十位上是 7 的数,即除以 10 取整数为 7 的数

     for a in range(1,101):
           if a%7==0 or a%10==7 or a//10==7:
               continue
           print(a)  
    
    • 列表

    添加元素 45 到列表末尾

    >>> a = [23, 45, 1, -3434, 43624356, 234]
    >>> a.append(45) #在列表尾部添加元素
    >>> a
    [23, 45, 1, -3434, 43624356, 234, 45]
    

    insert 在列表的任何位置插入元素

    >>> a.insert(0, 1) # 在列表索引 0 位置添加元素 1
    >>> a
    [1, 23, 45, 1, -3434, 43624356, 234, 45]
    >>> a.insert(0, 111) # 在列表索引 0 位置添加元素 111
    >>> a
    [111, 1, 23, 45, 1, -3434, 43624356, 234, 45]
    

    count(s) 会返回列表元素中 s 的数量
    remove(xx) 删除列表中的任意元素
    reverse() 反序排列整个列表
    extend() 将一个列表添加到另一个列表后

    >>> b = [45, 56, 90]
    >>> a.extend(b) # 添加 b 的元素而不是 b 本身
    >>> a
    [45, 43624356, -3434, 1, 45, 23, 1, 111, 45, 56, 90]
    

    sort() 给列表内元素排序

    >>> a.sort()
    >>> a
    [-3434, 1, 1, 23, 45, 45, 45, 56, 90, 111, 43624356]
    

    pop() 弹出最后一个元素

    >>> a = [1, 2, 3, 4, 5, 6]
    >>> a
    [1, 2, 3, 4, 5, 6]
    >>> a.pop()
    6
    >>> a.pop()
    5
    >>> a.pop()
    4
    >>> a.pop()
    3
    >>> a
    [1, 2]
    

    pop(0) 弹出第一个元素

    >>> a = [1, 2, 3, 4, 5]
    >>> a.append(1)
    >>> a
    [1, 2, 3, 4, 5, 1]
    >>> a.pop(0)
    1
    >>> a.pop(0)
    2
    >>> a
    [3, 4, 5, 1]
    

    列表推导式由包含一个表达式的中括号组成,表达式后面跟随一个 for 子句,之后可以有零或多个 for 或 if 子句。结果是一个列表,由表达式依据其后面的 for 和 if 子句上下文计算而来的结果构成

    squares = [x**2 for x in range(10)] # 等价与下面的列表构建方式
    >>> squares = []
    >>> for x in range(10):
    ...     squares.append(x**2)
    ...
    >>> squares
    [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
    

    多个 for 语句

    >>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
    [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
    
    • 元组

    元组是由数个逗号分割的值组成

    >>> a = 'Fedora', 'ShiYanLou', 'Kubuntu', 'Pardus'
    >>> a
    ('Fedora', 'ShiYanLou', 'Kubuntu', 'Pardus')
    >>> a[1]
    'ShiYanLou'
    

    元组是不可变类型,这意味着不能在元组内删除或添加或编辑任何值。否则将会出错

    >>> a = (1, 2, 3, 4)
    >>> del a[0]
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: 'tuple' object doesn't support item deletion
    

    要创建只含有一个元素的元组,在值后面跟一个逗号

    >>> a = (123)
    >>> a
    123
    >>> type(a) # 查看a的数据类型
    <class 'int'>
    >>> a = (123, )
    >>> b = 321,
    >>> a
    (123,)
    >>> b
    (321,)
    >>> type(a)
    <class 'tuple'>
    >>> type(b)
    <class 'tuple'>
    
    • 集合

    大括号或 set() 函数可以用来创建集合。注意:想要创建空集合,你必须使用 set() 而不是 {}

    >>> basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
    >>> print(basket)                      # 你可以看到重复的元素被去除
    {'orange', 'banana', 'pear', 'apple'}
    >>> 'orange' in basket
    True
    >>> 'crabgrass' in basket
    False
    
    >>> # 演示对两个单词中的字母进行集合操作
    ...
    >>> a = set('abracadabra')
    >>> b = set('alacazam')
    >>> a                                  # a 去重后的字母
    {'a', 'r', 'b', 'c', 'd'}
    >>> a - b                              # a 有而 b 没有的字母
    {'r', 'd', 'b'}
    >>> a | b                              # 存在于 a 或 b 的字母
    {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
    >>> a & b                              # a 和 b 都有的字母
    {'a', 'c'}
    >>> a ^ b                              # 存在于 a 或 b 但不同时存在的字母
    {'r', 'd', 'b', 'm', 'z', 'l'}
    
    • 字符串

    可以通过几种不同的方式表示字符串

    >>> s = "I am Chinese"
    >>> s
    'I am Chinese'
    >>> s = 'I am Chinese'
    >>> s = "Here is a line \
    ... split in two lines"
    >>> s
    'Here is a line split in two lines'
    >>> s = "Here is a line \n split in two lines"
    >>> s
    'Here is a line \n split in two lines'
    >>> print(s)
    Here is a line
     split in two lines
    
    • 函数

    使用关键字 def 来定义一个函数,语法描述如下所示

    def 函数名(参数):
        语句1
        语句2
    

    例如

    >>> def sum(a, b):
    ...     return a + b
    

    第二行有个 return 关键字,把 a + b 的值返回给调用者,必须像下面这样调用这个函数

    >>> res = sum(234234, 34453546464)
    >>> res
    34453780698L
    
  • 相关阅读:
    hdu 1058
    hdu 1003
    hdu 1500
    hdu 1083 最大匹配
    hdu 1370 中国剩余定理
    hdu 1299 数论 分解素因子
    hdu 1299
    poj 1144 求割点
    hdu 1068 最大独立集合
    hdu 1054
  • 原文地址:https://www.cnblogs.com/yumiao9111/p/12286865.html
Copyright © 2011-2022 走看看