zoukankan      html  css  js  c++  java
  • python学习笔记(一)

    Part 1.前言

    刚开始接触python,所以难免在运行过程会遇到种种的小问题,这里就理一理自己遇到的一些小坎:

    1.关于依赖库的缺失而造成的错误

    python拥有丰富的库来提供给使用者们调用,但在使用前,你需要首先将库部署好,一般性操作步骤即简单的"缺什么装什么"。当你在cmd中运行你的.py文件时,你可能会遇到类似下面的错误提醒

    这时候你所需要做的是

    1. 打开一个全新的cmd窗口;
    2. 在窗口中执行 pip install x 的命令 //这里的“x”即是你所要安装的库名

    这里再贴上关于pip的使用说明,如图所示:(pip + "")

    • install 安装包
    • download 下载包
    • uninstall 卸载包
    • list 输出已安装包的列表

    2.关于cmd交互式命令行模式下的注意点

    在交互式命令行下执行循环语句时,回车后会出现,此时容易犯的问题如下

    >>> for i in range(array):
    ... s=s+i;
      File "<stdin>", line 2
        s=s+i;
        ^
    IndentationError: expected an indented block   #错误指出你循环没有缩进块
    
    '''
    正确的做法如下
    for i in range(array):
    ...    s=s+i 
       ^^^        #键入空格以显示缩进
    '''
    

    Part 2.学习小细节摘要

    1.关于input()

    python中提供输入input()给用户输入字符串并存放到一个变量中。因为输入的是字符串,所以当你当你想要其他的类型时你需要将其转换。

    # -*- coding: utf-8 -*-
    n = int(input())    # 字符串转int类型
    n = double(input())    #字符串转double类型
    

    需要注意的是,这里的布尔类型不再像C、C++中那样接收"0"和"1",这里要么是"True"要么是"False"。

    2.谈谈字符编码

    常用的ASCII码占用的存储空间为1个字节,但他不支持其他语言的输入,所以有了Unicode编码来整合,但2个字节的Unicode使得存储空间大大增加,原本编码中常用的英文字母仅1个字节不得不占位成2个,这样显然不利于传输与存储,所以又有了可变长度的UTF-8编码的出现。传统的ASCII中内容保持1个字节的占位,其他则以1-6字节存储。

    所以一句话总结:在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。(详细了解可参见廖雪峰关于字符编码的详细说明)

    3.关于几种数据类型的记录

    1.list 列表
    • list用[]标识、定义
    • list.append(value) #末尾加入一个元素
    • list.count(value) #返回value该元素出现的次数
    • list.clear() #清空列表
    • list.extend(list_2) #可迭代入列表2
    • list.insert(position,value) #指定位置加入一个元素
    • list.index(value) #返回value该元素第一次出现的位置
    • list.pop(position) #返回position该位置的元素并把它删除
    • list.reverse() #内部元素反转
    • list.remove(value) #删除value该元素的第一次出现
    • list.sort() #内部元素排序
    • sorted(list) #返回排序好的列表但是不改变原来list的内部
    2.tuple 元组
    • tuple用()标识、定义
    • tuple.count(value) #返回value该元素出现的次数
    • tuple.index(value) #返回value该元素第一次出现的位置
    • tuple和list非常类似,但是tuple一旦初始化就不能修改内部的value
    3.dict 字典
    • dict用{}标识、定义
    • dictionary={'key':value} #dict使用键'key'来访问值value 例如:dictionary['key'] -> value
    • 字典内的key不重复,若一个key出现两个value与其匹配,则以最后出现的value为准
    • dict.clear() #清空字典
    • dict.copy() #返回一个dict的复制
    • dict.pop('key2') #删除字典中的key2及其携带的值,并返回其对应的值value
    • dict.get('key',flag) #返回字典中key对应的value值,不存在的话返回flag的值(默认返回None,跳过处理)
    • dict.items() #返回一个可遍历的以(key, value) 元组形式为元素的数组 例如:([(key1,value1),(key2,value2)])
    • dict.keys() #返回一个可遍历的以('key') 元组形式为元素的数组 例如:(['key1','key2'])
    • dict.values() #返回一个可遍历的以('value') 元组形式为元素的数组 例如:(['value1','value2'])
    • dict.update(dict2) #将dict2更新加入到dict中
    • dict['key2']=value2 #往字典dict中加入key2且其携带值value2
    • del(dict['key2']) #删除字典中的key2及其携带的值
    4.set 集合
    • set和dict类似,也是一组key的集合,但不存储value,且key同样不能重复。
    • set用set([key])定义
    • set.add(key2) #集合内加入一项key2
    • set.update([keys,...]) #集合内加入n个新项keys
    • set.remove(key) #集合内删除一项key2
    5.str 字符串
    • str用''标识、定义
    • str.count(s) ##返回s该字符或字符串出现的次数
    • str.find(sign,start,end) #返回s该字符或字符串在(start,end)区间内中首次出现的位置,若忽略区间的设置,则默认从头找到尾,未找到返回-1
    • str.index(sign,start,end) #功能与find基本一致,但未找到时直接报错
    • "s".join(list[]) #返回一个将list列表中各元素通过指定字符's'分隔开的新字符串
    • str.replace(old,new,count) #将str中的old字符或字符串替换为new的字符或字符串,count为替换的次数,默认值为全部
    • str.split('s') #将字符串以's'切割后,存放到并返回一个list

    4.循环要点

    • 形式一:以 for x in array: 的形式,循环把数组array中的每个元素代入变量x中,然后执行缩进块的语句
    • 形式二:以 for i in range(len(array)): 的形式,通过i的更新,依次访问数组元素array[i]并执行缩进块的语句
      (注意:range(n)函数从0开始访问到n-1,最后一个元素不访问)

    以上就是我本此初步基础学习的总结,小豪的程序员之路还在进行中,有不足的地方还希望大家指出,谢谢!

  • 相关阅读:
    SPOJ913 Query on a tree II
    SPOJ375 Query on a tree
    HDU4348 To the moon
    Bzoj2753 [SCOI2012]滑雪与时间胶囊
    HDU4612 Warm up
    Uva11374 Airport Express
    Uva1624 Knots
    DevExpress的GridControl的使用以及怎样添加列和绑定数据源
    C#中使用Path、Directory、Split、Substring实现对文件路径和文件名的常用操作实例
    ZedGraph的曲线的LineItem对象的Tag属性存储信息进而在鼠标悬浮时进行显示
  • 原文地址:https://www.cnblogs.com/S031602219/p/7877030.html
Copyright © 2011-2022 走看看