|
第一节:Python快速入门编程基础-1文章目录第一节:Python快速入门编程基础-1课程目标课程内容1.Python简介2.环境搭建3.输入输出4.变量和数据类型5.注释6.列表和元组7.字典附录机器码字节码字符串操作列表操作字典操作conda设置修改镜像Python环境操作创建新环境激活环境修改环境管理环境内置方法课程目标理解Python的基本语法学习变量和基本数据类型掌握简单的输入输出操作高级数据结构课程内容1.Python简介Python是什么?Python是一种高级编程语言,由GuidovanRossum于1989年发明。Python以其清晰的语法和代码可读性而著称,非常适合初学者。为什么选择Python?易于学习强大的库支持广泛的应用领域(如数据分析、人工智能、网站开发等)2.环境搭建安装Python访问Python官网,下载并安装适合你操作系统的Python版本。修改清华镜像源pipconfigsetglobal.index-urlhttps://mirrors.aliyun.com/pypi/simple/安装代码编辑器推荐使用VisualStudioCode或PyCharm。3.输入输出输入使用input()函数获取用户输入。name=input("请输入你的名字:")print("你好,"+name)12输出使用print()函数输出内容。print("Hello,world!")14.变量和数据类型变量变量是一个存储数据值的容器,它可以在程序中被使用和修改。定义变量:name="子衿"基本数据类型整数:int,如5,-3浮点数:float,如3.14,-0.001字符串:str,如"Hello,world!",'Python'布尔值:bool,如True,False5.注释单行注释:#这是一个注释多行注释:"""这是一个多行注释"""6.列表和元组列表可变序列,可以添加、删除或更改元素。示例:numbers=[1,2,3,4,5]numbers.append(6)#添加元素print(numbers)123元组不可变序列,一旦创建就不能更改。示例:point=(10,20)print(point)127.字典创建字典使用花括号{}创建字典。示例:person={"name":"失速引擎","age":30}1访问字典元素使用键访问字典中的元素。示例:print(person["name"])1附录机器码汇编指令描述机器码(示例,x86架构)MOVEAX,1将立即数1移动到寄存器EAXB801000000ADDEAX,EBX将EBX寄存器的值加到EAX寄存器01D8SUBEAX,EBX将EBX寄存器的值从EAX寄存器减去29C0PUSHEAX将EAX寄存器的值压入堆栈50POPEBX从堆栈中弹出值到EBX寄存器5BJMPlabel无条件跳转到标签labelE9XXXXXXXXJElabel如果上一个条件为真(ZF=1),则跳转到标签label0F84XXXXXXXXCALLfunction调用函数functionE8XXXXXXXXRET从函数返回,将控制权返回给调用者C3INT0x80调用操作系统中断处理程序(Linux系统调用)CD80字节码指令操作码说明LOAD_CONST100从常量池中加载常量LOAD_GLOBAL116从全局命名空间中加载名称STORE_FAST125将值存储到局部变量POP_TOP1弹出栈顶元素ROT_TWO23交换栈顶两个元素ROT_THREE24交换栈顶三个元素DUP_TOP25复制栈顶元素UNARY_POSITIVE10单目正号操作符UNARY_NEGATIVE11单目负号操作符UNARY_NOT12逻辑非操作BINARY_POWER19幂运算BINARY_MULTIPLY20乘法BINARY_TRUE_DIVIDE21真除法INPLACE_MULTIPLY26原地乘法GET_ITER68获取迭代器FOR_ITER93进行循环迭代CALL_FUNCTION64调用函数MAKE_FUNCTION83创建函数BUILD_SLICE90构建切片EXTENDED_ARG144扩展参数,用于处理大于255的参数数RAISE_VARARGS144引发异常RETURN_VALUE83从函数返回值JUMP_FORWARD110无条件跳转JUMP_IF_TRUE_OR_POP92如果条件为真,则跳转,否则弹出栈顶元素JUMP_IF_FALSE_OR_POP93如果条件为假,则跳转,否则弹出栈顶元素字符串操作方法/属性说明示例str.lower()将字符串转换为小写"HELLO".lower()返回"hello"str.upper()将字符串转换为大写"hello".upper()返回"HELLO"str.capitalize()将字符串的首字母大写"hello".capitalize()返回"Hello"str.title()将每个单词的首字母大写"helloworld".title()返回"HelloWorld"str.strip()移除字符串首尾的空白字符"hello".strip()返回"hello"str.lstrip()移除字符串左侧的空白字符"hello".lstrip()返回"hello"str.rstrip()移除字符串右侧的空白字符"hello".rstrip()返回"hello"str.find(sub)查找子字符串,返回子字符串的最低索引"hello".find("lo")返回3str.rfind(sub)从右侧开始查找子字符串,返回子字符串的最高索引"hello".rfind("l")返回2str.replace(old,new)替换字符串中的子字符串"hello".replace("l","x")返回"hexxo"str.split(sep)以指定分隔符分割字符串"helloworld".split()返回["hello","world"]str.join(iterable)将序列中的元素以指定的字符串连接生成一个新的字符串"".join(["hello","world"])返回"helloworld"str.startswith(prefix)检查字符串是否以指定前缀开始"hello".startswith("he")返回Truestr.endswith(suffix)检查字符串是否以指定后缀结束"hello".endswith("lo")返回Truestr.isalpha()检查字符串是否只包含字母"hello".isalpha()返回Truestr.isdigit()检查字符串是否只包含数字"123".isdigit()返回Truestr.isalnum()检查字符串是否只包含字母和数字"hello123".isalnum()返回Truestr.islower()检查字符串是否全部为小写"hello".islower()返回Truestr.isupper()检查字符串是否全部为大写"HELLO".isupper()返回Truestr.istitle()检查字符串是否符合格式"HelloWorld".istitle()返回Truestr.len()获取字符串长度len("hello")返回5str.count(sub)计算子字符串出现的次数"hello".count("l")返回2str.format(*args,**kwargs)格式化字符串"{}is{}".format("hello","world")返回"helloisworld"列表操作操作说明示例代码append(x)在列表末尾添加一个元素xlst.append(1)extend(iterable)将一个可迭代对象(如另一个列表)的所有元素添加到列表末尾lst.extend([2,3])insert(i,x)在指定位置i插入一个元素xlst.insert(0,0)remove(x)移除列表中第一个值为x的元素lst.remove(1)pop([i])移除列表中指定位置i的元素,并返回该元素。如果不指定位置,默认移除并返回列表中的最后一个元素lst.pop()或lst.pop(0)clear()清空列表中的所有元素lst.clear()index(x[,start[,end]])返回列表中第一个值为x的元素的索引,可以指定搜索的起始和结束位置lst.index(2)或lst.index(2,1,5)count(x)返回x在列表中出现的次数lst.count(2)sort(key=None,reverse=False)对列表中的元素进行排序lst.sort()或lst.sort(reverse=True)reverse()反转列表中的元素顺序lst.reverse()copy()返回列表的浅拷贝new_lst=lst.copy()len(lst)返回列表长度length=len(lst)min(lst)返回列表中的最小值min_value=min(lst)max(lst)返回列表中的最大值max_value=max(lst)sum(lst)返回列表中所有元素的和total=sum(lst)字典操作操作说明示例代码创建字典创建一个空字典或带有初始键值对的字典my_dict={}或my_dict={"name":"Alice","age":25}添加元素向字典中添加新的键值对my_dict["gender"]="female"删除元素根据键删除字典中的元素delmy_dict["age"]更新元素更新字典中已存在的键的值my_dict["age"]=26访问元素通过键访问字典中的值name=my_dict["name"]检查键存在检查键是否存在于字典中if"name"inmy_dict:获取所有键获取字典中所有的键keys=my_dict.keys()获取所有值获取字典中所有的值values=my_dict.values()获取所有键值对获取字典中的所有键值对items=my_dict.items()清空字典清空字典中的所有元素my_dict.clear()复制字典创建字典的浅拷贝或深拷贝copy=my_dict.copy()或deep_copy=deepcopy(my_dict)字典推导式使用推导式创建字典{key:key*2forkeyinmy_dict}合并字典将两个或多个字典合并为一个{**dict1,**dict2}遍历字典遍历字典中的键、值或键值对forkey,valueinmy_dict.items():conda设置修改镜像清除旧镜像condaclean--all添加清华镜像condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main设置Conda在搜索和安装包时显示每个包的具体来源URLcondaconfig--setshow_channel_urlsyesPython环境操作创建新环境创建环境:使用condacreate命令来创建一个新的环境。你可以指定Python版本和其他包作为依赖项。condacreate--namemyenvpython=3.101这里myenv是新环境的名称,python=3.10指定了Python的版本。创建环境并安装包:你可以在创建环境时同时安装其他包。condacreate--namemyenvpython=3.10numpypandas1激活环境在创建环境后,你需要激活它才能开始使用。condaactivatemyenv1修改环境安装新包:在激活的环境中,你可以安装新的包。condainstallnumpy1更新包:更新环境中的包到最新版本。condaupdatenumpy1卸载包:从环境中移除一个包。condaremovenumpy1列出环境中的包:查看当前环境中安装的所有包。condalist1管理环境列出所有环境:查看系统中所有Conda环境。condaenvlist1导出环境:导出环境的配置,可以用于分享或在其他机器上重建相同的环境。condaenvexport>environment.yml1从YAML文件创建环境:使用之前导出的YAML文件创建一个新的环境。condaenvcreate-fenvironment.yml1删除环境:删除一个不再需要的环境。condaenvremove--namemyenv1更新环境中的所有包:更新环境中所有包到最新版本。condaupdate--all1查看环境变量:查看当前环境的环境变量。condainfo--envs1设置环境变量:在激活的环境中,可以通过以下命令设置环境变量:condaenvconfigvarssetVARIABLE_NAME=VALUE1修改环境名称:如果你需要修改环境的名称,可以使用以下命令:condarename--nameold_namenew_name1内置方法方法名描述示例abs()返回数的绝对值abs(-10)返回10all()判断可迭代对象是否全部为真值all([1,2,3,0])返回Falseany()判断可迭代对象是否至少有一个真值any([0,0,4])返回Truebin()将整数转换为二进制字符串bin(10)返回'0b1010'bool()将值转换为布尔类型bool(0)返回Falsebytearray()创建字节数组bytearray(b'byte')bytes()创建不可变字节对象bytes(b'byte')callable()判断对象是否是可调用的callable(len)返回Truechr()将整数转换为对应的ASCII字符chr(65)返回'A'classmethod()装饰器,将方法变为类方法@classmethoddefmy_method(cls):compile()编译源代码为代码或字节码对象compile('print("Hello")','file.py','exec')complex()创建一个复数complex(1,2)返回(1+2j)delattr()删除对象的属性delattr(obj,'x')dict()创建字典dict(key='value')dir()返回对象的属性和方法列表dir(obj)divmod()除法和取模运算divmod(10,3)返回(3,1)enumerate()将可迭代对象组合为枚举对象fori,vinenumerate(['a','b']):eval()计算字符串中的有效Python表达式eval('1+2')返回3exec()执行字符串中的Python语句exec('x=5')filter()使用函数过滤序列filter(lambdax:x>1,[1,2,3])返回[2,3]float()将值转换为浮点数float(3)返回3.0format()格式化字符串'{}{}'.format('Hello','World')返回'HelloWorld'frozenset()创建不可变集合frozenset([1,2])getattr()获取对象的属性值getattr(obj,'x')globals()返回当前全局符号表的字典globals()hasattr()判断对象是否有指定的属性hasattr(obj,'x')hash()返回对象的哈希值hash('hello')help()显示对象的帮助文档help(list)hex()将整数转换为十六进制字符串hex(255)返回'0xff'id()返回对象的内存地址id(obj)input()从标准输入读取一行字符串input('Entersomething:')int()将值转换为整数int('123')返回123isinstance()判断对象是否是类的实例isinstance(42,int)返回Trueissubclass()判断一个类是否是另一个类的子类issubclass(int,float)返回Falseiter()返回对象的迭代器iter([1,2,3])len()返回容器的长度len([1,2,3])返回3list()将可迭代对象转换为列表list('hello')返回['h','e','l','l','o']locals()返回当前局部符号表的字典locals()map()将函数应用于可迭代对象的每个元素map(lambdax:x*2,[1,2,3])返回[2,4,6]max()返回可迭代对象中的最大值max(1,2,3)返回3min()返回可迭代对象中的最小值min(1,2,3)返回1next()从迭代器获取下一个元素next(iter([1,2,3]))返回1object()创建一个新对象obj=object()oct()将整数转换为八进制字符串oct(10)返回'012'open()打开文件并返回文件对象open('file.txt','r')ord()将单个字符转换为它的ASCII码ord('A')返回65pow()幂运算pow(2,3)返回8print()打印对象到标准输出print('HelloWorld')range()创建一个整数范围range(0,5)返回range(0,5)repr()获取对象的字符串表示repr([1,2,3])返回'[1,2,3]'reversed()反转可迭代对象reversed([1,2,3])返回reversed([1,2,3])round()四舍五入到指定的小数位数round(3.14159,2)返回3.14set()创建集合set([1,2,2])返回{1,2}setattr()设置对象的属性值setattr(obj,'x',42)slice()创建切片对象slice(1,10,2)sorted()对可迭代对象进行排序sorted([3,1,2])返回[1,2,3]staticmethod()装饰器,将方法变为静态方法@staticmethoddefmy_method():str()将对象转换为字符串str(42)返回'42'sum()对可迭代对象中的元素求和sum([1,2,3])返回6super()返回对父对象的引用super().method()tuple()将可迭代对象转换为元组tuple([1,2,3])返回(1,2,3)type()获取对象的类型或创建新的类型type('str')返回vars()返回对象的__dict__属性vars(obj)zip()将多个可迭代对象中对应的元素打包成一个个元组zip([1,2],['a','b'])返回[(1,'a'),(2,'b')]
|
|