PYTHON 总结

                                                                python基本理论知识

安装。常规方法:官网下载,依据官方手册进行安装。非常规方法:第三方工具,PyCharm,Spyder等。

1、python的3.0版本,常被称为python3000,或简称py3k.;python3.0在设计的时候没有考虑向下兼容。

2、python 3.0 区分大小写,且首字段无空格、制表符。

3、python中'和"使用方法完全一致。

4、注释:单行注释:#;多行注释:'''三个单引'''或者"""三个双引"""。

5、编码: 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。

6、同一个代码块的行缩进必须一致,否则报错,不同的代码块缩进的空格数可以不一致

7、一条长语句,分多行编写,则需在上一行的结尾增加 \ 实现

另:在{},[],()之间的多行,则不需要\

8、多条语句,同时编辑在同一行,则语句之间通过 ; 区分

9、空行:为增强脚本阅读性,建议在代码块,函数以及类等之间,插入空行,空行不执行

10、变量,python中变量无需声明,赋值即创建变量,变量=值,而且变量没有数据类型之说,只能说是变量指向的内存中的对象的数据类型。变量命名:一般采取 变量意义_数据类型,如:count_number,计数.

11、每个对象都有唯一标识符,而python用对象的内存地址作为唯一标识符。可变,不可变,指的是一个对象(标识符)的值可不可变,反之,如果值变了,标识符是否变了。

12.以"#"开头的是注释,可以独占一行,以三对双引号或单引号包裹的语句是多行注释

13.缩进可以用tab键控制,也可以用空格。空格是Python3的缩进方法,一般使用四个表示一级缩进,Python不允许tab和空格混用。

14.关键字是Python已经使用过的不能再使用,可以在Jupyter单元格中执行help("关键字")查看有哪些关键字,也可以修改大小写来使用已使用的关键字。

15.数据类型分为整形(int),浮点型(float),布尔类型(bool),复数类型(complex),字符串,列表,元祖,字典。

16.列表用[]中间用逗号隔开,元祖用()中间用逗号隔开,集合用{},其中元素无序且唯一,字典中的元素是"键(Key):值(Value)",键不能重复,各个元素用逗号隔开

17.input()函数用于接收用户键盘输入的数据,print()函数向控制台输出数据
———————————————
 

                                                                        数据类型

1、number,数字数据类型,不可变类型,即改变数字数据类型的值,将重新分配内存地址。数字数据类型包括:int,float,complex。

2、string:字符串数据类型,不可变类型,用'或者"创建。可以被索引,截取。

3、list:列表数据类型,可变类型,写在[ ]里,用","隔开,其元素类型可以不相同,可以是数字,字符串,列表(嵌套)。 和字符串一样,可以被索引和截取,但截取时可以输入第三个参数,步长。是python中使用最频繁的数据类型。

4、tuple:元组数据类型,不可变类型,写在( )里,以“,”隔开,其元素可以是不同数据类型,其中可以包括可变数据类型list。可以被索引,截取。特殊语法:只有一个元素:touple1(value1,),有0个元素:tuple1( )。注:tuple属于不可变序列,故代码更安全。但,tuple的元素可以是可变类型数据类型list,list可变,但tuple不可变,也没变,还是依然指向该list的内存地址,故没变。

5、dictionary:字典数据类型,可变数据类型,用{ }创建,其中元素以key:value形式存放,各元素以“,”隔开,其中key值必须为不可变数据类型(number,string,tuple),且唯一(在同一个dictionary中),value可以为任意数据类型。dictionary是一种无序的集合,通过key值存取,而不是位置。dictionary是另一种使用广泛的数据类型(序列)。特殊语法:{ },表示空字典。

6、set:集合数据类型,可变类型,set( )或者{ }创建。 空集合:只能用set( ),不能用{ },{ }表示空字典。集合无序,无重复元素序列,多半用来做成员测试。

​​课堂例题

例题

danhao = '植树证书'
time = '时间:2021'
name = '谢谢你'
yi = '你于2021年12月16日申请的梭梭树已经被中国扶贫基金会认领,将种植到武危地区'
er = '树苗编号' \
     'NO.HFK121212456485231'
print('*'*30)
print(danhao)
print(time)
print('*'*30)
print(name)
print(yi)
print(er)
————————————————

                                                                   流程控制

掌握if语句的多种格式跳转语句,掌握while循环for循环,熟悉for循环和while循环嵌套,熟悉if语句的嵌套.

     

if-else

if-elif-else

     if总结

 if嵌套

if判断条件1:

        代码段1

if判断条件2:

        代码块2

猜数字例题

a1=1 #一个人设定数字
a=int(input("请输入数字"))#第二个猜测数字
if a1>a:
    print("你猜小了")
elif a1<a:
    print("你猜大了")
else:
    print("你猜对了")

while语句

while 条件表达式:

        代码块

for语句 临时变量 in 目标对象

        代码块

逢7拍手例题

