Python – 批量重命名

要用酷狗音乐听一下听力,顺带着lrc文件,但是酷狗只认krc。料想也没什么区别,单个修改下,考入以后发现并不好用,于是决定改回。但是一个个改实在太笨拙。

#!/usr/bin/env python
# authour: svtter
# coding: utf-8
import os
files = os.listdir('.')
for filename in files:
    portion = os.path.splitext(filename)
    if portion[1] == '.krc':
        newname = portion[] + ".lrc"
        os.rename(filename, newname)

Git一记

在windows上,无论我怎么git init,他永远初始化一个这么神奇的目录。我就看不懂了。

Reinitialized existing Git repository in C:/Program Files/Git/cmd/

后来仔细找了一下,发现变量里面有个很神奇的GIT_DIR,改了以后发现

Initialized empty Git repository in D:/Program Files/Git/cmd/

尼玛,真是到位了。

删除试试。

title

感动。

Python – 复入坑

= =亲爱的Python再次拿起来。。

检测Python进入参数的类型

def my_abs(x):
    if not isinstance(x, (int, float)):
        raise TypeError('bad operand type')
    if x >= :
        return x
    else:
        return -x

默认参数陷阱

L=[]会一直都是原来的值,因此初始值需要为None

def add_end(L=None):
    if L is None:
        L = []
    L.append('END')
    return L

利用可变参数

利用可变参数,可以一次传递多个值给函数。此外,还可以利用*把原来的list变成多个参数传入

def calc(*numbers):
    sum = 
    for n in numbers:
        sum = sum + n * n
    return sum

结果:

>>> calc(1, 2)
5
>>> calc()

此外:

>>> nums = [1, 2, 3]
>>> calc(nums[], nums[1], nums[2])
14
# 这种写法当然是可行的,问题是太繁琐,所以Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:
>>> nums = [1, 2, 3]
>>> calc(*nums)
14

关键字参数

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。请看示例:

def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)
# >>> person('Michael', 30)
# name: Michael age: 30 other: {}

也可以传入任意个数的关键字参数:

>>> person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {'city': 'Beijing'}
>>> person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}

关键字参数有什么用?它可以扩展函数的功能。

和可变参数类似,也可以先组装出一个dict,然后,把该dict转换为关键字参数传进去:

>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, city=extra['city'], job=extra['job'])
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

简化的写法:

>>> extra = {'city': 'Beijing', 'job': 'Engineer'}
>>> person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。

[阅读全文]

格式化代码的快捷键

随手记录快速整理代码的快捷键

webstorm

ctrl+alt+l

eclipse

ctrl+shift+f

Python建立简单的http服务器

python -m SimpleHTTPServer 8080
可以通过Python快速测试代码= =

博客一谈

从最初的csdn到博客园到wordpress到hexo,一直到现在的leanote。

中间的一些小众博客平台就不谈了。

现在用leanote的主要原因是csdn页面太丑。

  • 中间国产的几个博客配置系统也使用过,对markdown的支持惨不忍睹。当然其中也不缺乏不错的产品,只是一个好的前端太重要。。

  • wordpress在我半年前配置的时候也总是不顺畅。之前使用sae搭建的实在不怎么样,但是自己上传慢慢安装之后心中对空间的使用始终存在芥蒂。

leanote除了限制流量以外没有什么,不过我就是一小弱渣,肯定不会有什么问题。

vim-tips

拾遗

  1. 使用q:查看历史命令
  2. @*执行寄存器命令

高亮特定文件

" for ROS:
augroup filetypedetect
    au BufRead,BufNewFile *.launch set filetype=xml
augroup END