python基础学习笔记(持续更新)

python基础学习笔记(持续更新),第1张

概述  1、Python基础知识1.1 计算机组成原理1.2 认识pythonPython的作者,GuidovonRossum(吉多·范·罗苏姆,中国Python程序员都叫他龟叔),荷兰人。1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。Python目前有两个版本,Python2和Python3。优缺点

 

 

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基础学习笔记(持续更新)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1187759.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存