1.Python基础

本文详细介绍了Python的基础知识,包括输出、数据类型(如整型、字符串及其格式化)、布尔型、序列(列表、元组和range)、变量、注释、输入、条件语句、循环语句、函数、类与对象、异常处理、模块和包的使用。此外,还涉及了文件操作、时间模块以及字符串方法等核心概念。通过实例展示了各种语法和方法的运用,适合Python初学者学习。
摘要由CSDN通过智能技术生成

Python基础

1.输出

print(2 ** 2)
print(" *** ")
print(" +++ ",end=".")

输出:
4
***
+++.

2.数据类型

1.整型(int)

2.字符串(str)

字符串格式化:

  • %:str % ( ),即:字符串 % 元组

    name = "Kit"
    age = 18
    #test = "我是%s,今年%d岁" %("kti",18)
    test = "我是%s,今年%d岁" %(name,age)
    
    test = "我是%s,今年%d岁" 
    data1 = test %(name,age)	
    

    注意:表示百分比时,需要两个%%

  • format

    test = "我是{0},今年{1}岁".format("kti",18)
    test = "我是{},今年{}岁".format("kti",18)	#自动占位
    
    test = "我是{name},今年{age}岁".format(name="kti",age=18)
    
    test = "我是{0},今年{1}岁"
    data1 = test.format("kti",18)
    
  • f

    name = "kit"
    age = 18
    test = f"我是{name},今年{age}岁"
    
    #f的形式可以用于进制转换:
    data1 = f"我今年{18:#b}岁"	#将18转换为二进制
    

独有方法:

  1. 判断字符串是否已xx开始或结束:str.startswith(),str.endswith()

    data1 = "xx123++"
    result1 = data1.startswith("xx")	# result = True
    result2 = data1.endswith("++")		# result = True
    
  2. 判断字符串是否为整数:str.isdecimal()

  3. 去掉字符串两端的空格、换行与制表符,得到一个新字符串:str.strip()。去掉左端或右端:str.lstrip(),str.rstrip()

    #去除指定内容
    data1 = "xx123++"
    result1 = data1.strip("x")	# result = "123++"
    result2 = data1.strip("x+")	# result = "123"
    
  4. 将字符串转为大写或小写:str.upper(),str.lower()

  5. 替换字符串内容:str.replace()

    data1 = "xx123++"
    result1 = data1.replace("+","-")	# result = "xx123--"
    
  6. 切分字符串得到一个列表,或将列表拼接为字符串:str.split()

    data = "xx12,3++,4--,5zz"
    result1 = data.split(',')	# result1 = ['xx12', '3++', '4--', '5zz']
    result2 = data.split(',',1)	# result2 = ['xx12', '3++,4--,5zz']
    #切分2个:
    result3 = data.split(',',2)	# result3 = ['xx12', '3++', '4--,5zz']
    #从右开始切分:data.rsplit()
    result4 = data.rsplit(',',1) #result4 = ['xx12,3++,4--', '5zz']
    
    data1 = ['xx12', '3++', '4--', '5zz']
    result1 = ''.join(data1)	# result1 = "xx123++4--5zz"
    result2 = '='.join(data1)	# result2 = "xx12=3++=4--=5zz"
    
  7. 转换字符串的编码类型:str.encode(“utf-8”)

  8. 字符串居中(左或右):str.center(20,"+"),str.ljust(),str.rjust()

  9. 零填充:str.zfill()

  10. 用前缀r,表示字符串中的所有\都不是转义字符,多用于包含较多\的字符串中(如表示路径)

公共方法:

  1. 得到字符串的长度:len(str)

  2. 获取字符串中的字符,索引:str[1],反向str[-1]。只能取值,不能修改。

  3. 获取字符串的子序列,切片:str[0:2],str[ :3],str[2:-1]。只能取值,不能修改。

  4. 以某一步长取值字符串内容:str[0:7:2]

  5. 循环

    data1 = "xx123++4--5zz"
    for char in data1
    	print(char)
    

3.布尔型(bool):True/False

0与空数据转为布尔型时为False,其他均为True。

4.序列:列表(list)、元组(tuple)与range()

  • 列表(list):用方括号[ ]。
  • 元组(tuple):用圆括号( ),有序,(只读对象)不可变。
  • range(start,stop, step)

序列的通用方法:

  1. 拼接

  2. 长度:len()

  3. 最大项和最小项:max();min()

  4. 索引:x.index()

  5. 切片

    x = [1,2,3,4]
    y = x[1:3]	# y = [2,3]		x从1到3的切片
    z = x[0:4:2]	# z = [1,3]	x从0到4步长为2的切片
    

列表的特有方法:

  1. 追加

    data1 = []
    data1.append("++")	# data1 = ['++']
    #批量追加1
    data2 = [11,22,33]
    for item in data2:
    	data1.append(item)	# data1 = ['++', 11, 22, 33]
    #批量追加2   
    #data1.extend(data2)	# data1 = ['++', 11, 22, 33]
    
  2. 插入

    data1 = [111,222,333]
    data1.insert(0,0)	# data1 = [0,111,222,333]
    data1.insert(5,444)	# data1 = [0, 111, 222, 333, 444]
    
  3. 删除:data_list.remove(“111”),data_listpop(1)

  4. 清空列表:data_listclear()

  5. 根据列表的值获取索引位置:data_list.index(“222”)

  6. 对列表的数据进行排序:data_list.sort(),#从小到大;data_list.sort(revorse=True),#从大到小

5.集合(set)

用花括号{ },无序,可变,数据不可重复。data = set() #构建一个空集合~

集合的元素只能是int、bool、str、tuple(可哈希)。

6.字典(dict)

键不重复,元素只能是键值对的可变容器。

