1、Python基础知识1.1 计算机组成原理1.2 认识python
Python的作者,GuIDo von Rossum(吉多·范·罗苏姆,中国Python程序员都叫他 龟叔),荷兰人。1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。
Python目前有两个版本,Python2和python3。
优缺点:1)优点:容易上手、免费开源可移植性、解释性语言、面向对象
2)运行时需要源码,执行效率慢
1.3 第一个python程序print("hello world")1.4 注释
单行:#
多行:
’’’
第一行
第二行
‘’’
1.5 变量以及类型程序是用来处理数据的,而变量就是用来存储数据的
变量不需要定义,用type()查看变量的类型
1.6 标识符和关键字
1)标识符由数字、字母或下划线组成且不能以数字开头,并且区分大小写
关键字是特殊的标识符
命名规则:驼峰命名法:大驼峰--首字母都采用大写。例如Stuname
小驼峰:第一个单词首字母小写,第二个以及后面单词首字母大写,例如stuname
2)关键字:
查看关键字命令: import keyword
print(keyword.kwList)
1.7 输出:print()
格式化输出
换行输出: \n ,默认换行
不换行:end= ‘’
1.8 输入:input()input输入的类型为str
1.9 运算符1.10 数据类型转换
举例:int(a,16)--16进制 int(a,2)--2进制,默认10进制
a = int(print(“请输入))
res = a+10
print(res)
0309学习:4节课,4小时
eval():eval方法中的表达式必须是字符串且返回的是字符串原本的数据类型,如下图
2、判断语句和循环语句2.1 判断语句If语句判断:格式如下
1)if 要判断的条件:
条件成立时,要做的事情
例如:
if True:
print("LL love ll")
2)If-else的使用格式:
if 条件:
满足条件时要做的事情1
满足条件时要做的事情2
...(省略)...
else:
不满足条件时要做的事情1
不满足条件时要做的事情2
...(省略)...
举例:
chePiao = 1 # 用1代表有车票,0代表没有车票
if chePiao == 1:
print("有车票,可以上火车")
print("终于可以见到Ta了,美滋滋~~~")
else:
print("没有车票,不能上车")
print("亲爱的,那就下次见了")
输出:
3)if-elif:
elif必须和if一起使用,否则出错
else 一般用在最后,即所有条件都不满足时使用
score = 77
if score >= 90 and score <= 100:
print('本次考试,等级为A')
elif score >= 80 and score < 90:
print('本次考试,等级为B')
elif score >= 70 and score < 80:
print('本次考试,等级为C')
elif score >= 60 and score < 70:
print('本次考试,等级为D')
elif score >= 0 and score < 60:
print('本次考试,等级为E')
4)if嵌套
if 条件1:
满足条件1 做的事情1
满足条件1 做的事情2
if 条件2:
满足条件2 做的事情1
满足条件2 做的事情2
说明
外层的if判断,也可以是if-else
内层的if判断,也可以是if-else
2.2 比较运算符2.3 逻辑运算符运算符 | 逻辑表达式 | 描述 | 实例 |
and | x and y | 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 | True and False, 返回 False。 |
or | x or y | 布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。 | False or True, 返回 True。 |
not | not x | 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not True 返回 False, not False 返回 True |
If应用:石头剪刀布的游戏
import random
while True:
while True:
lch = input("lch,请输入石头、剪刀或布:")
if lch not in ["石头", "剪刀", "布"]:
print("输入有误,请重新输入")
else:
break
computer = random.choice(["石头", "剪刀", "布"])
print("电脑出的是:%s" % computer)
if (lch == '石头'and computer == '剪刀')or(lch == '剪刀'and computer == '布')or(lch == '布'and computer == '石头'):
print("lch胜")
elif lch == computer:
print("平局")
else:
print("lch败")
select = input("继续游戏请输入Y,退出请输任意键:")
if select != 'Y':
print("游戏结束!")
break
游戏知识点整理:1、随机函数:random.choice(["石头", "剪刀", "布"])---数组中随机取
random.randint(1,3)---生成随机整数
2.4 循环语句介绍1)while和if的用法基本类似,区别在于:if 条件成立,则执行一次; while 条件成立,则重复执行,直到条件不成立为止。
2)一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成
3.10小结:两课时。主要学习强制转换、eval方法、条件控制语句以及while简单循环
2.5 while循环while 条件:
A
1)‘’’三引号之间的字符串输出会保留其原有模式 ‘’’
2)print(end = ‘ ‘) 不换行,不写默认换行
3)print(“%5d”):宽度为5的情况下右对齐
print(“%-5d”):宽度为5的情况下左对齐
对于float而言,用'%.2f'表示精确到小数点后2位
用'%6.2f'表示精确到小数点后2位并且宽度6
2.6 for循环在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。
格式:
for 临时变量 in 列表或者字符串等可迭代对象:
循环满足条件时执行的代码
range(1,10):左闭右开 [1,10)
2.7 break和continue
break的作用:立刻结束break所在的循环
continue的作用:用来结束本次循环,紧接着执行下一次的循环
break/continue只能用在循环中,除此以外不能单独使用
break/continue在嵌套循环中,只对最近的一层循环起作用
3.11 一课时。主要学习99乘法表以及循环嵌套
3 字符串、列表、元祖、字典3.1 字符串‘’:不可变数据类型
字符串是有序的字符序列--双引号或者单引号或者三引号中的数据,就是字符串
a = ‘qwert’ b =”ddfff” c=’’’ hdjhj kko uui ‘’’---三引号字符串保留其原本格式,空格、回车等都保留
d = str()---空字符串 e = ‘ ‘
1)len(my_str):my_str的长度
my_str = "str123ppp"
print(len(my_str))
结果为:9
2)下标:从0开始,用中括号加下标,my_str[3]
my_str = "abcdefgh"
print(my_str[3])
结果是:d
3) 切片:指对 *** 作的对象截取其中一部分的 *** 作。字符串、列表、元组都支持切片 *** 作。
切片的语法:[起始:结束:步长]
正序:起始默认0,结束默认最后一位,步长默认为1;
倒序:若步长为 -1,则起始默认为-1,结束默认为第0位
注意:选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),步长表示选取间隔。
my_str = "0123456789"
print(my_str[3:8:4])
my_str[3:8:4]:代表的是取第4位到第8位--34567,且步长为4,所以取得是37
0312小结:学习for循环、continue应用以及字符串定义、下标和切片
4) 字符串方法:
my_str = ‘abcdefgabcd’
① find():找到返回下标,找不到返回 -1 ;rfind():从右往左找,找到返回下标,找不到返回 -1
② index():找到返回下标,找不到报错;rindex():从右往左,找到返回下标,找不到报错
③ count():返回 str在start和end之间 在 my_str里面出现的次数
my_str.count(str, start=0, end=len(my_str))
例:my_str = 'abc def gabcd'
print(my_str.count("a")) 打印结果:2
my_str = 'abcadef gabcd'
print(my_str.count('a', 0, 3)) 打印结果:1
④ replace():把 my_str 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
my_str.replace(str1, str2, count)
⑤ split():以 str 为分隔符切片 my_str,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
my_str.split('a', 2)
⑥ cAPItalize():把字符串的第一个字符大写
⑦ Title():把字符串的每个单词首字母大写
⑧ startswith():检查字符串是否是以 hello 开头, 是则返回 True,否则返回 False
⑨ endswith():检查字符串是否是以 hello 结尾, 是则返回 True,否则返回 False
⑩ upper():转换 my_str 中的小写字母为大写
⑪ lower():转换 my_str 中的大写字母为小写
⑫ ljust():返回一个原字符串左对齐,并使用空格填充至长度 wIDth 的新字符串
⑬ rjust():返回一个原字符串右对齐,并使用空格填充至长度 wIDth 的新字符串
⑭ center:返回一个原字符串居中,并使用空格填充至长度 wIDth 的新字符串
⑮ lstrip():删除 my_str 左边的空白字符
⑯ rstrip():删除 my_str 右边的空白字符
⑰ partition():把my_str以str分割成三部分,str前,str和str后
partition(‘5’):5位中间部分5之前为第一部分,5之后为第三部分
⑱ join():my_str 中每个元素后面插入str,构造出一个新的字符串
help()
(面试题)给定一个字符串aStr ,返回使用空格或者'\t'分割后的倒数第二个子串
aStr = 'aa bb cc dd'
new_str = aStr.split(' ')
print(new_str[-2])
3.15小结:字符串常用方法的学习和实践
3.2列表[]:可变的数据类型3.2.1 格式:
变量A的类型为列表
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
新建列表:用List()
3.2.2 len():计算列表的长度
3.2.3 遍历
① 用for循环:
② 用while循环:
3.2.4 添加元素("增"append, extend, insert)
append():通过append可以向列表添加元素,整体追加
extend():通过extend可以将另一个集合中的元素逐一添加到列表中
insert():insert(index, object) 在指定位置index前插入元素object
3.2.5 修改元素("改"):修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
3.16学习小结:列表的定义以及增加修改的方法实践
3.2.6 查找元素("查"in, not in, index, count)
查找指定的元素是否存在
in(存在),如果存在那么结果为true,否则为false
not in(不存在),如果不存在那么结果为true,否则false
index():存在返回下标,不存在报错
count():返回指定元素的个数
3.2.7 删除元素("删"del, pop, remove)
del:根据下标进行删除
pop():不写下标默认删除最后一个元素,有下标则删除该下标索引对应的值
remove():根据元素的值进行删除
Clear():清空列表
3.2.8 排序(sort, reverse)
sort方法是将List按特定顺序重新排列,默认为由小到大,参数reverse=True可改为倒序,由大到小。
reverse方法是将List逆置
3.2.9 列表的嵌套
3.3元组():不可变的数据类型,不可以修改,元组用小括号tuple_a = ()
a = tuple()
3.3.1 访问元祖,使用下标
3.3.2 count():统计个数
3.3.3 index():查找
3.4 字典{}:可变的数据类型,无序
3.4.1 定义 dict = {key:value},key不可变
info = {'name':'班长', 'ID':100, 'sex':'f', 'address':'地球亚洲中国北京'}
说明:
1)字典和列表一样,也能够存储多个数据
2)列表中找某个元素时,是根据下标进行的
3)字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'ID'、'sex')
4)字典的每个元素由2部分组成,键:值。例如 'name':'班长' ,'name'为键,'班长'为值
3.4.2 查找
1)根据键访问值:dict[key]
若存在:返回key对应的值;若不存在:报错
2) 通过get获取元素
若存在:返回key对应的值;若不存在:获取到空的内容,不会出现异常
3.4.3修改元素:字典的每个元素中的数据是可以修改的,只要通过key找到,即可修改
3.4.4 添加元素:如果在使用 变量名['键'] = 数据 时,这个“键”在字典中,不存在,那么就会新增这个元素
3.4.5 删除元素:对字典进行删除 *** 作
del:删除指定的元素
clear():清空字典
3.4.6 len():统计键值对的个数
3.4.7 keys():返回一个包含字典所有KEY的列表
3.4.8 values():返回一个包含字典所有value的列表
3.4.9 items():返回一个包含所有(键,值)元祖的列表
3.4.10字典的遍历
通过for ... in ... 我们可以遍历字符串、列表、元组、字典等
1)遍历字典的key(键)
my_dict = {'name': 'cl', 'age': 18}
for key in my_dict.keys():
print(key)
输出结果:
name
age
2)遍历字典的value(值)
my_dict = {'name': 'cl', 'age': 18}
for value in my_dict.values():
print(value)
输出结果:
cl
18
3)遍历字典的项(元素)
my_dict = {'name': 'cl', 'age': 18}
for item in my_dict.items():
print(item)
输出结果:
('name', 'cl')
('age', 18)
4)遍历字典的key-value(键值对)
my_dict = {'name': 'cl', 'age': 18}
for key, value in my_dict.items():
print("key= %s,value= %s" % (key,value))
输出结果:
key= name,value= cl
key= age,value= 18
3.5集合{}:,可变,无序,不能重复集合是无序的,集合中的元素是唯一的(不可变),集合一般用于元组或者列表中的元素去重。
3.5.1定义
my_set1 = set() # 定义空集合
my_dic = {} # 定义的是一个空的字典
3.5.2 去重
a = ['1', '3', '1']
my_set = set(a)
print(my_set)
输出结果:{'1', '3'}
3.5.3增
add():整体添加
update():只能增加字符串,逐一添加
3.5.4删
pop :使用pop删除是随机删除集合中的元素 如果集合没有元素,程序报错
remove:使用remove删除集合中的元素 如果有 直接删除 如果没有 程序报错
discard:使用discard删除 如果元素存在 直接删除 如果元素不存在 不做任何 *** 作
my_set = {'1', '3', (6, 8), '1'}
my_set.remove((6, 8))
print(my_set)
输出结果:
{'1', '3'}
3.5.5交集 &
set1 = {1, 3, 5}
set2 = {2, 3, 6}
new_set = set1 & set2
print(new_set)
输出结果:3
3.5.6并集|
set1 = {1, 3, 5}
set2 = {2, 3, 6}
new_set = set1 | set2
print(new_set)
输出结果:
{1, 2, 3, 5, 6}
小结公共方法
运算符 | Python 表达式 | 结果 | 描述 | 支持的数据类型 |
+ | [1, 2] + [3, 4] | [1, 2, 3, 4] | 合并 | 字符串、列表、元组 |
* | ['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 复制 | 字符串、列表、元组 |
in | 3 in (1, 2, 3) | True | 元素是否存在 | 字符串、列表、元组、字典 |
not in | 4 not in (1, 2, 3) | True | 元素是否不存在 | 字符串、列表、元组、字典 |
python内置函数
Python包含了以下内置函数
序号 | 方法 | 描述 |
1 | len(item) | 计算容器中元素个数 |
2 | max(item) | 返回容器中元素最大值 |
3 | min(item) | 返回容器中元素最小值 |
4 | del(item) | 删除变量 |
多维列表:举例
my_List = [(1, 3), (2, 4), ({'name': ['aa', 22, 44]}, 99)]
print(my_List[2][0]['name'][1])
打印结果:
22
4、函数变量-函数-类-模块-包-项目
如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数
4.1函数的定义和调用4.1.1定义
def 函数名():
代码
4.1.2调用
定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它
调用函数很简单的,通过 函数名() 即可完成调用
def myFun(n, a):
print("name", n)
print("age", a)
myFun('lch', 39)
4.2 函数参数
1)形参:定义时小括号中的参数,用来接收参数用的,称为 “形参”
2)实参:调用时小括号中的参数,用来传递给函数用的,称为 “实参”
3)关键字参数:在实参中有赋值的参数
打印结果:
name 39
age lch
4)缺省参数:在形参中默认有值的参数,缺省参数一定要放在最后面
5)不定长参数之元祖:
def pr(*args):
print(args)
print(type(args))
pr("'haha', 20, 111, [1, 2, 3]")
6)不定长参数之字典:实参应为关键字参数
1、普通形参放在前面
2、缺省参数放在后面,关键字参数必须放在最后
3、不定长参数(元祖、字典)放在后面,不定长参数之字典(**kwargs)必须放在最后
4.3 函数嵌套:一个函数里面又调用了另外一个函数,这就是所谓的函数嵌套调用
def pr1():
print("1")
def pr2():
print("2")
pr1()
pr2()
执行:先执行pr2(),再执行pr1()
结果:
2
1
4.4 变量4.4.1 局部变量和全局变量
局部变量:在函数内部定义的变量。其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的
全局变量:在函数外边定义的变量。如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量。全局变量能够在所有的函数中进行访问
在函数中全局变量声明:global
4.5函数返回值返回多个值:return a,b,c
4.6 拆包、交换变量4.6.1 拆包:对返回的数据直接拆包
拆包时要注意,需要拆的数据的个数要与变量的个数相同,否则程序会异常
除了对元组拆包之外,还可以对列表、字典等拆包
举例:
def get_my_info():
high = 178
weight = 100
age = 18
return high, weight, age
my_high, my_weight, my_age = get_my_info()
print(my_high)
print(my_weight)
print(my_age)
输出结果:
178
100
18
4.6.2 交换变量
a = 4
b = 5
c = 0
c = a
a = b
b = c
print(a)
print(b)
输出结果:
5
4
4.7引用
我们可以用ID()来判断两个变量是否为同一个值的引用,值是靠引用来传递来的
举例:列表
a = ['sdf', 'e']
print(ID(a))
print(a)
a.append('q')
print(ID(a))
print(a)
列表a的ID值不变,但是值变了,所以他是可变的数据类型
小结:Python中函数参数是引用传递(注意不是值传递)
对于不可变类型,因变量不能修改,所以运算不会影响到变量自身
而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量
所谓可变类型与不可变类型是指:
数据能够直接进行修改,如果能直接修改那么就是可变,否则是不可变
可变类型有: 列表、字典、集合
不可变类型有: 数字、字符串、元组
4.8 递归函数如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数
举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n
def myfunc(i):
if i > 1:
return i * myfunc(i-1)
else:
return 1
res = myfunc(6)
print("res=", res)
输出结果:720 即7的阶乘
4.8 匿名函数
用lambda关键词能创建小型匿名函数
语法:lambda [arg1 [,arg2,.....argn]]:Expression
Lambda函数能接收任何数量的参数但只能返回一个表达式的值
匿名函数不能直接调用print,因为lambda需要一个表达式
总结以上是内存溢出为你收集整理的python基础学习笔记(持续更新)全部内容,希望文章能够帮你解决python基础学习笔记(持续更新)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)