下面是自己学习python整理的一些笔记,比较杂乱,供自己以后查看。
python自学笔记(1)--python入门第一课
windows系统下安装python3.x,配置下环境变量,教程如下:
https://jingyan.baidu.com/article/48206aeafdcf2a216ad6b316.html
Windows使用idle打开python shell窗口可以进行简单的python调试,方法是windows徽标开始菜单,输入‘idle’搜索idle程序,然后打开就可以;也可以下载一款python的ide来进行调试,我选择的是pycharm,网上有激活方法。
idle shell窗口快捷键 alt+n是跳转到上一条指令,alt+p是跳转到下一条指令。
接触python的第一个函数时print打印函数,这个函数python2和python3是不同的,写法如下:
print "Hello blooming tree!" #python2
print("Hello blooming tree!")#python3
# 井号用于python代码的注释,这点不同于java。
\ 用于换行输入,这点跟java一致
'''comments''' 三引号(可以是三双引号或三单引号)用于闭合操作,表示单一语句注释的跨行显示,三引号用在模块最开始或者函数最开始表示注释模块和函数,可用***.__doc__来查看注释内容。
跟java不同,python使用缩进相同的语句来表示是一个代码块,比如函数体内部的语句,而java是使用大括号括起来表示同一代码块。Python同一代码块代码必须严格左对齐,否则会造成语法错误。“;”分号作为行分隔符,跟java一致,但是一般不建议一行写多个语句,在一行一条语句的时候,可以不使用分号作为结尾。例如下面是一个方法的定义方式:
def print_name(name):
'''方法的首行注释'''
print(name)
python3的保留关键字如下,跟java一样,自定义命名的时候不可以使用保留的关键字:
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
python对于模块的定义是每个Python脚本文件都可以被当成一个模块。模块代码可以是一段可执行的脚本,也可以是一些类似库函数的代码,从而可以由别的模块执行导入。
每个模块都有一个名为__name__的内建变量,此变量的值会随着调用次模块的方式发生变化。如果此文件作为模块导入,则__name__的值为自定义的模块名,如果此文件被直接执行,则值为“__main__”。因此可以在模块中写如下的代码来表示是否需要被直接执行。
if __name__ == "__main__":python正常的导入模块的方法跟java很类似,如下:
print_name()
import re
import os
import random
python还可像下面的方法一样导入模块或属性
from functools import reduce
from random import random#精确使用属性,避免引用过多导致属性覆盖
import random as rd#将要导入的模块名称命名为新的名称rd
另外Python文件导入如果需要一个搜索路径,可以通过sys.path.append方法导入,这样就能够找到具体的模块。python还可以导入具体的包,可以导入包中的具体的某个模块。
Python内置数据类型
程序中存储的所有数据都是对象。每个对象都有一个身份,一个类型,一个值。一般而言,对象所属的类型,决定了对象所参与的操作,这是面向对象的思想。比如决定是数值相加还是字符串链接。
name = 'Jimmy'
print(name)#值输出为Jimmy
print(type(name))#类型输出为<class 'str'>
print(id(name))#身份为35504792
实例被创建后其id和type就不可变了,但是值可能可以改变,主要区分在可变对象(比如列表,字典)或者不可变对象(数值,字符串,元组),is运算符可以比较两个对象的id身份是否相同。
关于可变对象和不可变对象,可以参考:
http://blog.csdn.net/taohuaxinmu123/article/details/39008281
对象比较可以分为三种:
1.值比较用==比较
2.身份比较:两个变量名引用是否为同一个对象可以用is进行比较
3.类型比较:两个变量的类型或者两个对象的类型是否相同