找回密码
 会员注册
查看: 19|回复: 0

python笔记(从入门到入土)

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
71625
发表于 2024-9-9 14:00:32 | 显示全部楼层 |阅读模式
本篇用于记录学习的python知识,便于以后速查,不定期更新(●'◡'●)先说好,这个不是给新手看的保姆级教程=====================================================================第一章哈喽派森1,python环境的安装这里windows为例,苹果和linux见视频第一阶段-第一章-04-【拓展】-Python环境安装(MacOS)_哔哩哔哩_bilibili官网下载: WelcometoPython.org安装要点:(部分简单步骤省略)验证安装是否成功:cmd输入命令:python,能看到版本就是成功2,helloworldprint("Helloworld!!!")'运行运行↑引号和括号是英文2.5,可能出现的问题1233,解释器简介进入解释器环境:python退出解释器:exit()'运行运行点py文件↓4,PyCharm开发工具的安装下载地址:JetBrains:Essentialtoolsforsoftwaredevelopersandteamshttps://www.jetbrains.com/下社区版,不要钱记得改一下安装路径打开后,接受协议,不发送新建工程记得勾选一下那个   口creatawelcomescript,不然没有main.py文件,格式会不一样新建之后可能会弹窗问你下不下载,选择always下载新建文件右键工程>new>pythonfile>>命名>回车运行1,右键>run2,顶部菜单栏直接按小三角5,Pycharm的基础使用修改主题颜色:千万别看都不看点错了,不小心把菜单栏点没了你就偷着乐去吧修改字体修改字体快捷键设置设置搜increase这个是增大字体,缩小就搜decrease插件安装在这里搜你需要的插件,汉化搜chinses,翻译搜translation,搜不到的去这搜,PyCharm官方Marketplace链接:JetBrainsMarketplace这里给出汉化直达链接Chinese(Simplified)LanguagePack/中文语言包PluginforJetBrainsIDEs|JetBrainsMarketplace如果你当前已经打开pycharm,他会直接匹配你的版本,没打开就自己找对应的版本,然后install就欧克了常用快捷键★★★ctrl+alt+s:打开软件设置ctrl+d∶复制当前行代码shift+alt+上\下:将当前行代码上移或下移crtl+shift+f10∶运行当前代码文件shift+f6∶重命名文件ctrl+a:全选ctrl+c\v\x︰复制、粘贴、剪切ctrl+f:搜索选中多行+Tab/shift+Tab:多行同时缩进ctrl+/:快速注释alt+shift+鼠标左键拖动选中:选中多行同位置第二章python基础1,字面量含义:代码中,被写下来的固定的值派森中,字符串需要用引号包围起来,被引号包围起来的都是字符串print(666)print(13.14)print("你好")'运行运行2,注释注释的作用:注释是代码中的解释型语句,用来对代码内容进行注解注释不是代码,不会被程序执行单行注释,一般用于解释单行代码或一小段代码#我是单行注释,代码规范一般建议井号后面一个空格print()'运行运行多行注释,一般用于解释-整个python代码文件,类,方法,一般写在开头"""我是多行注释可以换行多行注释一般用于解释-整个python代码文件,类,方法"""print("111")'运行运行3,变量定义:在程序运行时,能储存计算结果或能表示值得抽象概念简单来说就是程序运行时,记录数据用得格式:#定义一个变量,用来记录钱包余额money=50#输出变量print("钱包还有:",money)#买了一个冰激凌,花费10元money=moner-10print("买了一个冰激凌,钱包还有:",money)特征:变量得值可以改变★★print语句输出多个内容中间用(英文)逗号隔开4,数据类型入门常用:#查看类型信息type()也可以查看变量中存储得数据类型★★在派森中,变量是没有类型的所以type(变量)查看的也是变量中存储得数据类型5,数据类型转换用途:从文件中读取的数字,默认是字符串,我们需要转换成数字类型后续学习的input()语句,默认结果是字符串,若需要数字也需要转换将数字转换成字符串用以写出到外部系统等★★这三个语句都是带有返回值的,可以直接输出也可以用变量接★★万物皆可转字符串,反之不行,整数转浮点数会加小数部分,反之会丢失精度(丢失小数部分)6,标识符定义:是用户在编程的时候所使用的一系列的名字,用于给变量、类、方法等命名规则:内容限定:只允许出现,英文,中文(不推荐),数字(不可以用在开头),下划线,这四种元素大小写敏感:能区分大小写不可使用关键字:命名规范:变量名:见名知意(明了,简洁),下划线命名法(多个单词用下划线隔开),英文字母全小写类名:方法名:7,运算符算数(数学)运算符:赋值运算符:复合赋值运算符:8,字符串扩展 字符串的三种定义方式1,单引号定义法:name='你好'2,双引号定义法:name="你好"3,三引号定义法:name="""你好"""★★三引号定义法的写法和多行注释一样,同样支持换行,用变量接收就是字符串,不接就可以作为多行注释使用★★怎么定义引号自身:单引号定义法,可以内含双引号,双引号定义发,可以内含单引号,可以使用转义字符反斜杠\来将引号解除效用,变成普通字符串name="\"你好\"\'"字符串拼接用加号+拼接,一般用于字面量与变量之间,或者变量与变量之间name="张三"age="11"print("你好,"+"我的名字叫"+name+",我今年"+age+"岁。")但是字符串不能直接拼接整数或浮点数#错误示例age=11print("我的年龄是"+age)字符串格式化(多个拼接)目的:既方便拼接,又支持拼接其他类型name="张三"message="你好,我亲爱的%s"%nameprint(message)%s表示:%表示:我要占位s表示:将变量变成字符串放入占位的地方综合意思:我先占个位置,等下有个变量过来,我把它变成字符串放到占位的地方多个拼接:shengao=180tizhong=60message="我的身高是%s,我的体重是%s。"%(shengao,tizhong)print(message)格式要求:多个变量占位,变量要用括号括起来,并且按照占位顺序填入常用占位符👇:#混合使用占位符示例name="张三"age=18weight=69.9message="我的名字叫%s,我的年龄是%d岁,我的体重是%fKG"%(name,age,weight)print(message)格式化的精度控制我们可以使用辅助符号"m.n"来控制数据的宽度和精度m控制宽度,要求是数字(很少使用),若设置的宽度小于数字自身,则不生效.n控制小数点精度,要求是数字,会进行小数的四舍五入例如:字符串格式化方式2语法:f"内容{变量}"name="张三"age=18weight=69.9print(f"我的名字叫{name},我的年龄是{age}岁,我的体重是{weight}")不理会类型,不做精度控制,原样输出对表达式进行格式化表达式定义:一条具有明确执行结果的代码语句例如👇:可以直接格式化表达式👇:★★表达式拼接等同于变量拼接的方法9,数据输入输出数据输出:print()数据输入:input()使用input()语句可以从键盘获取输入,使用一个变量接收(存储)即可★★input可以自带文字提示name=input("请告诉我你是谁")print("吆西,你是%s"%name)★★input()输入的都是字符串类型,可以用数据类型转换变成其他类型★★print()默认是输出换行的,想要不换行↓print("你好",end='')print("你好",end='')★★制表符:\t,效果等同于键盘上按下tap键第三章判断语句1,布尔类型和比较运算符布尔类型布尔类型的字面量:True表示真(是,肯定)False表示假(否,否定)定义变量存储布尔类型数据:    变量名称=布尔类型字面量布尔类型可以自定义,也可以通过计算得来比较运算符2,if语句的基本格式条件成立要做的事可以写很多行↓例子★★注意:判断语句的结果,必须是布尔类型归属于if判断的代码语句块,需在前方填充4个空格缩进 不要忘记冒号3,ifelse组合判断语句★★注意:else后面不需要判断条件,但是别忘记冒号else代码块,也需要四个空格缩进4,if、elif、else语句的组合使用简洁写法↓条件中可以直接写input语句,用一个输入一个★★注意:elif可以写多个判断是互斥且有顺序的,前面的if满足了,后面就不判断了else也可以不写,效果等同于三个独立的if判断四个空格缩进5,判断语句的嵌套关键点:空格缩进控制层级,if、elif、else都可以自由组合6,判断语句综合案例#生成一个随机数importrandomnum=random.randint(1,10)#通过if判断语句进行猜数字a=int(input("请输入你猜的数字:"))ifa==num:print("你猜对了")else:ifa>num:print("你猜大了,还有两次机会")else:print("你猜小了,还有两次机会")a=int(input("请输入你猜的数字:"))ifa==num:print("你猜对了")else:ifa>num:print("你猜大了,还有一次机会")else:print("你猜小了,还有一次机会")a=int(input("请输入你猜的数字:"))ifa==num:print("你猜对了")else:ifa>num:print("你猜大了,你寄了")else:print("你猜小了,你寄了")第四章循环语句1,while循环的基础语法#输出100次你好i=0whileinum:print("你猜的大了")else:print("你猜的小了")print(f"你一共猜了{count}次")3,while循环的嵌套基于空格缩进决定层级关系4,while循环案例(九九乘法表)知识补充,详见第二章第九点,print不换行和制表符#九九乘法表a=1whilea=5:money-=1000print(f"员工{a},绩效{num},发工资1000元,账户余额还剩{money}。")else:print(f"员工{a},绩效{num},低于5分,不发工资。")print("工资发完啦")#先考虑不发工资跳过的话,就加个continue,我这种写法就不用加第五章函数1,函数初识函数:是组织好的,可重复使用的,用来实现特定功能的代码段作用:将功能封装在函数内,可供随时随地重复利用提高程序的复用性,减少重复性代码,提高开发效率2,函数的基础定义语法函数的定义:函数的调用:注意:参数如果不需要,可以省略返回值如果不需要,可以省略函数必须先定义后调用3,函数的传入参数传入参数功能:在函数进行计算的时候,接受外部(调用时)提供的数据4,函数的返回值定义语法返回值:函数在执行完成后,返回给调用者的结果★★遇到return,函数就结束了5,None类型None是类型为"NoneType"的字面量,用于表示空的、无意义的函数如何返回None:不使用return语句,即返回None主动returnNone6,函数的说明文档 函数是纯代码语言,想要理解含义就要一行行阅读理解,效率比较低我们可以给函数添加说明文档,辅助理解函数的作用通过多行注释的形式,对函数进行解释说明,内容应写在函数体之前在Pycharm编写代码时,鼠标悬停就可以查看调用函数的说明文档7,函数的嵌套调用函数A中执行到调用哈函数B的语句,会将B全部执行完之后,再继续执行A8,变量再函数中的作用域变量的作用域指的是,变量的作用范围(变量在哪里可用,在哪里不可用)主要分为:局部变量和全局变量局部变量是定义在函数体内部的变量,即只在函数体内部生效,在外部访问就会出错作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量全局变量指的是在函数体内、外都能生效的变量global关键字:设置内部定义的变量为全局变量9,综合案例(ATM)#ATM案例money=5000000name=Nonedefchaxun(show_header):"""查询余额"""ifshow_header:print("========查询余额=====")print(f"{name}你好,你的当前余额为:{money}元")menu()defcunkuan():print("========存款=====")a=int(input(f"{name}你好,请输入你想存入钱的数目:"))globalmoneymoney=money+aprint(f"{name}你好,你成功存入{a}元")chaxun(False)menu()defqukuan():print("========取款=====")a=int(input(f"{name}你好,请输入你想取出钱的数目:"))globalmoneymoney-=aprint(f"{name}你好,你成功取出{a}元,你的当前余额为:{money}元")menu()defmenu():"""主菜单"""print("========主菜单=====")print(f"{name}你好,欢迎来到ATM")print("1,\t查询余额")print("2,\t存款")print("3,\t取款")print("4,\t退出")a=int(input("请输入你想操作的数字序号:"))ifa==1:chaxun()elifa==2:cunkuan()elifa==3:qukuan()else:print("操作错误,祝您生活愉快,再见")name=input("请输入你的名字")menu()自己写的能跑,但是可能不够好,下面是标准答案"""ATM案例"""#定义全局变量money=5000000name=None#要求客户输入姓名name=input("请输入您的姓名")#定义查询函数defquery(show_header):ifshow_header:print("====查询余额====")print(f"{name}您好,您的余额剩余:{money}元")#定义存款函数defsaving(num):globalmoneymoney+=numprint("====存款====")print(f"{name}您好,您存款{money}元成功")query(False)#定义取款函数defget_money(num):globalmoneymoney-=numprint("====取款====")print(f"{name}您好,您取款{money}元成功")query(False)#定义主菜单函数defmain():print("====主菜单====")print(f"{name}您好,欢迎来到ATM")print("查询余额\t\t【输入1】")print("存款\t\t【输入2】")print("取款\t\t【输入3】")print("退出\t\t【输入4】")returninput("请输入你的操作:")#设置无限循环,确保程序不退出whileTrue:keyboard_input=main()ifkeyboard_input=="1":query(True)continueelifkeyboard_input=="2":num=int(input("请输入您想存入的钱:"))saving(num)continueelifkeyboard_input=="3":num=int(input("请输入您想取出的钱:"))saving(num)continueelse:print("程序退出")break第六章数据容器1,数据容器入门2,数据容器:列表2.1,列表的定义:★★注意:列表可以一次存储多个数据,且可以为不同的数据类型,支持嵌套 2.2,列表的下标索引定义:列表的每一个元素,都有编号,称之为下标索引正向:反向:嵌套:[0][1]注意:超出下标索引的范围,无法取出元素,会报错2.3,列表的常用操作(方法)1,列表的操作方法插入元素删除元素清空列表修改元素统计元素个数2,方法的概念3,查找某元素的下标功能:查找指定元素在列表的下标,如果找不到,报错ValueError语法:列表名.index(元素名)index就是列表对象(变量)内置的方法(函数)namelist=["张三","李四","王五"]a=namelist.index("张三")print(f"张三在列表中的下标索引值是:{a}")4,列表的修改功能(方法)4.1修改指定位置(索引)的元素值语法:列表[下标]=值可以使用如上语法,直接对指定下标(正向反向下标均可)的值进行:重新赋值(修改)4.2插入元素语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素4.3追加元素语法:列表.append(元素),将指定元素,追加到列表的尾部4.4追加元素方法2语法:列表.extend(其他数据容器),将其他数据容器的内容取出,依次追加到列表尾部4.5删除元素语法1:del列表[下标]语法2:列表.pop[下标]4.6删除某元素在列表中的第一个匹配项语法:列表.remove(元素)4.7清空列表内容语法:列表.clear()4.8统计某元素在列表中的数量语法:列表.count(元素)4.9统计列表内有多少元素语法:len.(列表)4.10,列表的方法总结(速查)★★★列表的特点:可容纳多个元素(上限为2**63-1、922337203685477580个)可容纳不同类型的元素(混装)数据是有序存储的(有下标序号)允许重复数据存在可以修改(增删)2.4,列表练习案例#列表案例age_list=[21,25,21,23,22,20]age_list.append(31)age_list.extend([29,33,30])a=age_list[0]b=age_list[-1]c=age_list.index(31)print(c)3,list(列表)的遍历将容器内的元素依次取出进行处理的行为,称之为:遍历、迭代3.1,while循环 3.2,for循环3.3,对比while循环和for循环,都是循环语句,但细节不同:在循环控制上:while循环可以自定循环条件,并自行控制for如循环不可以自定循环条件,只可以一个个从容器内取出数据在无限循环上:while循环可以通过条件控制做到无限循环for循环理论上不可以,因为被遍历的容器容量不是无限的在使用场景上:while循环适用于任何想要循环的场景for循环适用于,遍历数据容器的场景或简单的固定次数的循环场景3.4,案例:num_list=[0,1,2,3,4,5,6,7,8,9,10]list1=[]list2=[]a=0whilea
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-10 06:02 , Processed in 0.813284 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表