【编程语言】Python2 笔记

Python2

安装最新版本

此处记录的是 Ubuntu Kylin 14.04 LTS 下的过程。[1] [2] [3]

打开 Terminal,输入下述命令,获取最新的包

$ cd /usr/src
$ sudo wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz

# wget 所指地址是从https://www.python.org/downloads/release/python-2711/ 获取的

待下载完毕后,键入下述命令解压缩

$ tar xzf Python-2.7.11.tgz

解压完毕后,依次执行下述命令

$ cd Python-2.7.11.tgz
$ sudo ./configure --prefix=/usr
$ sudo make 
$ sudo make install

完成后在命令提示符下输入 python,即可看到 Python 版本已更新

使用非 ASCII 字符(例如中文字符)[4]

请在 Python 脚本开头输入如下代码

# -*- coding: utf-8 -*-

格式化字符串输出[5] [6] [7] [8]

# 字符串输入输出
name = "Su Shangjun"
gender = "male"
print """
My name is %r.
I'm a %s.
""" % (name, gender) # 注意,使用 `%r` 来调试,查看原始输入是什么

# 数字输入输出
rawNum = raw_input("Input a number:>")
# 下一句代码有 4 点值得注意:
# (1)长字符串换行方法:在本行末尾结束字符串并加反斜杠(\),下一行重新开始新字符串;多参数则不必如此,只要单个参数输入完毕即可换行输入下一个参数
# (2)使用 int() 与 float() 将参数转为整数/浮点数
# (3)使用控制字符串精度控制 `%.3f` 与 `%.5f`使显示时小数点保留 3 位与 5 位精度
print "It is %d in the form of integer, "\
    "and is %.3f in the form of float(3 decimal places) while"\
    " %.5f in the form of float(5 decimal places)."% (
    int(rawNum), 
    float(rawNum),
    float(rawNum))

从运行脚本的命令行中获取参数[9]

from sys import argv

文件操作[10] [11] [12]

打开文件[10] [12]

键入下述命令,使 Py 脚本打开从命令行参数中获取文件名的文件

from sys import argv

script, srcName = argv

src = open(srcName, '[mode name]') 

# 使用 'r'/'w'/'r+'/'a' 来替换 '[mode name]'
# 'r':读
# 'w':写,若在写文件前已有同名文件,则直接覆盖
# 'a' :修改,直接向文件尾部添加内容 
# 'r+':读+修改(文件读写指针相互独立,即读指针默认从头开始,写指针默认指向文件尾)
# 例如,假设该脚本名为 openfile.py,与脚本放在同一目录下有一个文件名为 test.txt
# 执行 openfile.py test.txt 到上一句结束后
# 脚本打开 text.txt 并准备对其进行操作
# 此后变量 src 即指代该文件
# 可用该变量对该文件进行读写操作

其他常用读写命令[11] [12]

  • 读文件(直到文件尾):read,例如
    # 将 src 指向文件的所有内容以字符串形式赋予变量 srcContent。例如,为 src 开了 'r'/'r+'
    srcContent = src.read()
    
  • 读取一行:readline,例如
    # 从目前读指针在文件中所处位置开始读取一行
    # 以字符串形式赋予变量 srcContent
    srcContent = src.read()
    
  • 写入:write,例如
    # 例如 something 中已经保存了想要写入文件当前写指针指向位置的内容。例如,为 src 开了 'w'/'r+'
    # 下述命令将从目前写指针在文件中所处位置开始,往文件中写入 something 中保存的内容
    somehting = "I want to test the code."
    src.write(something)
    
  • 关闭文件:close,例如
    src.close()
    # 这条命令运行后,在重新指定前,src 不再指向之前指定的文件了,例如 test.txt
    

与目录有关的文件操作[^14]

首先导入模块os

import os

下面记录几个常用函数的操作:

列出目录文件列表

函数 os.listdir()

【输入】字符串

注意,该函数的输入必须是字符串,因此不能输入/Users/username/Desktop,而要输入"/Users/username/Desktop"来替换

【输出】1 个 list,其中的元素与下的文件名一一对应

【注意】函数不接受包含...形式的路径(例如./Desktop是不合法的输入,必须给出绝对路径)

csv输出

模板代码:

import csv

self.log_fields = ['key1', 'key2', 'key3']
self.log_file = open(self.log_filename, 'wb')
self.log_writer = csv.DictWriter(self.log_file, fieldnames=self.log_fields)
self.log_writer.writeheader()

self.log_writer.writerow({
    'key1':value1,
    'key2':value2,
    'key3':value3
})

self.log_file.close()

定义函数[8] [13]

以下代码定义 1 个函数,输出 3 行 Hello, world. 字符串:

def my_first_fun():      #检查(1)有无括弧;(2)有无冒号
    print "Hello, world."

def my_second_fun(arg1):
    print "%s" % arg1 # 这里如果用 r,将输出 'Hello, world.',即输出字符串带单引号。参数 %r 常用于调试,查看原始数据

def my_third_fun(arg):
    print arg

sentence00 = 'Hello, world.'
sentence01 = """Hello, world."""

my_first_fun();
my_second_fun(sentence00)
my_third_fun(sentence01)
# 注意,在 Py 中,即便不加'\n',1 个 print 也会默认输出 1 行

进制转换

可以用 bin()/oct()/hex() 将目标数字转换为对应的二进制/八进制/十六进制数字

一些常用库的简介

  • random:随机数

参考资料


  1. How to Install Python 2.7.10 on Ubuntu & LinuxMint ↩

  2. Difference in details between “make install” and “make altinstall” ↩

  3. 鸟哥的 Linux 私房菜(基础学习篇) ↩

  4. Exercise 1: A Good First Program ↩

  5. Exercise 8: Printing, Printing ↩

  6. Exercise 19: Functions and Variables ↩

  7. Wrap long lines in Python ↩

  8. Exercise 6: Strings and Text ↩ ↩

  9. Exercise 13: Parameters, Unpacking, Variables ↩

  10. Exercise 15: Reading Files ↩ ↩

  11. Exercise 16: Reading and Writing Files ↩ ↩

  12. 7.2. Reading and Writing Files ↩ ↩ ↩

  13. Exercise 18: Names, Variables, Code, Functions ↩

你可能感兴趣的:(【编程语言】Python2 笔记)