python学习一(基础总结)--基于Java基础

有一定java基础,再系统学习python,本文是基础教程的重要总结,留下文章,以供复习:

#注释单行,'''abc'''或者"""abc"""注释多行

编写格式如下,冒号后为内容,且缩进固定,一旦缩进错误,则无法识别,print可使用,和+
if 5>3:
    print("1"+"2")
elif 6>3:
    print("1","2")

变量不需要声明,但使用前必须赋值,如 a = 2.9
变量有五种标准的数据类型:Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典),支持复数可以用 a + bj,或者 complex(a,b)表示

字符串索引0为第一位顺延,-1为倒数第一位逆序
可使用 [头下标:尾下标] 来截取相应的字符串,例:
Stringlong = "abcdefghijklmn"
print(Stringlong[1:-5])
且可为空,如Stringlong[:2]等,Stringlong*2即输出两次

序列定义时注意,如tuple1=(1)不合法但也不报错,tuple1=(1,)合法
List定义:list=['1','2'],相当于数组,读取时list[0]等,有额外方法,如list.append('3')相当于list+=['3']
元组用()定义:tuple = ('1','2'),相当于只读的list,元组不允许更新,如tuple[0]='2',这是不合法的
字典无序的,List有序的:相当于json
dict={'age':24}
dict['name']='zhou' #新增
print(dict['age']) 
python有Json型,需要import json,需要的时候再查询
有各种方法,如输出键值:dict.keys()

数据类型转换:
int(x [,base])--将x转换为一个整数,base为进制,一般不考虑
long(x [,base] )--将x转换为一个长整数
float(x)--将x转换到一个浮点数
str(x)--将对象 x 转换为字符串
tuple(s)--将序列 s 转换为一个元组
list(s)--将序列 s 转换为一个列表
dict(d)--创建一个字典。d 必须是一个序列 (key,value)元组。

算术运算符:+-*/%一致,**幂 - 返回x的y次幂,//取整除 - 返回商的整数部分(向下取整)
逻辑运算符:一般用and,or,not,而&|为位运算不用,如:not 3>5   not即非,左边输出
成员运算符:in和not in ,判定是否在某序列中,如:a=1,a_list=[1,2],print(a in a_list)

for循环注意,如循环某变量的长度次,通常用range配合For循环,同时len可得到长度:
a = [1, 2, 3, 4]
for index in range(len(a)):
    print('now the num is:' + str(a[index]))
注意:若range(0,2)则表示0,1

break,continue和pass:前二用法相同,pass为占位,无任何意义,但是当函数为空时,可占位:def function1:pass

del删除:a = 1; del a;又或者:a=[1,2];del a[0];删除的是变量,注意索引,del a;删除a字典等

时间戳:import time;NowTime = time.time();
当前时间,元组形式:localtime = time.localtime(time.time())
格式化时间:localtime = time.asctime( time.localtime(time.time()) )
自定义格式化时间:print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) 
日历:import calendar;cal = calendar.month(2016, 1)

def传不可变对象,strings,tuples和numbers是不可更改的对象:
def ChangeInt( a ):
    a = 10
b = 2
ChangeInt(b)
print b # 结果是 2
def传可变对象, list,dict是可变更的
def changeme(mylist):
   "修改传入的列表"
   mylist.append(40);
   print "函数内取值: ", mylist
   return
# 调用changeme函数
mylist = [10,20,30];
changeme(mylist);
print "函数外取值: ", mylist #得到[10,20,30,40]

def带默认参数
def printAge(age = 18):
    print("内部的age:"+str(age))
    return
printAge(age = 28); #输出28
printAge();  #输出18

重要注:函数的定义必须在函数的调用之前,但是,函数A内部调用另一个函数B,则函数B的定义可以在函数A之后
重要注2:全局变量与局部变量的不同,在内部改变的会被视为局部变量,Java里不是。python是默认在方法中创建了新的变量防止歧义,但对于list,dict等不存在歧义,可以在def中修改
def sum(arg1, arg2):
    # 返回2个参数的和."
    total = arg1 + arg2;  # total在这里是局部变量.
    print("函数内是局部变量 : ", total)
    return total;
# 调用sum函数
sum(10, 20);
print("函数外是全局变量 : ", total)

重要注3:包名尽量不要与py文件重名,可能引发import错误
Python中一个包文件中有__init__.py
if __name__ == '__main__':
    print('作为主程序运行')
else:
    print('package_ 初始化')

input()   等待输入字符,如 x = input()

文件的操作,open,close,write,若不存在文件则自动新建一个文件,注意打开方式,w,r等,具体参数说明可百度Python 文件I/O:
# 打开一个文件
fo = open("foo.txt", "w");fo.write("www.runoob.com!\nVery good site!\n")
# 关闭打开的文件
fo.close()
str = fo.read([n])#读取文件内容并赋值,n为可选参数,输入读取几个字符,且是顺序读取,默认光标会发生变回,如str = fo.read(5);str = fo.read(5);第一次是前五个然后是接下来5个字符
fo.tell()--查看当前位置,fo.seek(0,0)--重定位,前一参数为偏移量,后一参数0为从头,1为从当前指针,2为从末尾
rename重命名,remove删除

文件目录,os还有其他一系列方法:
import os
os.mkdir("test")# 创建目录test
os.chdir("/home/newdir")# 将当前目录改为"/home/newdir",进入这个目录
os.getcwd()#显示当前的工作目录。 
os.rmdir('dirname')#删除目录

try:正常逻辑
except [最好有具体异常,否则捕获所有异常]:触发异常执行
else:没有异常执行

也同样有try-finally

猜你喜欢

转载自blog.csdn.net/qq_36187544/article/details/86505758
今日推荐