初识python

        • 数据类型
          • 数组(简单列表)
          • 元组
          • dictionary
          • 时间和日期
          • 字符串形
        • 运算符and比较符
        • 循环使用
          • if
          • for
          • while
        • 函数
        • 模块
        • 文件IO
        • 文件操作
        • 异常处理

变量标识符没有类型,单引号和双引号没有区别,区分大小写

不使用{}来划分段落,使用的是相同的缩进

一行中使用多个语句时候,用分号分隔。一个语句如果想多行写,使用\来衔接,但是存在[]{}()时就不用\来衔接了

word = 'word'
sentence = "这是一个句子。"
paragraph = """这是一个段落。
包含了多个语句"""

注释:#和”’和”“”

数据类型

变量只有赋值的时候才会被创建
但是允许你对多个变量赋值
python有五个标准的数据类型:number,string,list,tuple,dictionary

数组(简单列表)

和c一样,但是数组元素可以不同

list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
Python 表达式 结果 描述
len([1, 2, 3]) 3 长度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
[‘Hi!’] * 4 [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’] 重复
3 in [1, 2, 3] True 元素是否存在于列表中
for x in [1, 2, 3]: print x 1 2 3 迭代
L[2] ‘Taobao’ 读取列表中第三个元素
L[-2] ‘Runoob’ 读取列表中倒数第二个元素
L[1:] [‘Runoob’, ‘Taobao’] 从第二个元素开始截取列表

函数
cmp(list1.list2)比较两个列表的元素
len(list)列表的长度
max(list)
min(list)
list(seq)将元组转化成列表
append(obj)在列表的末尾添加对象
count(obj)对象出现的次数
extend(seq)一次性添加多个值
index(obj)找到索引的位置
insert(index,obj)
pop(index=-1)移除最后一个元素,返回该元素的值
remove(obj)移除一个obj
reverse()反转列表的元素
sort(cmp=,key=,reversw=)排序

元组

元组和列表一样。不同的是,元组的元素不能修改,用的是()单元组(q,)

dictionary

字典的key唯一,但是值可以修改

dict = {'Name': 'Zara', 'Age': 7};

函数
cmp(dict1,dict2)比较两个字典
len(dict)长度
str(dict)可打印的字符串表示
clear()
copy()
get(key,)
has_key(key)
keys()返回所有的key
values()返回所有的值
pop(key)

时间和日期
import time
print('当前时间戳:',time.time())

时间元组:

序号 字段
0 4位年数 2008
1 1-12
2 1-31
3 小时 0-23
4 分钟 1-59
5 1-61
6 星期几 0-6
7 一年的第几日 1-366
8 夏令时 -1,0,1,-1

时间日期的格式化符号

%Y,%y年份
%m月份
%d日
%H,%l时
%M分
%S秒
%w星期几
%j年内第几天
%pAMPM
%Z时区

import time
print('当前时间戳:',time.time())
print('当前时间:',time.localtime(time.time()))
print("格式化时间",time.asctime(time.localtime(time.time())))
print("自定义格式化时间:",time.strftime("%y年-%m月-%d%H时-%M分-%S秒 星期%w",time.localtime()))
import calendar
print("日历\n",calendar.month(2018,7))
print(time.strftime("%H:%M:%S",time.localtime()));
time.sleep(10);#休眠10秒
print(time.strftime("%H:%M:%S",time.localtime()));
字符串形
var1 = 'Hello World!'
var2 = "Python Runoob"

例子:
a=’hello’
b=’zylg’

