《python基础教程第二版》读书笔记

  • win10下,可以改动os.environ的数据,但系统的环境变量并不会发生改变,再次读取又变回来了
  • 字符串替换 str.replace(old,new[,max])max参数是替换最大次数
      os.environ['Path'].replace('python 2.7','python 3.5')
  • os.environ['Path']发现是先读系统变量在读用户变量,但是我实验后发现系统用的却优先是系统变量,查了一下:

    http://bbs.youkuaiyun.com/topics/300066844
    用户下新建的path环境变量永远都是附加在系统环境变量之后的,path环境变量的使用是根据变量的顺序来找的,也就是说,系统path变量永远优先于用户path环境变量。

  • 关于reduce()函数,作用一句话说就是对第二个参数(sequence)内的元素从左到右两两使用第一个函数(函数)

#例1
>>> reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])
15
#例2
>>> mySets = []
>>> for i in range(10):
    mySets.append(set(range(i,i+5)))


>>> reduce(set.union,mySets)  
set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13])
  • 书上写着randrange([start],stop,[step])不禁让我诧异是如何在start不输入的时候,传入stop参数的,翻看了一下源码

 def randrange(self, start, stop=None, step=1, _int=int, _maxwidth=1L<<BPF):
    istart = _int(start)
        if istart != start:
            raise ValueError, "non-integer arg 1 for randrange()"
        if stop is None:
            if istart > 0:
                if istart >= _maxwidth:
                    return self._randbelow(istart)这里拿start调用了_randbelow函数
                return _int(self.random() * istart)
            raise ValueError, "empty range for randrange()"
            #此函数后面省略
def _randbelow(self, n, _log=_log, _int=int, _maxwidth=1L<<BPF,
                   _Method=_MethodType, _BuiltinMethod=_BuiltinMethodType):
        """Return a random int in the range [0,n)   

也就是说,并不是不传入start参数,而是把start当做stop参数使用,估计range()也是一个道理

  • 简单的循环要去想列表生成式
    下面这中不要手动去构造list
    (python代码像诗呀)
#我写的
deck = []
for i in range(1,11)+['J','Q','K']:
    for j in range(1,5):
        deck.append('%d of %s' % (j,i))
#书上的
values = range(1,11) + "Jack Queen King".split()
suits = "diamonds clubs hearts spades".split()
deck = ['%s of %s' % (v,s) for v in values for s in suits]
  • python中的re模块是正则匹配使用的,取名叫re的原因

    正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE)
    https://baike.baidu.com/item/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1700215?fr=aladdin

  • re.match() 匹配的是字符串开始的位置,如果要匹配整个字符串,可以在模式的结尾加上美元符

  • 假设需要匹配字符串'python.org',那么需要用两个反斜杠对.进行转义,因为为了让re模块获得到其所需的单个反斜线,需要通过两个级别的转义:1是通过解释器转义 2是通过re模块转义
    re.escape()也能知道,这个函数对字符串中所有可能被解释为正则运算符的字符进行转义,(比如用户输入一段字符,你讲这段字符作为正则表达式的一部分时,就可以使用这个函数防止用户输入的字符串有歧义被解释错误)
>>> re.escape('python.org')
'python\\.org'


  • win10 运行telnet命令显示是外部命令:
    1. win键+x,找到控制面板,打开
    2. 单击“启用或关闭windows功能”
    3. 找到Telnet客户端,前面打上勾,点击确定,等待安装一会
    4. 打开命令行 执行telnet host port
  • 使用ssh -q -l 用户名 -p 22 IP地址连接服务器
       q:静音模式
       l:login name
       p:端口
  • 在python的目录(如python 2.7/,也可以放在其他python能够找到的地方)下添加路径配置文件(以pth为后缀的文件,一行一个文件路径)来使python解释器在寻找模块的时候搜索文件里的路径。

如果我在配置文件中添加了一行 D:\WorkSpace\python\,
那么这个路径下的模块就可以被搜索到,
但是要注意 D:\WorkSpace\python\study 这个子目录下的模块并不会被找到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值