美文网首页
稀牛学院第1课笔记

稀牛学院第1课笔记

作者: Bog5d | 来源:发表于2017-11-25 21:56 被阅读262次

    稀牛lesson1

    python 基础

    目录

    • Python介绍
    • 基本数据结构
    • 变量和表达式
    • 字符窜
    • 列表
    • 判定语句
    • 循环语句
    • 集合/set,元组/tuble,字典/dictionary

    python 简介

    • python R
    • 一天内能写Python是有可能的
    • 流行程度:深度学习,人工智能

    深度学习

    google:tensorflow

    facebook:pytorch+caffe2

    Amazone:mxnet

    机器学习

    scikit-learn numpy pandas xgboost/LightGBM
    

    大数据

    hadoop(map-reduce) JAVA spark scala

    都是用Python去实现的

    • 因为数据科学家,用数据驱动的方式去解决实际生活中的各种问题。但是,花了大量时间去coding
    • 但理想的状况是,你把主要的精力放在分析数据,了解数据和解决问题本身上

    1. 寻求帮助

    • Python有内置的说明文档 help
    • dir
    import pandas as pd 
    # 数据科学的比赛,阿里,京东,会有比赛,其实可以多去参加的
    
    help(pd)
    
    Help on package pandas:
    
    NAME
        pandas
    
    DESCRIPTION
        pandas - a powerful data analysis and manipulation library for Python
        =====================================================================
        
        **pandas** is a Python package providing fast, flexible, and expressive data
        structures designed to make working with "relational" or "labeled" data both
        easy and intuitive. It aims to be the fundamental high-level building block for
        doing practical, **real world** data analysis in Python. Additionally, it has
        the broader goal of becoming **the most powerful and flexible open source data
        analysis / manipulation tool available in any language**. It is already well on
        its way toward this goal.
        
        Main Features
        -------------
        Here are just a few of the things that pandas does well:
        
          - Easy handling of missing data in floating point as well as non-floating
            point data
          - Size mutability: columns can be inserted and deleted from DataFrame and
            higher dimensional objects
          - Automatic and explicit data alignment: objects can  be explicitly aligned
            to a set of labels, or the user can simply ignore the labels and let
            `Series`, `DataFrame`, etc. automatically align the data for you in
            computations
          - Powerful, flexible group by functionality to perform split-apply-combine
            operations on data sets, for both aggregating and transforming data
          - Make it easy to convert ragged, differently-indexed data in other Python
            and NumPy data structures into DataFrame objects
          - Intelligent label-based slicing, fancy indexing, and subsetting of large
            data sets
          - Intuitive merging and joining data sets
          - Flexible reshaping and pivoting of data sets
          - Hierarchical labeling of axes (possible to have multiple labels per tick)
          - Robust IO tools for loading data from flat files (CSV and delimited),
            Excel files, databases, and saving/loading data from the ultrafast HDF5
            format
          - Time series-specific functionality: date range generation and frequency
            conversion, moving window statistics, moving window linear regressions,
            date shifting and lagging, etc.
    
    PACKAGE CONTENTS
        _libs (package)
        _version
        api (package)
        compat (package)
        computation (package)
        conftest
        core (package)
        errors (package)
        formats (package)
        io (package)
        json
        lib
        parser
        plotting (package)
        stats (package)
        testing
        tests (package)
        tools (package)
        tseries (package)
        tslib
        types (package)
        util (package)
    
    SUBMODULES
        _hashtable
        _lib
        _tslib
        offsets
    
    DATA
        IndexSlice = <pandas.core.indexing._IndexSlice object>
        NaT = NaT
        __docformat__ = 'restructuredtext'
        datetools = <module 'pandas.core.datetools' from '/home/bog/...ython3....
        describe_option = <pandas.core.config.CallableDynamicDoc object>
        get_option = <pandas.core.config.CallableDynamicDoc object>
        json = <module 'pandas.json' from '/home/bog/anaconda3/lib/python3.6/s...
        lib = <module 'pandas.lib' from '/home/bog/anaconda3/lib/python3.6/sit...
        options = <pandas.core.config.DictWrapper object>
        parser = <module 'pandas.parser' from '/home/bog/anaconda3/lib/python3...
        plot_params = {'xaxis.compat': False}
        reset_option = <pandas.core.config.CallableDynamicDoc object>
        set_option = <pandas.core.config.CallableDynamicDoc object>
        tslib = <module 'pandas.tslib' from '/home/bog/anaconda3/lib/python3.6...
    
    VERSION
        0.20.3
    
    FILE
        /home/bog/anaconda3/lib/python3.6/site-packages/pandas/__init__.py
    
    import tensorflow as tf
    
    help(tf)
    
    Help on package tensorflow:
    
    NAME
        tensorflow
    
    DESCRIPTION
        # Copyright 2015 The TensorFlow Authors. All Rights Reserved.
        #
        # Licensed under the Apache License, Version 2.0 (the "License");
        # you may not use this file except in compliance with the License.
        # You may obtain a copy of the License at
        #
        #     http://www.apache.org/licenses/LICENSE-2.0
        #
        # Unless required by applicable law or agreed to in writing, software
        # distributed under the License is distributed on an "AS IS" BASIS,
        # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        # See the License for the specific language governing permissions and
        # limitations under the License.
        # ==============================================================================
    
    PACKAGE CONTENTS
        contrib (package)
        core (package)
        examples (package)
        python (package)
        tensorboard (package)
        tools (package)
    
    SUBMODULES
        app
        compat
        errors
        estimator
        flags
        gfile
        graph_util
        image
        layers
        logging
        losses
        metrics
        nn
        python_io
        pywrap_tensorflow
        resource_loader
        saved_model
        sdca
        sets
        spectral
        summary
        sysconfig
        test
        train
        user_ops
    
    DATA
        COMPILER_VERSION = '4.8.4'
        GIT_VERSION = 'v1.1.0-rc0-61-g1ec6ed5'
        GRAPH_DEF_VERSION = 21
        GRAPH_DEF_VERSION_MIN_CONSUMER = 0
        GRAPH_DEF_VERSION_MIN_PRODUCER = 0
        QUANTIZED_DTYPES = frozenset({tf.qint8, tf.quint8, tf.qint32, tf.qint1...
        VERSION = '1.1.0'
        __compiler_version__ = '4.8.4'
        __git_version__ = 'v1.1.0-rc0-61-g1ec6ed5'
        bfloat16 = tf.bfloat16
        bool = tf.bool
        complex128 = tf.complex128
        complex64 = tf.complex64
        contrib = <tensorflow._LazyContribLoader object>
        double = tf.float64
        float16 = tf.float16
        float32 = tf.float32
        float64 = tf.float64
        half = tf.float16
        int16 = tf.int16
        int32 = tf.int32
        int64 = tf.int64
        int8 = tf.int8
        newaxis = None
        qint16 = tf.qint16
        qint32 = tf.qint32
        qint8 = tf.qint8
        quint16 = tf.quint16
        quint8 = tf.quint8
        resource = tf.resource
        string = tf.string
        uint16 = tf.uint16
        uint8 = tf.uint8
    
    VERSION
        1.1.0
    
    FILE
        /home/bog/anaconda3/lib/python3.6/site-packages/tensorflow/__init__.py
    

    tab有自动补全功能 ,比如tf. 后面按一个tab键,他会把后面可以接上的函数列出来

    import sklearn
    
    dir(sklearn.clone)
    
    ['__annotations__',
     '__call__',
     '__class__',
     '__closure__',
     '__code__',
     '__defaults__',
     '__delattr__',
     '__dict__',
     '__dir__',
     '__doc__',
     '__eq__',
     '__format__',
     '__ge__',
     '__get__',
     '__getattribute__',
     '__globals__',
     '__gt__',
     '__hash__',
     '__init__',
     '__init_subclass__',
     '__kwdefaults__',
     '__le__',
     '__lt__',
     '__module__',
     '__name__',
     '__ne__',
     '__new__',
     '__qualname__',
     '__reduce__',
     '__reduce_ex__',
     '__repr__',
     '__setattr__',
     '__sizeof__',
     '__str__',
     '__subclasshook__']
    
    dir(tf)
    
    ['AggregationMethod',
     'Assert',
     'AttrValue',
     'COMPILER_VERSION',
     'ConditionalAccumulator',
     'ConditionalAccumulatorBase',
     'ConfigProto',
     'DType',
     'DeviceSpec',
     'Dimension',
     'Event',
     'FIFOQueue',
     'FixedLenFeature',
     'FixedLenSequenceFeature',
     'FixedLengthRecordReader',
     'GIT_VERSION',
     'GPUOptions',
     'GRAPH_DEF_VERSION',
     'GRAPH_DEF_VERSION_MIN_CONSUMER',
     'GRAPH_DEF_VERSION_MIN_PRODUCER',
     'Graph',
     'GraphDef',
     'GraphKeys',
     'GraphOptions',
     'HistogramProto',
     'IdentityReader',
     'IndexedSlices',
     'InteractiveSession',
     'LogMessage',
     'NameAttrList',
     'NoGradient',
     'NodeDef',
     'NotDifferentiable',
     'OpError',
     'Operation',
     'OptimizerOptions',
     'PaddingFIFOQueue',
     'Print',
     'PriorityQueue',
     'QUANTIZED_DTYPES',
     'QueueBase',
     'RandomShuffleQueue',
     'ReaderBase',
     'RegisterGradient',
     'RunMetadata',
     'RunOptions',
     'Session',
     'SessionLog',
     'SparseConditionalAccumulator',
     'SparseFeature',
     'SparseTensor',
     'SparseTensorValue',
     'Summary',
     'TFRecordReader',
     'Tensor',
     'TensorArray',
     'TensorInfo',
     'TensorShape',
     'TextLineReader',
     'VERSION',
     'VarLenFeature',
     'Variable',
     'VariableScope',
     'WholeFileReader',
     '_LazyContribLoader',
     '__builtins__',
     '__cached__',
     '__compiler_version__',
     '__doc__',
     '__file__',
     '__git_version__',
     '__loader__',
     '__name__',
     '__package__',
     '__path__',
     '__spec__',
     '__version__',
     'abs',
     'accumulate_n',
     'acos',
     'add',
     'add_check_numerics_ops',
     'add_n',
     'add_to_collection',
     'all_variables',
     'app',
     'arg_max',
     'arg_min',
     'argmax',
     'argmin',
     'as_dtype',
     'as_string',
     'asin',
     'assert_equal',
     'assert_greater',
     'assert_greater_equal',
     'assert_integer',
     'assert_less',
     'assert_less_equal',
     'assert_negative',
     'assert_non_negative',
     'assert_non_positive',
     'assert_none_equal',
     'assert_positive',
     'assert_proper_iterable',
     'assert_rank',
     'assert_rank_at_least',
     'assert_type',
     'assert_variables_initialized',
     'assign',
     'assign_add',
     'assign_sub',
     'atan',
     'batch_to_space',
     'batch_to_space_nd',
     'betainc',
     'bfloat16',
     'bincount',
     'bitcast',
     'bool',
     'boolean_mask',
     'broadcast_dynamic_shape',
     'broadcast_static_shape',
     'case',
     'cast',
     'ceil',
     'check_numerics',
     'cholesky',
     'cholesky_solve',
     'clip_by_average_norm',
     'clip_by_global_norm',
     'clip_by_norm',
     'clip_by_value',
     'compat',
     'complex',
     'complex128',
     'complex64',
     'concat',
     'cond',
     'confusion_matrix',
     'conj',
     'constant',
     'constant_initializer',
     'container',
     'contrib',
     'control_dependencies',
     'convert_to_tensor',
     'convert_to_tensor_or_indexed_slices',
     'convert_to_tensor_or_sparse_tensor',
     'cos',
     'count_nonzero',
     'count_up_to',
     'create_partitioned_variables',
     'cross',
     'cumprod',
     'cumsum',
     'decode_base64',
     'decode_csv',
     'decode_json_example',
     'decode_raw',
     'delete_session_tensor',
     'depth_to_space',
     'dequantize',
     'deserialize_many_sparse',
     'device',
     'diag',
     'diag_part',
     'digamma',
     'div',
     'divide',
     'double',
     'dynamic_partition',
     'dynamic_stitch',
     'edit_distance',
     'einsum',
     'encode_base64',
     'equal',
     'erf',
     'erfc',
     'errors',
     'estimator',
     'exp',
     'expand_dims',
     'expm1',
     'extract_image_patches',
     'eye',
     'fake_quant_with_min_max_args',
     'fake_quant_with_min_max_args_gradient',
     'fake_quant_with_min_max_vars',
     'fake_quant_with_min_max_vars_gradient',
     'fake_quant_with_min_max_vars_per_channel',
     'fake_quant_with_min_max_vars_per_channel_gradient',
     'fft',
     'fft2d',
     'fft3d',
     'fill',
     'fixed_size_partitioner',
     'flags',
     'float16',
     'float32',
     'float64',
     'floor',
     'floor_div',
     'floordiv',
     'floormod',
     'foldl',
     'foldr',
     'gather',
     'gather_nd',
     'get_collection',
     'get_collection_ref',
     'get_default_graph',
     'get_default_session',
     'get_local_variable',
     'get_seed',
     'get_session_handle',
     'get_session_tensor',
     'get_variable',
     'get_variable_scope',
     'gfile',
     'global_norm',
     'global_variables',
     'global_variables_initializer',
     'gradients',
     'graph_util',
     'greater',
     'greater_equal',
     'group',
     'half',
     'hessians',
     'histogram_fixed_width',
     'identity',
     'ifft',
     'ifft2d',
     'ifft3d',
     'igamma',
     'igammac',
     'imag',
     'image',
     'import_graph_def',
     'initialize_all_tables',
     'initialize_all_variables',
     'initialize_local_variables',
     'initialize_variables',
     'int16',
     'int32',
     'int64',
     'int8',
     'invert_permutation',
     'is_finite',
     'is_inf',
     'is_nan',
     'is_non_decreasing',
     'is_numeric_tensor',
     'is_strictly_increasing',
     'is_variable_initialized',
     'layers',
     'lbeta',
     'less',
     'less_equal',
     'lgamma',
     'lin_space',
     'linspace',
     'load_file_system_library',
     'load_op_library',
     'local_variables',
     'local_variables_initializer',
     'log',
     'log1p',
     'logging',
     'logical_and',
     'logical_not',
     'logical_or',
     'logical_xor',
     'losses',
     'make_template',
     'map_fn',
     'matching_files',
     'matmul',
     'matrix_band_part',
     'matrix_determinant',
     'matrix_diag',
     'matrix_diag_part',
     'matrix_inverse',
     'matrix_set_diag',
     'matrix_solve',
     'matrix_solve_ls',
     'matrix_transpose',
     'matrix_triangular_solve',
     'maximum',
     'meshgrid',
     'metrics',
     'min_max_variable_partitioner',
     'minimum',
     'mod',
     'model_variables',
     'moving_average_variables',
     'multinomial',
     'multiply',
     'name_scope',
     'negative',
     'newaxis',
     'nn',
     'no_op',
     'no_regularizer',
     'norm',
     'not_equal',
     'one_hot',
     'ones',
     'ones_initializer',
     'ones_like',
     'op_scope',
     'orthogonal_initializer',
     'pad',
     'parallel_stack',
     'parse_example',
     'parse_single_example',
     'parse_single_sequence_example',
     'parse_tensor',
     'placeholder',
     'placeholder_with_default',
     'polygamma',
     'pow',
     'py_func',
     'python_io',
     'pywrap_tensorflow',
     'qint16',
     'qint32',
     'qint8',
     'qr',
     'quantize_v2',
     'quantized_concat',
     'quint16',
     'quint8',
     'random_crop',
     'random_gamma',
     'random_normal',
     'random_normal_initializer',
     'random_poisson',
     'random_shuffle',
     'random_uniform',
     'random_uniform_initializer',
     'range',
     'rank',
     'read_file',
     'real',
     'realdiv',
     'reciprocal',
     'reduce_all',
     'reduce_any',
     'reduce_join',
     'reduce_logsumexp',
     'reduce_max',
     'reduce_mean',
     'reduce_min',
     'reduce_prod',
     'reduce_sum',
     'register_tensor_conversion_function',
     'report_uninitialized_variables',
     'required_space_to_batch_paddings',
     'reset_default_graph',
     'reshape',
     'resource',
     'resource_loader',
     'reverse',
     'reverse_sequence',
     'reverse_v2',
     'rint',
     'round',
     'rsqrt',
     'saturate_cast',
     'saved_model',
     'scalar_mul',
     'scan',
     'scatter_add',
     'scatter_div',
     'scatter_mul',
     'scatter_nd',
     'scatter_nd_add',
     'scatter_nd_sub',
     'scatter_nd_update',
     'scatter_sub',
     'scatter_update',
     'sdca',
     'segment_max',
     'segment_mean',
     'segment_min',
     'segment_prod',
     'segment_sum',
     'self_adjoint_eig',
     'self_adjoint_eigvals',
     'sequence_mask',
     'serialize_many_sparse',
     'serialize_sparse',
     'set_random_seed',
     'setdiff1d',
     'sets',
     'shape',
     'shape_n',
     'sigmoid',
     'sign',
     'sin',
     'size',
     'slice',
     'space_to_batch',
     'space_to_batch_nd',
     'space_to_depth',
     'sparse_add',
     'sparse_concat',
     'sparse_fill_empty_rows',
     'sparse_mask',
     'sparse_matmul',
     'sparse_maximum',
     'sparse_merge',
     'sparse_minimum',
     'sparse_placeholder',
     'sparse_reduce_sum',
     'sparse_reduce_sum_sparse',
     'sparse_reorder',
     'sparse_reset_shape',
     'sparse_reshape',
     'sparse_retain',
     'sparse_segment_mean',
     'sparse_segment_sqrt_n',
     'sparse_segment_sum',
     'sparse_softmax',
     'sparse_split',
     'sparse_tensor_dense_matmul',
     'sparse_tensor_to_dense',
     'sparse_to_dense',
     'sparse_to_indicator',
     'sparse_transpose',
     'spectral',
     'split',
     'sqrt',
     'square',
     'squared_difference',
     'squeeze',
     'stack',
     'stop_gradient',
     'strided_slice',
     'string',
     'string_join',
     'string_split',
     'string_to_hash_bucket',
     'string_to_hash_bucket_fast',
     'string_to_hash_bucket_strong',
     'string_to_number',
     'substr',
     'subtract',
     'summary',
     'svd',
     'sysconfig',
     'tables_initializer',
     'tan',
     'tanh',
     'tensordot',
     'test',
     'tile',
     'to_bfloat16',
     'to_double',
     'to_float',
     'to_int32',
     'to_int64',
     'trace',
     'train',
     'trainable_variables',
     'transpose',
     'truediv',
     'truncated_normal',
     'truncated_normal_initializer',
     'truncatediv',
     'truncatemod',
     'tuple',
     'uint16',
     'uint8',
     'uniform_unit_scaling_initializer',
     'unique',
     'unique_with_counts',
     'unsorted_segment_max',
     'unsorted_segment_sum',
     'unstack',
     'user_ops',
     'variable_axis_size_partitioner',
     'variable_op_scope',
     'variable_scope',
     'variables_initializer',
     'verify_tensor_all_finite',
     'where',
     'while_loop',
     'write_file',
     'zeros',
     'zeros_initializer',
     'zeros_like',
     'zeta']
    

    python的运算

    • +/-/*//
    6/4
    
    1.5
    
    6//4
    
    1
    
    4**0.5
    
    2.0
    
    4%3
    
    1
    

    python基本数据类型,变量,运算,表达式

    3.变量

    基本数据类型:

    • int 整数
    • float 浮点数
    • str 字符窜
    • bool型
    • type()
    X = 12
    
    type(X)
    
    int
    
    y = -5.32
    type(y)
    
    float
    
    z = 'bog5d'
    type(z)
    
    str
    
    z[:3]
    
    'bog'
    
    a ="bog\n5d"
    print(a)
    
    bog
    5d
    
    a1 = 'bog\n5d'
    print(a1)
    
    
    bog
    5d
    
    d = True
    type(d)
    
    bool
    
    e = pd.DataFrame()
    type(e)
    
    pandas.core.frame.DataFrame
    

    表达式

    • Python 会用表达式
    ### 切片
    a = 'bog5diloveyou'
    a
    
    'bog5diloveyou'
    
    a[4]
    
    'd'
    
    a[-3]
    
    'y'
    
    a[1:4]
    #第二位到第五位
    #左闭右开,是切片原则
    
    'og5'
    
    a[-6:-2]
    
    
    'ovey'
    
    a[2:]
    
    'g5diloveyou'
    
    a[:5]
    
    'bog5d'
    

    字符窜函数

    dir(str)
    
    ['__add__',
     '__class__',
     '__contains__',
     '__delattr__',
     '__dir__',
     '__doc__',
     '__eq__',
     '__format__',
     '__ge__',
     '__getattribute__',
     '__getitem__',
     '__getnewargs__',
     '__gt__',
     '__hash__',
     '__init__',
     '__init_subclass__',
     '__iter__',
     '__le__',
     '__len__',
     '__lt__',
     '__mod__',
     '__mul__',
     '__ne__',
     '__new__',
     '__reduce__',
     '__reduce_ex__',
     '__repr__',
     '__rmod__',
     '__rmul__',
     '__setattr__',
     '__sizeof__',
     '__str__',
     '__subclasshook__',
     'capitalize',
     'casefold',
     'center',
     'count',
     'encode',
     'endswith',
     'expandtabs',
     'find',
     'format',
     'format_map',
     'index',
     'isalnum',
     'isalpha',
     'isdecimal',
     'isdigit',
     'isidentifier',
     'islower',
     'isnumeric',
     'isprintable',
     'isspace',
     'istitle',
     'isupper',
     'join',
     'ljust',
     'lower',
     'lstrip',
     'maketrans',
     'partition',
     'replace',
     'rfind',
     'rindex',
     'rjust',
     'rpartition',
     'rsplit',
     'rstrip',
     'split',
     'splitlines',
     'startswith',
     'strip',
     'swapcase',
     'title',
     'translate',
     'upper',
     'zfill']
    
    a.upper()
    
    'BOG5DILOVEYOU'
    
    a.endswith('u')
    
    True
    
    b= "      "+a+"-yes!!!"
    b
    
    '      bog5diloveyou-yes!!!'
    
    b=b.strip()
    
    
    c = "我 爱 达州"
    
    c.split(" ")
    
    ['我', '爱', '达州']
    
    b.find('5d')
    
    3
    

    list列表

    list是Python中的数据结构,表示一连串的数据的集合(有序的)

    names = ["bobi","eva","joe","二狗","李雷","hanmeimei"]
    #元素是任何玩意儿,都可以
    
    
    type(list)
    
    type
    
    type(names)
    
    list
    
    dir(list)
    
    
    ['__add__',
     '__class__',
     '__contains__',
     '__delattr__',
     '__delitem__',
     '__dir__',
     '__doc__',
     '__eq__',
     '__format__',
     '__ge__',
     '__getattribute__',
     '__getitem__',
     '__gt__',
     '__hash__',
     '__iadd__',
     '__imul__',
     '__init__',
     '__init_subclass__',
     '__iter__',
     '__le__',
     '__len__',
     '__lt__',
     '__mul__',
     '__ne__',
     '__new__',
     '__reduce__',
     '__reduce_ex__',
     '__repr__',
     '__reversed__',
     '__rmul__',
     '__setattr__',
     '__setitem__',
     '__sizeof__',
     '__str__',
     '__subclasshook__',
     'append',
     'clear',
     'copy',
     'count',
     'extend',
     'index',
     'insert',
     'pop',
     'remove',
     'reverse',
     'sort']
    
    len(names)
    
    6
    
    mixed = ['bobi',2,3.14,[1,2,34]]
    len(mixed)
    
    4
    
    ### 切片
    mixed[1]
    
    2
    
    mixed[3]
    
    [1, 2, 34]
    
    mixed[3][2]
    
    34
    
    mixed[2:]
    
    [3.14, [1, 2, 34]]
    

    split<==>join(对一堆字符串组成的list去做的)

    names
    
    
    ['bobi', 'eva', 'joe', '二狗', '李雷', 'hanmeimei']
    
    mixed
    
    ['bobi', 2, 3.14, [1, 2, 34]]
    
    " ## ".join(names)
    
    'bobi ## eva ## joe ## 二狗 ## 李雷 ## hanmeimei'
    
    "+".join(names)
    
    'bobi+eva+joe+二狗+李雷+hanmeimei'
    

    append(往尾巴上去追加)

    mixed
    
    ['bobi', 2, 3.14, [1, 2, 34], '36', '36', '36']
    
    mixed.extend([54,66,99])
    
    mixed
    
    ['bobi', 2, 3.14, [1, 2, 34], '36', '36', '36', 54, 66, 99]
    
    mixed.index('36')
    
    4
    
    mixed.pop()
    
    99
    
    mixed
    
    ['bobi', 2, 3.14, [1, 2, 34], '36', '36', '36', 54, 66]
    

    流程控制

    条件判断 if else
    #判断一个老人
    age = 25
    if age>60:
        print("一把老骨头啊")
    elif age>35:
        print("形状之年啊")
    else:
        print("小年轻")
        
    
    
    小年轻
    
    for name in names:
        print(name)
    
    bobi
    eva
    joe
    二狗
    李雷
    hanmeimei
    
    for i,name in enumerate(names):
        print(i,name)
    
    0 bobi
    1 eva
    2 joe
    3 二狗
    4 李雷
    5 hanmeimei
    
    i = 0
    while i<10:
        print(i)
        i+=1
    
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    i = 0
    while True:
        print(i)
        i+=1
        if i>6:
            break
    
    0
    1
    2
    3
    4
    5
    6
    
    i = 0
    while True:
        i+=1
        if i%3== 0:
            continue
        print(i)
        if i>6:
            break
    
    1
    2
    4
    5
    7
    
    for name in names:
        print('my name is'+name)
    
    my name isbobi
    my name iseva
    my name isjoe
    my name is二狗
    my name is李雷
    my name ishanmeimei
    
    ###列表推到式
    ['my name is '+name for name in names]
    
    
    ['my name is bobi',
     'my name is eva',
     'my name is joe',
     'my name is 二狗',
     'my name is 李雷',
     'my name is hanmeimei']
    
    num_list = list(range(1,16))
    
    [num**2 for num in num_list]
    
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225]
    
    [num**2 for num in num_list if num%2==1]
    
    [1, 9, 25, 49, 81, 121, 169, 225]
    
    [num**2 for num in num_list if (num%2==1 and num<5)]
    
    [1, 9]
    

    set/ 集合

    num_list = num_list*2
    num_list
    
    [1,
     2,
     3,
     4,
     5,
     6,
     7,
     8,
     9,
     10,
     11,
     12,
     13,
     14,
     15,
     1,
     2,
     3,
     4,
     5,
     6,
     7,
     8,
     9,
     10,
     11,
     12,
     13,
     14,
     15]
    
    set(num_list)
    
    {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
    

    字典/dictionary

    有时候,我们需要一下key—value这样的数据。键值对

    legs ={'spider:8','pig:4','duck:2'}
    
    
    legs.{'pig'}
    
    
      File "<ipython-input-80-9796474270bf>", line 1
        legs.{'pig'}
             ^
    SyntaxError: invalid syntax
    
    list(legs.key())
    
    ---------------------------------------------------------------------------
    
    AttributeError                            Traceback (most recent call last)
    
    <ipython-input-81-e76d2b520d0a> in <module>()
    ----> 1 list(legs.key())
    
    
    AttributeError: 'set' object has no attribute 'key'
    

    字典推到式

    my_list = list(range(10))
    my_list
    
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    {num:num**3 for num in my_list}
    
    {0: 0, 1: 1, 2: 8, 3: 27, 4: 64, 5: 125, 6: 216, 7: 343, 8: 512, 9: 729}
    
    ###高级排序
    my_list = [5,1,4,2,3]
    my_list.sort()#成员函数
    
    my_list
    
    [1, 2, 3, 4, 5]
    
    tmp_list=[5,4,3,1,2]
    sorted(tmp_list)#外部函数,不会改变数据序列本身
    
    [1, 2, 3, 4, 5]
    
    tmp_list
    
    [5, 4, 3, 1, 2]
    
    sorted(tmp_list,reverse=False)
    
    
    
    [1, 2, 3, 4, 5]
    
    strs =['ccc','aaaa','eeeeeee','kdjehd']
    
    sorted(strs)
    
    ['aaaa', 'ccc', 'eeeeeee', 'kdjehd']
    
    sorted(strs,key=len)#根据key对元素做处理后的结果排序
    
    ['ccc', 'aaaa', 'kdjehd', 'eeeeeee']
    
    tmp_strs= ['aa','CC','BB','ZZ']
    
    sorted(tmp_strs,key=str.lower)
    
    ['aa', 'BB', 'CC', 'ZZ']
    

    函数

    • def 关键字
    • 括号包含参数列表
    • 语句需要缩进
    def my_sum(a,b):
        return (a+b+1)**(1/3)
    
    my_sum(3,4)
    
    2.0
    
    def fib(n):
        a,b = 0,1
        for i in range(n):
            print(a,end=" ")
            a,b=b,a+b
        print()
    
    fib(15)
    
    0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 
    
    def my_mul(x,y=3):
        return x*y
    
    
    my_mul(4,5)
    
    20
    
    my_mul(4)
    
    12
    

    文件的读写

    !ls
    
    2017-11-25 19-16-05屏幕截图.png  波哥linux创建的  文档 稀牛学院课1.ipynb
    
    !2017-11-25\ 19-16-05屏幕截图.png
    
    /bin/sh: 1: 2017-11-25 19-16-05屏幕截图.png: not found
    
    !pwd
    
    /home/bog/图片
    
    help(open)
    
    Help on built-in function open in module io:
    
    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
        Open file and return a stream.  Raise IOError upon failure.
        
        file is either a text or byte string giving the name (and the path
        if the file isn't in the current working directory) of the file to
        be opened or an integer file descriptor of the file to be
        wrapped. (If a file descriptor is given, it is closed when the
        returned I/O object is closed, unless closefd is set to False.)
        
        mode is an optional string that specifies the mode in which the file
        is opened. It defaults to 'r' which means open for reading in text
        mode.  Other common values are 'w' for writing (truncating the file if
        it already exists), 'x' for creating and writing to a new file, and
        'a' for appending (which on some Unix systems, means that all writes
        append to the end of the file regardless of the current seek position).
        In text mode, if encoding is not specified the encoding used is platform
        dependent: locale.getpreferredencoding(False) is called to get the
        current locale encoding. (For reading and writing raw bytes use binary
        mode and leave encoding unspecified.) The available modes are:
        
        ========= ===============================================================
        Character Meaning
        --------- ---------------------------------------------------------------
        'r'       open for reading (default)
        'w'       open for writing, truncating the file first
        'x'       create a new file and open it for writing
        'a'       open for writing, appending to the end of the file if it exists
        'b'       binary mode
        't'       text mode (default)
        '+'       open a disk file for updating (reading and writing)
        'U'       universal newline mode (deprecated)
        ========= ===============================================================
        
        The default mode is 'rt' (open for reading text). For binary random
        access, the mode 'w+b' opens and truncates the file to 0 bytes, while
        'r+b' opens the file without truncation. The 'x' mode implies 'w' and
        raises an `FileExistsError` if the file already exists.
        
        Python distinguishes between files opened in binary and text modes,
        even when the underlying operating system doesn't. Files opened in
        binary mode (appending 'b' to the mode argument) return contents as
        bytes objects without any decoding. In text mode (the default, or when
        't' is appended to the mode argument), the contents of the file are
        returned as strings, the bytes having been first decoded using a
        platform-dependent encoding or using the specified encoding if given.
        
        'U' mode is deprecated and will raise an exception in future versions
        of Python.  It has no effect in Python 3.  Use newline to control
        universal newlines mode.
        
        buffering is an optional integer used to set the buffering policy.
        Pass 0 to switch buffering off (only allowed in binary mode), 1 to select
        line buffering (only usable in text mode), and an integer > 1 to indicate
        the size of a fixed-size chunk buffer.  When no buffering argument is
        given, the default buffering policy works as follows:
        
        * Binary files are buffered in fixed-size chunks; the size of the buffer
          is chosen using a heuristic trying to determine the underlying device's
          "block size" and falling back on `io.DEFAULT_BUFFER_SIZE`.
          On many systems, the buffer will typically be 4096 or 8192 bytes long.
        
        * "Interactive" text files (files for which isatty() returns True)
          use line buffering.  Other text files use the policy described above
          for binary files.
        
        encoding is the name of the encoding used to decode or encode the
        file. This should only be used in text mode. The default encoding is
        platform dependent, but any encoding supported by Python can be
        passed.  See the codecs module for the list of supported encodings.
        
        errors is an optional string that specifies how encoding errors are to
        be handled---this argument should not be used in binary mode. Pass
        'strict' to raise a ValueError exception if there is an encoding error
        (the default of None has the same effect), or pass 'ignore' to ignore
        errors. (Note that ignoring encoding errors can lead to data loss.)
        See the documentation for codecs.register or run 'help(codecs.Codec)'
        for a list of the permitted encoding error strings.
        
        newline controls how universal newlines works (it only applies to text
        mode). It can be None, '', '\n', '\r', and '\r\n'.  It works as
        follows:
        
        * On input, if newline is None, universal newlines mode is
          enabled. Lines in the input can end in '\n', '\r', or '\r\n', and
          these are translated into '\n' before being returned to the
          caller. If it is '', universal newline mode is enabled, but line
          endings are returned to the caller untranslated. If it has any of
          the other legal values, input lines are only terminated by the given
          string, and the line ending is returned to the caller untranslated.
        
        * On output, if newline is None, any '\n' characters written are
          translated to the system default line separator, os.linesep. If
          newline is '' or '\n', no translation takes place. If newline is any
          of the other legal values, any '\n' characters written are translated
          to the given string.
        
        If closefd is False, the underlying file descriptor will be kept open
        when the file is closed. This does not work when a file name is given
        and must be True in that case.
        
        A custom opener can be used by passing a callable as *opener*. The
        underlying file descriptor for the file object is then obtained by
        calling *opener* with (*file*, *flags*). *opener* must return an open
        file descriptor (passing os.open as *opener* results in functionality
        similar to passing None).
        
        open() returns a file object whose type depends on the mode, and
        through which the standard file operations such as reading and writing
        are performed. When open() is used to open a file in a text mode ('w',
        'r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to open
        a file in a binary mode, the returned class varies: in read binary
        mode, it returns a BufferedReader; in write binary and append binary
        modes, it returns a BufferedWriter, and in read/write mode, it returns
        a BufferedRandom.
        
        It is also possible to use a string or bytearray as a file for both
        reading and writing. For strings StringIO can be used like a file
        opened in a text mode, and for bytes a BytesIO can be used like a file
        opened in a binary mode.
    
    f = open('./无标题文档','r')
    
    f.read()
    
    "sorted(tmp_list)\ndsjfsjofdsfjsdajfdsa\nfjdsiojfds\n4\nkds'\n"
    
    f.close()
    
    f = open('./无标题文档','r')
    f.readlines()
    
    ['sorted(tmp_list)\n',
     'dsjfsjofdsfjsdajfdsa\n',
     'fjdsiojfds\n',
     '4\n',
     "kds'\n"]
    
    f.close()
    
    for line in open('./无标题文档','r'):
        print(len(line.strip()))
        
    
    16
    20
    10
    1
    4
    

    作业-统计词频

    给你一个文件,统计这个文档中出现了的单词,出现的次数。

    正则表达式

    tem_str = "有谁喜欢郭金明的书,那么韩寒呢"
    
    tem_str.find("郭金明")
    
    4
    

    匹配的是一个模式,我让你找到所有邮箱字符串

    email_str = "my email is wangbo8805@gmail.com,his email is test@test.net,goodbye"
    
    import re #正则表达式
    #\d 数字
    # \2 字母,数字,下划线。。。。
    #\s 所有的空格 空白 或者tab 换行
    # + 贪婪匹配
    # * 匹配0次或者若干次
    match=re.search(r'[\w.-]+@[\w.-]+',email_str)
    if match:
        print(match.group())
    
    wangbo8805@gmail.com
    

    hanxiaoyang.ml@gmail.com寒晓阳的邮箱

    emails = re.findall(r'[\w.-]+@[\w.-]+',email_str)
    if emails:
        for email in emails:
            print(email)
    
    wangbo8805@gmail.com
    test@test.net
    

    相关文章

      网友评论

          本文标题:稀牛学院第1课笔记

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