python是一门编程语言,那什么是编程?为什么要编程?什么又是编程语言?
#人类因为本性的懒惰、或为了发展经济,或是为了解放劳动力、降低成本等等,需要控制(奴役)计算机让其帮忙干活。而计算机的发明,是为了用机器取代/解放人力,而编程的目的则是将人类的思想流程按照某种能够被计算机识别的表达方式传递给计算机,从而达到让计算机能够像人脑/电脑一样自动执行的效果。
#编就是编写,就像我们通过嘴跟别人说话,编写就是通过键盘等交互方式跟计算机沟通,程就是程序,就像我们跟别人说过的一段话(用来沟通感情、请求帮助等),程序就是一套有规范格式,储存在计算机里用于跟计算机硬件沟通让其帮我们做某件事情的指令合辑(文件)。
#编程就是将我们的思维逻辑、思维方式,转化程计算机能理解的一段话,就是编写让计算机执行的指令。程序员根据需求把自己的思想流程按照某种编程语言的语法风格编写下来,产出的结果就是包含一堆字符的文件。
#强调:程序在未运行前跟普通文件无异,只有程序在运行时,文件内所写的字符才有特定的语法意义
#就像跟中国人沟通我们需要汉语,跟英国人沟通我们需要英语,看日本电影的时候需要懂日语,编程语言就像汉语、英语、日语一样,它是人与计算机沟通交流的一种媒介,是让计算机理解我们~帮我们做事的,一套规范的、有着一定格式的沟通交流方式的合辑。
#能够被计算机所识别的表达方式即编程语言,语言是沟通的介质,而编程语言是程序员与计算机沟通的介质。在编程的世界里,计算机更像是人的奴隶,人类编程的目的就命令奴隶去工作。
所以我有话对大家说
Python是语言,而学习语言的套路都是一样的,以英语学习为例,你需要学单词,然后学语法,最后写作文。
此时你心里应该有数了,学Python其实很简单,全都是在记忆一些固定的套路而已,那为何有的人会觉得Python难呢?来看一个普遍的问题,问题中包含答案。。。。。。
经常有学生问:老师,我上课都能听得懂,为啥我就是不会写程序。
你学完了英语的单词、语法、还有写作文的方式,你能立刻写出一篇优美的作文吗?当然不能,那么问题出在哪里呢?
你想想,你现在用汉语跟我沟通,脑子里会不会分神去琢磨某个汉字的意思,汉语的语法应该怎样?你当然不会,你脑子里想到什么,就会很自然地将它表达出来,因为你已经足够熟练,汉语的文字、单词、语法等已经深深地植入了你的意识里。学英语,学Python都是一样的道理,你以为你会了,你可能确实会了,但你远没有达到烂熟于心的地步,因此你在写程序的时候需要考虑的是关键字的用法、语法结构,而我则只需要考虑我脑子里的逻辑如何安排,逻辑走通了程序自然就表达出来了,我完全不会考虑关键字或语法什么的,它就像是我的器官一样,我不会在想吃饭的时候考虑应该用锭眼吃还是用嘴吃,这就是你跟我的差别。
那有何好的解决方法呢?答:没有。不下狠心翻来覆去练习,知识是无法根植于你的潜意识的,你也永远无法自己写程序,就跟当年郭靖学降龙十八掌一样,洪七公要他打200下,他能打1000下,屌丝到不能再屌丝的你,没有这点意志力,就别妄想咸鱼翻身了。。。。。。
附一句:我不知道成功有没有捷径,但我确定学Python没有,没有几万行代码的洗礼,你不可能成为一名优秀的程序员,这就是我想对你说的。
编程的语言的发展经历了
#机器语言:站在计算机(奴隶)的角度,说计算机能听懂的语言(计算机只能识别高电平和低电平),那就是直接用二进制编程(1,0),直接操作硬件;
#汇编语言:站在计算机(奴隶)的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作硬件;
#高级语言:站在人(奴隶主)的角度,说人话,即用人类的字符去编写程序,屏蔽硬件的操作(间接操作硬件)。
高级语言更贴近人类语言,因而造成了:它必须被翻译成计算机能读懂二进制后,才能被执行,按照翻译方式分为
我们现在知道了Python是一门解释型语言,代码想运行,必须通过解释器执行,Python的解释器本身也可以看作是个程序(翻译官司是哪国人不重要),这个程序是什么语言开发的呢? 答案是好几种语言? what? 因为Python有好几种解释器,分别基于不同语言开发,每个解释器特点不同,但都能正常运行我们的Python代码,下面分别来看下:
当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
Python目前已支持所有主流操作系统,在Linux,Unix,Mac系统上自带Python环境,在Windows系统上需要安装一下,超简单
#进入解释器的交互式模式:调试方便,无法永久保存代码
#脚本文件的方式(使用nodpad++演示):永久保存代码
强调:python解释器执行程序是解释执行,即打开文件读内容,因此文件的后缀名没有硬性限制,但通常定义为.py结尾
#变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态。
#程序执行的本质就是一系列状态的变化,变是程序执行的直接体现,所以我们需要有一种机制能够反映或者说是保存下来程序执行时状态以及状态的变化。
英雄的等级为1,打怪升级(变)为10
僵尸的存活状态True,被植物打死了,于是变为False
人的名字为egon,也可以修改为Egon
如何定义变量?(图解)
1 #变量名(相当于门牌号,指向值所在的空间),等号,变量值
#1. 变量名只能是 字母、数字或下划线的任意组合
#2. 变量名的第一个字符不能是数字
定义变量名不好的方式
#1. 变量名为中文、拼音
#3. 变量名词不达意
变量的修改与内存管理(引用计数与垃圾回收机制)
常量即指不变的量,如pai 3...., 或在程序运行过程中不会改变的量
举例,假如老男孩老师的年龄会变,那这就是个变量,但在一些情况下,他的年龄不会变了,那就是常量。在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量
#ps:在c语言中有专门的常量定义语法,const int count = 60;一旦定义为常量,更改即会报错
#人跟计算机交流所使用的一段话(程序、文件),当我们去银行ATM机取钱的时候,我们需要输入账户、密码,这个就是用户与程序的交互。
为什么需要交互程序?
#群众的力量是强大的,人之所以成为人,首先是会合作,然后是使用工具,最后合作使用工具,通过交互程序,人能通过计算机的自动化程序、通过计算机网络通过跟更多的人合作完成一个人完全无法实现的工作。
#通过用自己熟悉的语言(汉语大白话),在程序中对某些代码(Python语法语言)进行标注说明,从而让自己更好的理解这段代码,进而大大增强程序的可读性。
2、为什么要使用注释?
#2.1 当我们投入一家新公司从事编程工作,如果别人不注释,你很有可能不知道这段代码是什么意思;
#2.2 方便自己查看和理解过去写的代码;
#2.3 互联网人才流动大,一个项目多是由几个甚至几十个开发人员一起做,你要调用别人写的代码,别人也要用你的,如果代码不加注释,你自己都看不懂,更别说别人了,公司为了项目能更好维护,需要适当写注释,以方便工作的交接。
#代码注释分单行和多行注释, 单行注释用#,
4、还可以用三对双引号""" """
#1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可
#2. 注释可以用中文或英文,但不要用拼音
9.0 什么是数据?为何要有多种类型的数据?
#数据本质就是把事物通过量化的方式表现出来,事物是多种多样的,所以需要通过他们包含的相同特征进行分类,从而方便人们的辨识和统计。 #数据即变量的值,如age=18,18则是我们保存的数据。 #变量的是用来反映/保持状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识
什么是数据?为何要有多种类型的数据?
其他数据类型(了解部分)
#在python中,加了引号的字符就是字符串类型,python并没有字符类型。 用于标识:描述性的内容,如姓名,性别,国籍,种族
#在python中,加了引号的字符就是字符串类型,python并没有字符类型。
用于标识:描述性的内容,如姓名,性别,国籍,种族
#那单引号、双引号、多引号有什么区别呢? 让我大声告诉你,单双引号木有任何区别,只有下面这种情况 你需要考虑单双的配合
#多引号什么作用呢?作用就是多行字符串必须用多引号
单引号,双引号,三引号的区别
#数字可以进行加减乘除等运算,字符串呢?让我大声告诉你,也能?what ?是的,但只能进行"相加"和"相乘"运算。
字符串拼接(只能在字符串之间进行,且只能相加或相乘)
#在[]内用逗号分隔,可以存放n个任意类型的值
用于标识:存储多个值的情况,比如一个人有多个爱好
列表嵌套、取值
#存放多个学生的信息:姓名,年龄,爱好
#在{}内用逗号分隔,可以存放多个key:value的值,value可以是任意类型
用于标识:存储多个值的情况,每个值都有唯一一个对应的key,可以更为方便高效地取值
布尔类型的重点知识!!!:
#所有数据类型都自带布尔值
1、None,0,空(空字符串,空列表,空字典等)三种情况下布尔值为False
#1.可变类型:在id不变的情况下,value可以变,则称为可变类型,如列表,字典
#2. 不可变类型:value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)
程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式
比如要求用户输入用户名和年龄,然后打印如下格式:
很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接。
这就用到了占位符,如:%s、%d
#%s字符串占位符:可以接收字符串,也可接收数字 #%d数字占位符:只能接收数字 #接收用户输入,打印成指定格式
练习:用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式
既然我们编程的目的是为了控制计算机能够像人脑一样工作,那么人脑能做什么,就需要程序中有相应的机制去模拟。人脑无非是数学运算和逻辑运算,对于数学运算在上一节我们已经说过了。对于逻辑运算,即人根据外部条件的变化而做出不同的反映,比如
1 如果:女人的年龄>30岁,那么:叫阿姨
2 如果:女人的年龄>30岁,那么:叫阿姨,否则:叫小姐
3 如果:女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨
1 #在表白的基础上继续:
2 #如果表白成功,那么:在一起
3 #否则:打印。。。
练习二:根据用户输入内容输出其权限
#上节课我们已经学会用if .. else 来猜年龄的游戏啦,但是只能猜一次就中的机率太小了,如果我想给玩家3次机会呢?就是程序启动后,玩家最多可以试3次,这个怎么弄呢?你总不会想着把代码复制3次吧。。。。
#即使是小白的你,也觉得的太low了是不是,以后要修改功能还得修改3次,因此记住,写重复的代码是程序员最不耻的行为。
那么如何做到不用写重复代码又能让程序重复一段代码多次呢? 循环语句就派上用场啦
2 条件循环:while,语法如下
4 循环嵌套与tag
#break用于退出本层循环
#continue用于退出本次循环,继续下一次循环
#与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句,while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句
#如果执行过程中被break啦,就不会执行else的语句啦
1 迭代式循环:for,语法如下
1 为何要用IDE
注册完成后启动,会让你先创建一个项目,其实就是一个文件夹,我们以后的代码都存在这里面
你以后写的项目可能有成百上千个代码文件 ,全放在一起可不好,所以一般把同样功能的代码放在一个目录,我们现在以天为单位,为每天的学习创建一个目录day1,day2,day3...这样
2 作业:编写登陆接口
学而时习之,不亦说乎!
python是一门语言,要经常练习,希望我整理出来的这些题目对初学者或者经常不用python的你有所帮助。
2,手动输入一个字符串,打散放进一个列表,小写字母从大到小排列序,大写字母保持不变
7.求1~100间所有偶数的和(亦可奇数和,分别使用for,while循环写)
8.从键盘接收一百分制成绩(0~100),要求输出其对应的成绩等级A~E。
9.输入一年份,判断该年份是否是闰年并输出结果。(该程序可以重复使用 使用while True)
# 注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。
11.求100以内不能被3整除的所有数,并把这些数字放在列表sum3=[]里,并求出这些数字的总和和平均数。
12.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?
13.猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;
小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!
14、实现一个整数加法计算器
15.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,
失败时允许重复输入三次 ###
1).房子有户型,总面积和家具名称列表
2).家具有名字和占地面积,其中
3).将以上三件家具添加到房子中
4).打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表
21、M与N的数学运算:用户输入两个数 M 和 N,其中 N 是整数,计算M 和 N 的5种数学运算结果,
并依次输出,结果间用空格分隔。5种数学运算分别是:M 与 N 的和、M 与 N 的乘积、
M 的 N 次幂、M除 N 的余数、M 和 N 中较大的值。
22、将输入的字符串垂直输出
23、计算2的n次方,n由用户输入
24、成绩转换:编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于
60的输出“pass”,否则输出“fail”,成绩不四舍五入。
编写一个程序,对于任意给定的正整数N(N ≤100),寻找所有的四元组(a,b,c,d),
26、货币转换:写一个程序进行货币间币值转换,其中:人民币和美元间汇率固定为:1美元 = 6.78人民币。
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,
符号和数值之间没有空格。
28、恺撒密码:凯撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中
的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,假设用户可能使用的输入仅包含
小写字母a~z和空格,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中空格不用进行加密处理。
29、3位水仙花数计算:“3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,并输出结果。
30、购物车 功能要求:
要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
2,手动输入一个字符串,打散放进一个列表,小写字母从大到小排列序,大写字母保持不变
7.求1~100间所有偶数的和(亦可奇数和,分别使用for,while循环写)
9.输入一年份,判断该年份是否是闰年并输出结果。(该程序可以重复使用 使用while True)
注:凡符合下面两个条件之一的年份是闰年。 (1) 能被4整除但不能被100整除。 (2) 能被400整除。
11.求100以内不能被3整除的所有数,并把这些数字放在列表sum3=[]里,并求出这些数字的总和和平均数
12.假设一年期定期利率为3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?
13.猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;
小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜!你猜中了!
#随机设置一个数,比如7 print("输入错误,请重新输入")
14、实现一个整数加法计算器
15.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,
失败时允许重复输入三次 ###
1).房子有户型,总面积和家具名称列表
2).家具有名字和占地面积,其中
3).将以上三件家具添加到房子中
4).打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表
21、M与N的数学运算:用户输入两个数 M 和 N,其中 N 是整数,计算M 和 N 的5种数学运算结果,
并依次输出,结果间用空格分隔。5种数学运算分别是:M 与 N 的和、M 与 N 的乘积、
M 的 N 次幂、M除 N 的余数、M 和 N 中较大的值
22、将输入的字符串垂直输出
23、计算2的n次方,n由用户输入
24、成绩转换:编写一个学生成绩转换程序,用户输入百分制的学生成绩,成绩大于或等于
60的输出“pass”,否则输出“fail”,成绩不四舍五入。
编写一个程序,对于任意给定的正整数N(N ≤100),寻找所有的四元组(a,b,c,d),
26、货币转换:写一个程序进行货币间币值转换,其中:人民币和美元间汇率固定为:1美元 = 6.78人民币。
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,
符号和数值之间没有空格。
28、恺撒密码:凯撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中
的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,假设用户可能使用的输入仅包含
小写字母a~z和空格,请编写一个程序,对输入字符串进行凯撒密码加密,直接输出结果,其中空格不用进行加密处理。
29、3位水仙花数计算:“3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,并输出结果。
30、购物车 功能要求:
要求用户输入总资产,例如:2000 显示商品列表,让用户根据序号选择商品,加入购物车 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
希望这些对您有帮助,有问题可留言
随意的存到一个文件中、数据格式也是千差万别的完全取决于我们自己
限制了存储数据的具体位置
假设上述是一个单机游戏
那么每个人的游戏记录只会在自己的计算机上面保存
注册登录的账号也只能在自己的计算机上有效
下载5.6版本即可,如果你下载了其他版本问题也不大,因为sql语句是一样的学
按照教学方式下载,会将服务端和客户端一并下载到本地
为了学习方便我们将服务端和客户端都在本地启动,后期到了公司服务端会专门跑在一台服务器上,所有人基于网络连接服务端操作
先切换到mysqld所在的bin目录下,然后输入mysqld即可
保留原来的cmd窗口重新打开一个
还是繁琐 需要起两个cmd窗口 不好
将mysql服务端制作成系统服务(开机自启动)
出去玩了好几个月,回来返现密码忘了,死活进不去
mysql默认的配置文件
PS:大部分程序的业务逻辑其实都是增删改查
针对库的增删改查(文件夹)
针对表的增删改查(文件)
针对数据的增删改查(一行行数据)