1.Hello World
print("hello world!\n") #换行符,一般打印时不加会默认换行,加上的话会多出一个空白行
print("hello world"), #如果不想换行可以在打印后加上逗号
2.标准格式
#!/usr/bin/env python #在环境变量中查找
#!/usr/bin/python #固定解释器的路径
第一种是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器。相当于写死了 python 路径。
第二种这种用法是为了防止操作系统用户没有将 python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,
首先会到 env 设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作。可以增强代码的可移植性,推荐这种写法。
class TEST(): #类
def fun(self): #def:声明函数 self:传参 无意义,不加会报错
print("hahahahaha")
if __name__ == "__main__": #主函数
T=TEST() #类的实例化--对象
T.fun() #函数调用
3.自定义函数
支持在函数内部定义函数;内部称为局部函数,外部成为全局函数。
class TEST:
#全局函数
def outdef():
print("This is global function.")
#局部函数
def indef():
print("This is part function.")
#调用局部函数
indef()
#调用全局函数
outdef()
4.类与对象
类在创建后需要再创建一个类的实例化(也可以理解为创建,然后调用)否则等于没用self参数指向实例本身的引用,用于访问类中的属性和方法。
方法在调用是自动传递实际参数self函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。
class TEST: #类
def fun():
print("hello world")
#类的实例化
T=TEST()#对象
Or:
T=TEST()#对象
T.fun()
5.数据类型
1.Number(数字)
2.String(字符串)
3.List(列表) list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
4.Tuple(元组) tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
5.Set(集合)
6.Dictionary(字典) A=dict(one=1,two=2,three=3)
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
import zipfile
class FIRST:
def fun():
#列表(数组)
list1 = [ 123, 'happy', 1.12, '__p__' ]
print (list1) #[123, 'happy', 1.12, '__p__']
print (list1[0:2]) #[123, 'happy']
print ("------------------------")
#元组(只读数组)
tuple1 = ( 'hello', 123, 1.23 )
print (tuple1) #('hello', 123, 1.23)
print ("------------------------")
#字典
dict1 = {'one':1,'two':2, 3:"kkk",'li':44}
dict1['4'] = 1000 #修改键为'4'的值
dict1[5] = 'm200' #添加元素
del dict1[3] #删除键为'3'的元素
print (dict1) #{'one': 1, 'two': 2, 'li': 44, '4': 1000, 5: 'm200'}
print (dict1.keys()) #dict_keys(['one', 'two', 'li', '4', 5])
print (dict1.values()) #dict_values([1, 2, 44, 1000, 'm200'])
print ("key5 data is", dict1[5]) #打印键为5的值 key5 data is m200
print ("------------------------")
#清除字典内容
dict2=dict1
dict1.clear() #clear不是清空字典,而将一个空字典赋值给变量,并不是清空,只是修改了变量的引用而已。
print ("Clear:",dict1) #{}
print ("Clear:",dict2) #{}
del dict2 #删除字典,删除后打印会报错
print ("------------------------")
#类型转换
print (tuple(list1)) #列表转化为元组 (123, 'happy', 1.12, '__p__')
print (list(tuple1)) #元组为其本身 ['hello', 123, 1.23]
#列表转化为字典
A=[ 1,2,3 ]
B=[ 'a','b','c' ]
dict3=dict(zip(A,B))
print(dict3) #{1: 'a', 2: 'b', 3: 'c'}
FIRST.fun()
6.模块化
#不同目录下调用模块
import …
#将一个模块引入,在当前的py文件中可以调用被引入模块中的任意函数
from … import …
#将一个模块中的某个类或者功能函数引入进来,只能调用被引入的这一个类或者函数
import … as
#test.py:
class HELLO:
def hello():
print("++++++++++++++++++++++++++")
print("+ hello world +")
print("++++++++++++++++++++++++++")
#HELLO.hello() #如果在原模块中调用了函数,那么在别的模块调用该函数后运行会执行两遍
#1.py:
import test #调用整个test.py
import test as haha #调用后对模块重命名
from test import HELLO #调用test.py里的HELLO这个类
class My_first_py:
def fun1():
print ("This is my funcution!")
print ("------------------------")
#test.HELLO.hello()
#haha.HELLO.hello()
HELLO.hello()
7.文本换行
data="he" +\
"llo " +\
"world"
print (data) #hello world
字符串
def fun():
# 01234567
A='ABCDEFGH'
print(A[0]) #A
print(A[1:4]) #BCD
print(A[:4]) #ABCD
8.运算符
符号 | 实例 |
---|---|
/除号 | 结果为浮点数 |
//除号 | 结果为向下取整的整数 (1.2向下取整为1,向上取整为2,-1.2向下取整为-2,向上取整为-1) |
%整除 | 5%3=2 |
**幂运算 | 3**2=9 |
9.按位与或非
10.位移操作
左移位和右移位运算符,其格式为a<<或b>>,含义为将数字a的二进制为数左移或右移b位。
例如∶a=0b10101 a<<2表示将a左移2位 即a=0b1010100 转为10进制为84
a>>1表示将a右移1位 即a=0b1010 转为十进制为10
1).左位移<< 低位补0,高位溢出舍弃 右位移>> 高位补0,低位溢出舍弃
2).负数的移位计数为非法操作,其可能导致ValueError错误
3).左移N位相当于将数乘以2的N次幂;右移N位相当于将数除以2的N次幂。
11.try&except
Python中的try语句可以用来捕获异常。捕捉异常可以使用try/except语句,见下例子。try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。如果你不想在异常发生时结束你的程序,只需在try里捕获它。
工作原理:
1).当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句(与try同级的except等)先执行,接下来会发生什么依赖于执行时是否出现异常。
2).如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
3).如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。
4).如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。
import traceback
class FIRST:
#try...expect
def fun():
try:
a=int(input('请输入第一个整数:'))
b=int(input('请输入第二个整数:'))
result=a/b
print('结果为:',result)
except ZeroDivisionError:
print('对不起,除数不允许为0')
except ValueError:
print('只能输入数字串')
print('程序结束')
#try...expect...else...finally
def fun1():
try:
a=int(input('请输入第一个整数:'))
b=int(input('请输入第二个整数:'))
result=a/b
print('结果为:',result)
except BaseException as e:#这里通用
print('出错了',e)
else:
print('输出结果是',result)
finally:
print('谢谢使用!')
print('程序结束!')
#traceback
def fun2():
try:
print('--------------------')
print(10/0)
except:
traceback.print_exc()#打印错误信息
FIRST.fun()
FIRST.fun1()
FIRST.fun2()
fun:
fun1:
fun2:
12.限制访问
Python并没有对方法和属性的访问权限进行限制;可以方法或属性前面加单下划线、双下划线,可以在首尾加双下划线:
首尾双下划线表示定义特殊方法,一般是系统定义名字。如:__init__以单下划线开头的表示protected(保护)类型的成员,只允许类本身和子类进行访问,*但不能使用“from module import ”语句导入双下划线表示private(私有)类型成员,只允许定义该方法的类本身进行访问,而且不能通过类的实例进行访问,但是可以通过“类的实例名._类名__xxx”方式访问
13.* **
python中*与 **的作用一共有四个,分别是数值计算、序列解包、函数声明的时候作为函数形参、函数调用的时候作为函数实参。注意,数值运算与序列解包中没有 **用法。
参考连接: https://blog.csdn.net/weixin_41271939/article/details/124521066
14.os模块
os模块是Python中整理文件和目录最为常用的模块,该模块提供了非常丰富的方法用来处理文件和目录。