sum=0
for i in range(1,100):
    if '7' not in str(i):
        if i%7 :
            print(i)

 

break语句 用于结束循环

continue语句用于满足条件下跳出本次循环

 房贷计算器例题

years = int(input("请输入贷款期限(年):"))
if years > 5:
    print("请输入贷款类型:1商业贷款,2公积金贷款")
    choic = int(input("请输入贷款类型:"))
    if choic == 1:
        r = 4.90 / 100
    elif choic == 2:
        r = 3.25 / 100

elif 0 < years <= 5:
    print("请输入贷款类型:1商业贷款,2公积金贷款")
    choic = int(input("请输入贷款类型:"))
    if choic == 1:
        r = 4.75 / 100
    elif choic == 2:
        r = 2.75 / 100
else:
    print('输入错误')

mr = r / 12  # 月利率
m = 12 * years  # 贷款总月数
p = int(input('请输入贷款本金:'))  # 贷款本金
mrp = mr * p  # 月利息

m1 = p * mr * pow(1 + mr, m) / (pow((1 + mr), m) - 1)  # 每月月供参考
m2 = m1 * years * 12  # 还款总额
li = m2 - p
print('您的每月月供参考为:', m1)
print('您的还款总额为:', m2)
print('您需还的利息为:', li)
————————————————

字符串       

什么是字符串???

字符串是一种用来表示文本的数据类型,它是由符号或者数值组成的一个连续序列。

Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串。

使用单引号:'hello itcast'

使用双引号:"hello itcast"

