说在前面:因为大学计算机课作业要写就看了一下,自己本来也对python很感兴趣,无奈时间紧只能迅速入个门,都是一些最基础的东西(语法啊什么的),以后肯定是要深入的学下去的。
一、配置环境
本来就已经配置好环境了,就不再重复操作了(毕竟这只是我的学习笔记,不是教程哈哈)。
二、基本语法与程序
2.1——变量与数据类型 2.1.1 变量 没什么好说的跟C语言一样,有一点点不同的是python中变量不用声明就可以使用。字符变量的话记得打 " " 不然会报错(日常踩坑)。
2.1.2 变量的命名规则 跟C语言一样 (1)只能由大小写英文字母、’ _ ’ 和数字组成。(其实也可以用中文但是极力不推荐) (2)变量名第一个必须是大小写英文字母或者下划线 ’ _ '。 (3)英文大小写区分。 (4)变量名不能与关键字重复。
2.1.3 python的数值类型、布尔与字符串数据类型 数值类型:分为整型和浮点型(跟C语言差别不大) 布尔类型:只有两个值 True 和 False (注意 T 和 F 都是大写),一般用于条件运算中。 字符串类型:用单引号 ’ ’ 或双引号 " " 包起来的变量(注意:如果字符串需要包含引号本身,可用另一种引号包起来,如 str = ’ " 你好! " '。如果字符串中需要包含特殊字符,可以在字符串中使用逃逸字符(逃逸字符自己看逃逸字符表))
2.1.4 print 及 type 命令的使用 print用来输出指定对象的内容,语法为: print (对象1,对象2…,sep = 分隔字符,end = 终止符) 1、print命令一次可以打印多个对象数据,对象之间以 “,”分开。 2、sep:分隔符,默认为一个空格符,可自己设置。 3、end:终止符,默认为换行符(“/n”),可自己设置。 此外print命令支持格式化功能,跟C语言一样 “%d” 代表整数, “%f" 代表浮点数, ”%s" 代表字符串,不一样的是在python不需要用逗号( ,)分隔打印内容和变量,应用的%,而且当有多个变量需要对应前边的占位符是只要写一次%然后用括号括起后面的一堆变量,变量之间用逗号分隔就完事了。 例如
name = "Amy"
score = 80
print("%s"的成绩是"%d"分"%(name,score))
还有另一种方法就是用字符串的format对字符串的输出进行格式化,用一对{}来代替上面的占位符就ok。
如果不知变量的类型就可以用type(对象)取得对象的数据类型。
2.1.5数据类型的转换 变量的数据类型非常重要,因为通常情况下只有相同类型的变量才能进行运算’ python提供了简单的数据类型自动转换功能:整型与浮点型运算自动将整型转化成浮点型,结果为浮点型。如果是数值与布尔型运算,系统会自动将布尔值转换为数值再运算,即将Ture转换为1,False转化为0。如果系统无法自动转换就需要我们强制转化了。 int():强制转换成整型 float():强制转换为浮点型 str():强制转换为字符串型
2.2 表达式 2.2.1 input 命令 变量 = input([提示字符串]) 例如:
key = input("请输入密码:")
print(key)
(注意格式!!!)
2.2.2算术运算符 加减乘除取余跟C语言没啥区别,就是多了两个 “//” 取商的整数部分,“ ** ” 表示(操作数1)的(操作数2)次方,例如:7**2表示7的2次方。
2.2.3 关系运算符 与C语言完全一致,只不过运算的结果将会是布尔值Ture 和 False。
2.2.4 逻辑运算符 and:逻辑且 or:逻辑或 not:逻辑非 运算的结果依旧是布尔值
2.2.5复合赋值运算符 就是操作之后赋值给自己的运算 +=相加后赋值给自己 -=相减后赋值给自己 *=相乘后赋值给自己 /=(看得懂就不再写了,下面的也一样) %= //= **=
(注意:运算符“+”既可以用于数值运算,也可以用于字符串连接,所以在操作的时候要注意操作数的类型)
2.3 条件语句 2.3.1 程序流程控制 跟C语言一样程序分为顺序、分支以及循环三种。 Python流程控制命令分为两大类:分支控制和循环控制。
2.3.2单分支条件语句 “if…"语句,与C语言用法没什么大区别,就是要记得冒号括号后面用的是“:”,然后记得缩进!
if(代码):
print("你好")
缩进这里重点提醒一下,在C语言中语句块是用一对大括号来表示的,但是在python中用的是缩进,所以一定要记得缩进。
2.3.3 双分支条件语句
if (条件表达式):
程序块一
else:
程序块二
2.3.4 多分支条件语句
if (条件表达式):
程序块一
elif(条件表达式二):
程序块二
.........
else:
程序块n
2.3.5 条件嵌套 跟C语言一样,在if里面疯狂套娃,再写if 注意:嵌套层数太多的话会降低程序可读性,而且维护困难。
三、循环、数据结构及函数
3.1循环 3.1.1 List(列表)结构 格式是将元素放在中括号里,元素之间用逗号分隔开,如下:
列表名称 = [ 元素1,元素2,.....]
元素的数据类型可以相同也可以不同 通过列表变量的下标访问列表元素的值。下标值用 [ ] 括起来,从0开始计数;第一个元素值下标为0,第二个为1,以此类推。注意下标不能超出列表范围,否则会报错。 列表下标值可以是负数,表示由列表最后向前取值,“-1”表示最后一个元素,“-2”表示倒数第二个,以此类推。 列表的元素还可以是另一个列表,这样就形成多维列表。多维列表的访问直接套娃即可。例如:
list1 = [["joe","123"],["Amy","124"],["Tom","125"]]
print(list1[1])
print(list1[1][1])
3.1.2 range() 函数 range()函数的功能是创建一个整数有序列表,在循环和遍历中经常使用到。 生成列表:
list1 = range(5)
生成自定义范围的列表:
list2 = range(M,N)
起始值和终止值都可以是负整数,但如果起始值大于或等于终止值,产生的是空列表。
生成从M开始到N-1步长为O的列表
list3 = range(M,N,O)
3.1.3 for循环 基本语法为
for 循环变量 in 列表:
程序块
执行for循环时,系统会将列表的元素值依次赋予给环境变量,环境变量改变一次就会执行一次“程序块”,即列表有多少个元素,就会执行多少次“程序块”里的语句。
3.1.4 for循环的嵌套 就是套娃,for里面套for。注意:要关注执行次数问题,其执行次数是各层循环的乘积,如果循环次数太多会耗费大量计算资源。
3.1.5 break及continue命令 跟C语言一样,break是跳出整个循环,continue是跳出单次循环
3.1.6 for…if…else 循环 一般配合if和break使用,其语法为:
for 变量 in 列表 :
程序块一
if(条件表达式):
程序块二
break
else:
程序块三
3.1.7 while 循环 通常用于非固定次数的循环,基本语法为:
while(条件表达式):
程序块
如果条件表达式为True,就执行程序块,否结束while循环
列表、元组及字典 3.2.1 高级列表操作 (省略,看书上的表) 用append()或insert()添加列表元素
list1 = [1,2,3,4,5,6]
list1.append(8)
注意:append()每次只能增添一个元素也可以是列表,并加到列表最后。
list1 = [1,2,3,4,5,6]
list1.insert(3,8)
list1[7] = 8
注意:insert()每次也只能添加一个元素,但是可以指定位置,注意下标值不能超出列表个数。
append()方法与extend()方法的区别 两者都是把数据添加到列表最后面,不同之处在于append()方法的参数可以是元素,也可以是列表,当参数是列表时,会把这个列表当成一个元素加入原列表。例如:
list1 = [1,2,3,4,5,6]
list1.append(7)
list1.append([8,9])
而extend()方法的参数只能是列表,不能是元素。而且会将列表中的元素作为元素逐一加入列表中,例如:
list1 = [1,2,3,4,5,6]
list1.extend([7,8])
pop()方法取出并删除元素 pop()方法可以有参数也可以没有,如果没有的话默认取出最后一个元素;如果有参数,参数的数据类型必须为整型。括号里面写的是列表的下标。
list1 = [1,2,3,4,5,6]
n = list1.pop(3)
n = list1.pop()
3.2.2 元组结构 元组就是不能修改的列表。形式上的区别是元组用小括号包起来,列表用的是方括号。
列表和元组的互相转换 list命令可将元组转换为列表,tuple命令可以将列表转换为元组。 元组转换为列表示例:
tuple1 = (1,2,3,4)
list1 = list(tuple1)
列表转元组示例:
list1 = (1,2,3,4)
tuple1 = tuple(list1)
3.2.3 字典结构 字典结构中的元素是以“键——值”对方式存储的,相当于自动贩卖机,按商品查询按钮就可以找到对应的商品的价格。其语法为:
字典名称 = {键1:值1,键2:值2...}
由于字典是使用“键”作为下标来返回“值”,因此“键”是唯一的,而“值”可以重复。如果“键”重复的话,前面的“键”无效,只有最后的“键”有效。 元素在字典中的排列顺序是随机的,与输入顺序不一定相同。所以不能用下标来定位字典里的元素。
修改字典元素值的方法是对“键”设定新“值”,新元素值会取代旧元素值,例如:
dict1 = {"可乐":3,"橙汁":4,"奶茶":5}
dict1(["奶茶"]) = 10
新增元素的方法是设置新“键”及新“值”,例如:
dict1 = {"可乐":3,"橙汁":4,"奶茶":5}
dict1 = (["雪碧":3])
删除字典有三种情况 1、删除字典中的特定元素
del 字典名称[键]
2、删除字典中的所有元素
字典名称.clear()
3、删除字典变量 字典变量删除后该字典变量就不存在了(一般用于用完字典后)
del 字典名称
示例:
dict1 = {"可乐":3,"橙汁":4,"奶茶":5}
del dict1["可乐"]
dict1.clear()
del dict1
3.2.4 常用字典操作 具体看书上的表
keys()方法、values()方法及items()方法 字典的keys()方法可以获取由所有“键”组成的组合,数据类型为dict_key;values()方法可获取由所有“值”组成的组合,数据类型为dict_values。可将keys()方法和value()方法返回的数据转换成列表,获取元素值,两者结合后就可以输出字典的全部内容。 例如:
dict1 = {"张三":70,"李四":75,"王小明":80}
listkey = list(dict1.keys())
listvalue = list(dict1.values())
for i in range(len(listkey)):
peint("%s的成绩为 %d分"%(listkey[i],listvalue[i]))
如果用items(),上面这个例子应该为
dict1 = {"张三":70,"李四":75,"王小明":80}
listitem = dict1.items()
for name,value in listitem:
peint("%s的成绩为 %d分"%(name,score))
get()方法及setdefault()方法 get()方法可以返回”键“对应的”值“,其语法为:
字典名称.get(键[,缺省值])
其中缺省值可有可无。所以get方法执行结果可能有三种情况: 1、“键”存在,不论是否设置缺省值,都返回“键”对应的“值” 2、“键”不存在,也没有设置缺省值,会返回“None” 3、“键”不存在,设有缺省值,返回缺省值。
setdefault()方法的用法、功能及返回值与get()方法完全相同。两者区别在于get()方法不会改变字典的内容,而setdefault()方法若“键”存在,字典内容不变,若“键”不存在,则会把“键——值”对加入字典作为字典元素(若设定了缺省值,把“键:缺省值”作为元素添加到字典中;若没有设定缺省值,则把“键:None”作为元素加到字典里)
函数 3.3.1 自定义函数 创建函数的语法为:
def 函数名称([参数1,参数2,...]):
程序块
[return 返回值1,返回值2,...]
基本用法跟C语言差不多,就是船舰和调用函数时的语法稍有不同 调用时:
[变量=] 函数名称 ([参数])
如果有返回值,可以用变量来储存返回值。
3.3.2 不定参函数 python创建函数时可以让函数不预先设定参数个数,方法是在参数名称前加星号,语法为:
def 函数名称(*参数):
3.3.3 变量的有效范围 全局变量:定义在函数外的变量,有效范围是整个python文件 局部变量:定义在一个函数中的变量,有效范围限于该函数内部。 注意:若有相同名字的全局变量与局部变量,则在函数内部会使用局部变量,在函数外部使用全局变量。
3.3.4 系统内置函数 有很多函数都可以直接调用,具体看书上的表。
3.3.5 导入包 有内建包和第三方开发的包,内建包只需要用import命令导入即可,第三方包则需要安装后才能用import命令经行导入。 内建包语法:
import 包名称
示例:
import random
通常包中有许多函数可以供开发者调用,使用语法为:
包名称.函数名称
例如,random包中包含了seed()、random()、choice()等,使用seed()的方法为:
random.seed()
另外一种导入包的方法(较推荐)
from 包名称 import *
用这种导入包的方法后,使用其中的函数就不必再输入包的名称。 这种方法虽然方便,但是也有一些风险:每个包内,一般都包含了很多方法,若两个或多个包都包含一个同名的函数时,使用时就可能产生错误。 于是就有了import的第三种方法:
from 包名称 import 函数1,函数2...
通过导入在指定包里的函数,就能避免函数名称重复的错误。
end.
|