运算符 描述 例子
+ 字符串连接 a+b=’hellozylg’
* 重复输出字符串 a*2=’hellohello’
[] 通过索引获取字符串的字符 a[0]=’h’
[:] 提取字符串的一部分 a[1:4]=’ell’
in/not in 判断包含 ‘H’ in a=True
r/R 输出原始字符串 print r ‘\n’=’\n’
% 控制格式 %c,%d,%s,%o,%x,%e,%p
内建函数 描述
string.capitalize() 把字符串的第一个字符大写
string.center(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
string.count(str, beg=0, end=len(string)) 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
string.decode(encoding=’UTF-8’, errors=’strict’) 以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除非 errors 指 定 的 是 ‘ignore’ 或 者’replace’
string.encode(encoding=’UTF-8’, errors=’strict’) 以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’
string.endswith(obj, beg=0, end=len(string)) 检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
string.expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。
string.find(str, beg=0, end=len(string)) 检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
string.format() 格式化字符串
string.index(str, beg=0, end=len(string)) 跟find()方法一样,只不过如果str不在 string中会报一个异常.
string.isalnum() 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
string.isalpha() 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
string.isdecimal() 如果 string 只包含十进制数字则返回 True 否则返回 False.string.isdigit()
string.islower() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
string.isnumeric() 如果 string 中只包含数字字符,则返回 True,否则返回 False
string.isspace() 如果 string 中只包含空格,则返回 True,否则返回 False.
string.istitle() 如果 string 是标题化的(见 title())则返回 True,否则返回 False
string.isupper() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
string.join(seq) 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
string.ljust(width) 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.lower() 转换 string 中所有大写字符为小写.
string.lstrip() 截掉 string 左边的空格
string.maketrans(intab, outtab]) maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。
max(str) 返回字符串 str 中最大的字母。
min(str) 返回字符串 str 中最小的字母。
string.partition(str) 有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组(string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
string.replace(str1, str2, num=string.count(str1)) 把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
string.rfind(str, beg=0,end=len(string) ) 类似于 find()函数,不过是从右边开始查找.
string.rindex( str, beg=0,end=len(string)) 类似于 index(),不过是从右边开始.
string.rjust(width) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.rpartition(str) 类似于 partition()函数,不过是从右边开始查找
string.rstrip() 删除 string 字符串末尾的空格.
string.split(str=”“, num=string.count(str)) 以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
string.splitlines([keepends]) 按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
string.startswith(obj, beg=0,end=len(string)) 检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
string.strip([obj]) 在 string 上执行 lstrip()和 rstrip()
string.swapcase() 翻转 string 中的大小写
string.title() 返回”标题化”的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
string.translate(str, del=”“) 根据 str 给出的表(包含 256 个字符)转换 string 的字符,要过滤掉的字符放到 del 参数中
string.upper() 转换 string 中的小写字母为大写
string.zfill(width) 返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0

运算符and比较符

运算符 实例
[+-*/] a=2;b=5;a[+-*/]b;
% 2%3=2
** 2**3=8
// 9//4=2
“>>”,<<,~,&^
运算符 实例
or and not
== a==b
!= or <> a!=b or a<>b
[<,>,>=,<=] a[<,>,<=,>=]b
其他 例子
is ,not is,in ,not in 是,在

循环使用

if
   num = 5
   if (num == 3 or  num=9):            # 判断num的值
       print('boss') 
   elif num == 2:
       print('user')
   elif num == 1:
       print('worker')
   elif num < 0:           # 值小于零时输出
       print ('error')
  else:
      print ('roadman')     # 条件均不成立时输出
for
fruits = ['banana', 'apple',  'mango']
for index in range(len(fruits)):
   print '当前水果 :', fruits[index]

print "Good bye!"
while
num=5
while (num>0):
        print(num)
        num-=1

函数

def functionname( parameters ):
   "函数_文档字符串"
   function_suite
   return [expression]

参数传递:
值传递还是引用传递的分清,和c++一样,数组和字符串,是引用传递
参数可缺省
全局和部分变量
不定长参数

   def printinfo( arg1, *vartuple ):
   "打印任何传入的参数"
   print "输出: "
   print arg1
   for var in vartuple:
      print var
   return;
   printinfo( 10 );
printinfo( 70, 60, 50 );

模块

要导入模块 fib 的 fibonacci 函数,使用如下语句:

from fib import fibonacci
from modname import *
import math#导入内置的模块
set PYTHONPATH=/usr/local/lib/python
import math
print(dir(math),globals(),locals())#返回math的函数,全局变量,局部变量
reload(math)#重载math这个模块
from package_runoob.runoob1 import runoob1#导入自己写的包

文件IO

输入

file=open("划水.txt","a+")
print('现在打开文件',file.name)
if (file.closed):
        print("文件已经关闭")
else:
        print("文件未关闭")
print("访问模式",file.mode)
file.write("please tell me why are you love \n")
file.write("please tell me why are you love me \n")
file.write("please tell me why are you love me \n")
file.write("please tell me why are you love me \n")
file.write("please tell me why are you love me \n")
print("当前位置:",file.tell())
file.seek(0,0)#position on first of file
print(file.readlines())#read(10)读取10个,readline()读一行
file.close()

打开和关闭文件

w可写 r可读 w+/r+可读写 b二进制 a读写追加

文件操作

os.rename()
os.remove()
os.mkdir()
os.mkdirs()
os.rmdir()
os.rmdirs()
os.chdir()
os.getcwd()
os.chmod(path,mod)
os.chown(path,uid,gid)
os.chroot(path)
os.fstat(fd)

异常处理

try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
    print "Error: 没有找到文件或读取文件失败"
else:
    print "内容写入文件成功"
    fh.close()
try:
    fh = open("testfile", "w")
    fh.write("这是一个测试文件,用于测试异常!!")
finally:
    print "Error: 没有找到文件或读取文件失败"

你可能感兴趣的:(其他杂项)