使用三引号:""my name is itcast my name is itcast"""

Python使用反斜杠“\”转义。例如,在字符串中的引号前添加“\”,此时Python解释器会将“\”之后的引号视为解释为一个普通字符,而非特殊符号。

化字符串是指将指定的字符串转换为想要的格式。Python字符串可通过%格式符格式化输出。

format % values

虽然使用%可以对字符串进行格式化,但是这种方式并不是很直观,一旦开发人员遗漏了替换数据或选择了不匹配的格式符,就会导致字符串格式化失败。为了能更直观、便捷地格式化字符串,Python为字符串提供了一个格式化方法format()。

f-string提供了一种更为简洁的格式化字符串的方式,它在形式上以f或F引领字符串,在字符串中使用“{变量名}”标明被替换的真实数据和其所在位置。

f('{变量名}') 或F('{变量名}')

十进制是实际应用中最常使用的计数方式,除此之外,还可以采用二进制、八进制或十六进制计数。 本实例要求编写代码,实现将用户输入的十进制整数转换为指定进制的功能。

字符串的查找与替换

Python中提供了实现字符串查找操作的find()方法,该方法可查找字符串中是否包含子串,若包含则返回子串首次出现的位置,否则返回-1。

Python中提供了实现字符串替换操作的replace()方法,该方法可将当前字符串中的指定子串替换成新的子串,并返回替换后的新字符串。

split()方法可以按照指定分隔符对字符串进行分割,该方法会返回由分割后的子串组成的列表。、

join()方法使用指定的字符连接字符串并生成一个新的字符串。

删除字符串的指定字符

字符串中可能会包含一些无用的字符(如空格),在处理字符串之前往往需要先删除这些无用的字符。Python中的strip()、lstrip()和rstrip()方法可以删除字符串中的指定字符。

 字符串对齐   

  在使用Word处理文档时可能需要对文档的格式进行调整,如标题居中显示、左对齐、右对齐等。Python提供了center()、ljust()、rjust()这3个方法来设置字符串的对齐方式。

 过滤敏感词

敏感词通常是指带有敏感政治倾向、暴力倾向、不健康色彩的词或不文明的词语,对于文章中出现的敏感词常用的处理方法是使用特殊符号(如“*”)对敏感词进行替换。 本实例要求编写代码,实现具有过滤敏感词功能的程序。

文字排版工具

文字排版工具是一款强大的文章自动排版工具,它会将文字按现代汉语习惯及发表出版要求进行规范编排。文字排版工具一般具备删除空格、英文标点替换、英文单词大写功能, 本实例要求编写代码,实现具有上述功能的文字排版工具。

例题:文本进度条.

import time

scale = 50
print("执行开始".center(scale // 2,"-"))
start = time.perf_counter()
for i in range(scale + 1):
    a = "*" * i
    b = "." * (scale - i)
    c = (i / scale) * 100
    dur = time.perf_counter() - start
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end = "")
    time.sleep(0.1)

print("\n"+"执行结束".center(scale // 2,"-"))
————————————————

 组合数据类型

Python集合具备确定性.互异性和无序性

字典(dict)是Python唯一的内置映射类型

字典的每个键只能对应一个值,不允许出现同一个键

字典的键是不可变类型

可以通过update()添加元素:dict.update(key=value),

列表可以用[]或list()创建,可以通过引索或切片访问列表

可通过append(),extend()和insert()添加元素

可通过del语句,remove(),pop()和clear()方法删除列表元素

可以用a1=()或a1=tuple()创建元组

集合

使用{}不能创建空集,空集只能用set()
————————————————

函数

1.定义函数

例如定义计算两个数之和的函数

def add()

        result = 11+22

        print(result)

2.调用函数

函数在定义完成后不会立刻执行,直到被程序调用时才会执行

add()

add_modify(10,20)

3.函数的传递

有关键字传递,位置传递

位置传递例:

def get_max(a, b):

    if a > b:

        print(a,"是较大的值!")

    else:

        print(b,"是较大的值!")

get_max(8, 5)

关键字传递例:

def connect(ip, port):

    print(f"设备{ip}:{port}连接!")

connect(ip="127.0.0.1", port=8080)
————————————————
文件与数据格式化

文件标识的意义:找到计算机中唯一确定的文件。

文件标识的组成:文件路径、文件名主干、文件扩展名

计算机中的文件分为文本文件和二进制文件

文本文件:专门存储文本字符数据

二进制文件:需要电脑进行规则翻译的文件

stdin(标准输入文件) stdout(标准输出文件)  stderr(标准错误文件)

内置函数open()用于打开文件

 open(file, mode='r', buffering=-1)

while语句

with语句可预定义清理操作,以实现文件的自动关闭

read方法可以从指定文件中读取指定字节 格式:read(n=-1)

readline()方法可以从指定文件中读取一行数据

readlines()方法可以从指定文件读取所有数据

write()方法可以写入文件

writelines()可以把列表写入文件

tell方法用于获取文件当前读写位置

seek()方法可以控制文件的读写位置,实现位置的随机读写

文件与目录管理

删除文件os.remove(文件名)

文件重命名os.rename(原文件名,新文件名)

创建/删除目录os.mkdir(目录名)/os.rmdir(目录名)

获取当前目录os.getcwd()

更改默认目录os.chdir(路径名)

获取目录列表os.listdir(目录/路径)
————————————————

例题

写一个修改文件的程序,要求是原来的内容不能被覆盖,修改之后字符之间的空格不能变化

user.txt ↓

马一特    18    male

刘德华    50    male

林志玲    20    female

代码↓

with open('user.txt', mode='wr', encoding='utf-8') as f:
    data = f.read()
    data = data.replace('马一特', '马一特[Albert]')

with open('user.txt', mode='w', encoding='utf-8') as f:
    f.write(data)
————————————————

例题

生成100个MAC地址并写入文件中,MAC地址前6位(16进制)为01-AF-3B
01-AF-3B
01-AF-3B-xx
01-AF-3B-xx-xx
01-AF-3B-xx-xx-xx

代码↓

def create_mac():
    MAC = '01-AF-3B'
    hex_num = string.hexdigits
    for i in range(3):
        n = random.sample(hex_num,2)
        sn = '-' + ''.join(n).upper()
        MAC += sn
    return MAC

print(create_mac())

#随机生成100个MAC 地址
def main():
    with open('mac.txt','w') as f:
        for i in range(100):
            mac = create_mac()
            print(mac)
            #每生成一个MAC地址,存入文件
            f.write(mac + '\n')

main()
————————————————

例题

当前目录下有一个文件名为 a.txt 的文本文件,存放着某班学生的计算机课成绩,共有学号、平时成绩、期末成绩三列。
请根据平时成绩占 40%,期末成绩占 60%的比例计算总评成绩(取整数) ,并分学号、总评成绩两列写入另一文件 score2.txt 。
同时在屏幕上输出学生总人数, 按总评成绩计 90 以上、80~89、70~79、60~69、60 分以下各成绩档的人数 和班级总平均分(取整数)
————————————————

a.txt:学号 平时成绩 期末成绩
170691501 90 91
170691502 60 70
170691503 85 60
170691504 80 75
170691505 95 60
170691506 95 100
170691507 60 40

代码↓

f = open("a.txt")
a = f.readline()
line = (f.readline()).strip()
f2 = open("a.txt",'w')
f2.write("学号 平均成绩\n")
L2 = [0,0,0,0,0]
count = 0
sum = 0
while (len(line) != 0):
    L1 = line.split()
    f2.write(L1[0]+" ")
    f_score = int(int(L1[1])*0.4+int(L1[2])*0.6)
    if 90<f_score <=100:
        L2[0] += 1
    elif f_score >=80:
        L2[1] += 1
    elif f_score >=70:
        L2[2] += 1
    elif f_score >=60:
        L2[3] += 1
    else :
        L2[4] += 1
    count += 1
    sum += f_score
    f2.write(str(f_score)+"\n")
    line = (f.readline().strip())
f.close()
f2.close()
avg_score = int(sum/count)
print("学生总人数为{0},按总评成绩计,90以上{1}人,80-90有{2}人,70-80有{3}人,60-70有{4}人,60以下有{5}人,班级总平均分为{6}".format(count,L2[0],L2[1],L2[2],L2[3],L2[4],avg_score))
————————————————
 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值