方法:

  1. 获取值

    data = {
        "name":"Kit",
        "age":18
    }
    data1 = data.get("name")	# data1 = 'Kit'
    
  2. 获取所有键:data_dict.keys()

  3. 获取所有值:data_dict.values()

  4. 获取所有键值:data_dict.items()

  5. 设置值:data_dict.setdefault()

  6. 更新键值对:data_dict.update()

  7. 移除指定键值对:data_dict.pop()

3.变量

命名规范:

  • 只能由字母、数字、下划线组成
  • 不能以数字开头
  • 不能用Python内置的关键字

变量命名网站codelf:https://unbug.github.io/codelf

4.注释

单行注释快捷键:ctrl + ?

多行注释为3个引号:“”“ ++++ ”“”

利用TODU,记录下一步的工作

5.输入

data = input()

data1 = input("请输入数据1")
data2 = input("请输入数据2")
print(int(data1)+int(data2))

注意:输入的任何内容都会被认为是字符串类型。

6.条件语句

  • 基本语法
if ***:
	+++
else:
    ---
  • 多条件判断
if 条件A:
	...
elif 条件B:
	...
else:
	...

7.循环语句

  • while循环

    while 条件:
    	...
    	...
    	...
        
    #注意break,continue的使用方法
    #break,中止循环
    #continue,结束本次循环,开始下一次循环
    
  • for迭代

    for item in items:		#items可为任何集合
        
        
    

9.函数

def function1():
  函数体
def fun(*args,**kwargs):
    print(args,kwargs)	# *args:传入不定数量参数。**kwargs:以字典形式传入参数
    
fun(1,2,3,x=4,y=5) # 执行结果为(1, 2, 3) {'x': 4, 'y': 5}
  • lambda定义匿名函数

    f = lambda x: x ** 2
    print(f(2))			# 4
    
  • map:映射

10.类和对象

用函数dir()查看对象的方法和属性。

1.封装

定义一个简单的类

class 类名:					# 类名应遵循大驼峰命名法
	def	方法1(self,参数列表):	   # 第一个参数必须为self
        pass				   # 哪个对象调用的方法,self就是哪个对象的引用
    
    def 方法2(self,参数列表):
        pass
# 使用这个类创建对象
对象变量 = 类名()				  # 自动调用__init__方法

注:可以在类的外部给对象增加属性,但不建议使用这种方法。对象具有的属性应封装在类的内部。用__init__方法来定义一个类具有哪些属性。

class 类名:
    def __init__(self):
        self.属性名 = 属性初始值
        
# 初始化时传入参数
class 类名:
    def __init__(self,参数列表):
        self.属性名1 = 属性参数1
        self.属性名2 = 属性参数2
        self._属性名3 = 666		# 定义私有属性,外部无法访问
        self.__属性名4 = 123		# 防止被子类覆盖,不能在类外调用
     
    def __方法名1(self):			# 定义私有方法,外部无法访问
        print(self.__属性名3)		 # 对象的方法内部可以访问私有属性
								 # 实际上可以用 _类名__方法名1() 访问,不建议
对象1 = 类名(属性1,属性2)

2.继承

子类拥有父类的所有属性和方法。

class 类名(父类名)::
    pass

#多继承
class 类名(父类名1,父类名2,父类名3):
    pass

继承自父类的方法不能满足需求时,可在子类中重写父类的方法。需要保留父类的方法时,可用# super().父类方法名()调用父类方法。

子类对象的方法不能直接访问和调用父类的私有属性和方法,但可以调用父类的共有方法间接访问父类的私有属性或方法。

3.多态

不同的子类对象调用相同的父类方法,产生不同的执行结果。

4.类属性和类方法

使用赋值语句在class关键字下方可以定义类属性

@classmethod	   # 类方法需要用修饰器 @classmethod 来标识
def 类方法名(cls):	# 在方法内部,可以通过 cls. 访问类的属性或调用其他类方法
    pass

5.静态方法

既不需要访问实例属性或调用实例方法,也不需要访问类属性或调用类方法时,可把定义的方法封装为一个静态方法。

不需创建对象就可以通过类名.静态方法名()的方式调用静态方法。

@staticmethod
def 静态方法名():		# 不需传入参数
    pass

11.异常

try:					# 捕获异常
    尝试执行的代码
except:
    出现错误的处理代码
#错误类型捕获
try:					
    pass		#尝试执行的代码
except 错误类型1:
    pass		#针对 错误类型1 的错误处理代码
except (错误类型2,错误类型3):
    pass		#针对 错误类型2 和 错误类型3 的错误处理代码
except Exception as result:			# 捕获未知异常
    print("未知错误 %s" % result)
else:
    pass		# 没有异常才会执行的代码
finally:
    pass		# 无论是否有异常,都会执行的代码

异常的传递:当函数/方法执行出现异常,会将异常传递给函数/方法的调用一方,如果一直传递到主函数仍没有异常处理,程序才会被终止。

建议:利用异常的传递性,在主程序中捕获异常。

主动抛出异常:1. 创建一个Exception对象;2.使用raise关键字抛出异常对象。

12.模块和包(Package)

# 导入模块
# 定义全局变量
# 定义类
# 定义函数

# 代码最下方
def main():
    pass

# 在测试代码时,根据 __name__ 判断是否执行下方代码
if __name__ == '__main__':
    main()
import time					# 全部导入
print(time.time())

from time import ctime		 # 部分导入
# from time import *
print(ctime())			     # 调用时不用加模块名
  • time模块

    time.strftime('%Y-%m-%d %H:%M:%S') 
    

13.文件

操作文件的函数或方法:

file = open("文件名","访问方式")		# 打开
text = file.read()					# 读取
file.close()					    # 关闭

文件访问方式:r,w,a,r+,w+,a+.。常用r(只读),w(只写)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值