python 学习入门整理

一些想法:

在原有的c++的基础上学习python,①我认为python语言更加简洁,更易于游戏和web等网页的创作。②它没有一些繁琐的头文件和数据类型,没有一些像必须加逗号什么之类的语法,可以极大程度上减少错误的发生,提高编程效率。③python是一门面向对象的编程语言

但是,c++的一些方法用的比较多,python的也很多现在很难熟练的应用,会用混,还是不太熟练。还有,输入输出相对c++不太友好

工具python3,     编辑器sublime_text,参考资料“蟒蛇书”

基本语法

变量

变量名可以是字母,数字,下划线(但不能以数字开头,不能包含空格)

变量可以是数字,字符串,标签(一般不用中文)

字符串

title()以首字母大写的方式显示每个单词

upper()全大写

lower()全小写

f字符串:在字符串中插入变量的值 ,f字符串{}内为变量

rstrip()删除空白,此方法是暂时的,若要永久删除用变量赋值

removeprefix()删除前缀

任意两个数相除,结果为浮点数(即使是两个整数且能整除)

用下划线分组,计算机不识别

赋值 x,y,z= 0, 0, 0

列表

常用方法

append元素添加至末尾

insert(索引,插入元素)将元素添加至列表

del 列表[索引]

pop删除列表末尾元素;pop(索引值) 删除列表中的任意元素

remove(元素值) 删除列表中的任意元素,不需要知道它的位置(只删除第一个;若有多个,可用循环)

sort()排序

sorted()暂时排列

reverse()反向

len()列表长度

索引-1 为最后一个元素,-2为倒数第二个。。。

操作列表

遍历(不要遗漏冒号)

python根据缩进来判断与其他程序各部分的联系,要避免缩进错误

如下图,缩进的是在for循环里面的,不缩进是外面的

数值列表

range(1,5) 只生成了1~4-------->差一行为。从指定的第一个值开始数,到指定的第二个值停止。因此不包含第二个值

min(列表名)  取最小

max(列表名)  取最大

sum(列表名)  取和

切片 列表名 [ 索引1,索引2 ]     截取 索引1 至 索引2前面一个

                                                   省略则表示从头或至尾

复制列表--切片的重要作用

使用切片复制是将列表1的副本赋给列表2,是两个列表;

而直接复制是将列表1关联到列表1实际上是一个列表--列表2

元组

不可改变的列表

my_num=(9,0,1)圆括号

改变元组中的元素不合法,但是给元组变量重新赋值合法

循环

if语句 (and, or)

if-elif-elid-else ( else可省略)

判断列表非空

if 列表

练习5.9

按照下面的说明编写一个程序,模拟网站如何确保每个
用户的用户名都独一无一。
口创建一个至少包含5个用户名的列表,并将其命名为 current_userso
口 再创建一个包含5个用户名的列表,将其命名为 new_users,并确保其中有一两个用户名也在列表 current_users 中。
口遍历列表 new_users,检查其中的每个用户名是否已被使用。如果是,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用。
口确保比较时不区分大小写。换句话说,如果用户名'John'已被使用,应拒绝用户名'JOHN'。(为此,需要创建列表 current__users 的副本,其中包含当前所有
用户名的全小写版本。)

字典

一系列的键值对,keys,values

键和值可以是任何变量,包括列表等

(类比c++map和结构体)

修改,删除,添加,查询,遍历

get()方法使用get方法使键值不存在时返回一个默认值

用户输入

input()方法

int()把输入转化成数值表示

学习中遇到的问题;

字典中冒号后要空格

sublime_text 本身不支持交互输入--vs code完美终端;或安装插件

安装插件sublimeRepl

crtl + shift + P 安装install Package 然后搜索安装sublimerepl参考此博客安装

函数

和c++很像

def 定义函数

函数方法里的为形参,主程序中的调用里面为实参

def 函数名(传递的信息):

       函数体

关键词实参:既可以在调用时赋值,(形参 = 实参,...)   

类(类比于java)

创建和使用类

__init__()方法(两个下划线哦):self必须存在,且位于最前面;

                                                    self是一个指向自身的引用->初始化

属性:可通过实例访问的变量    eg.  age, name

使用类和实例

在类中的__init()__方法中,可以给属性指定默认值

也可以通过方法修改属性的值

继承

子类继承了父类(超类)的所有属性和方法,同时 还可以定义自己的属性和方法。

super()  调用父类的方法

重写父类:不符合子类模拟的实物的行为,可以进行重写

导入类

1.导入单个类:import 语句   eg.  from car import Car  导入 car.py 中的 Car 类

2.导入多个类;                        from car import Car, ElectricCar 导入 car.py 中的 Car ,ElectricCar类

3.导入整个模块                     import car

4.在一个模块中导入另一个模块:类分散到多个模块中,以免模块太大或在同一个模块中存储不相关 的类。将类存储在多个模块中时,一个模块中的类依赖于另一个模块 中的类。在这种情况下,可在前一个模块中导入必要的类。 from car import Car

5.使用别名:as       eg.from electric_car import ElectricCar as EC

python标准库

是一组模块,使用其他程序员编写好的模块  eg.from random import randint

randint  随机返回一个位于这两个整数之间(含)的整数

choice() 将一个列表或元组作为参 数,并随机返回其中的一个元素

文件

读取文件

①open()  以任何方式使用文件

②close()  关闭文件;但在bug导致方法close() 未执行,文件将不会关闭 一般不用,自动关闭

③关键字with ,让Python负责妥善地打开和 关闭文件。

1.简单的open()在当前执行 的文件(即.py程序文件)所在的目录中查找。

with open('pi_digits.txt') as file_object:

        contents = file_object.read()

2.根据文件路径查找

with open('text_files/filename.txt') as file_object:

注意: ①显示文件路径时,Windows系统使用反斜杠(\ )而不是斜杠(/ ), 但在代码中依然可以使用斜杠。

② 一定用反斜杠时,可用  \\  进行转义     C:\path\to\file.txt"  ------> C:\\path\\to\\file.txt"

3.逐行读取

filename = 'pi_digits.txt'

with open(filename) as file_object:
    for line in file_object:
        print(line)
写入文件

open('xxxx', y)  第一个实参也是要打开的文件的名称。

                        第二个实参告诉Python,要以什么模式打开这个文件

write()函数写入

模式

定读取模式 ('r' )

写入模式 ('w' )

附加模式 ('a' )

读写模式 ('r+' )

如果省略了模式实参,Python将以默认的只读模式打开文件。

 filename = 'programming.txt'
     with open(filename, 'w') as file_object:
        file_object.write("I love programming.")

注意:如果指定的文件已经存在,Python将在返回文件对 象前清空该文件的内容。

异常

1.使用try-except 代码块

try:
    print(5/0)
except ZeroDivisionError:
    print("You can't divide by zero!")

输出

You can't divide by zero!

 2.else 代码块

如果成功,不出现故障,则用else打印结果

try:
    answer = int(first_number) / int(second_number)
except ZeroDivisionError:
    print("You can't divide by 0!")
else:
    print(answer)

异常:FileNotFoundError,ZeroDivisionError

静默失败

pass 语句,让Python在代码块中什么都不要做, 达到即使出现异常也保持静默

try:
    --snip--
except FileNotFoundError:
    pass
else:
    --snip--

存储数据

json.dump() 和  json.load()读取到内存中

import json

numbers = [2, 3, 5, 7, 11, 13] filename = 'numbers.json'

with open(filename, 'w') as f:
    json.dump(numbers, f)

import json

filename = 'numbers.json'

with open(filename) as f:
    numbers = json.load(f)
print(numbers)

测试代码

使用Python模块unittest 中的工具来测试代码

测试函数

先编写函数,后续在主程序中导入,并查看显示

测试类

断言方法

setUp() 来创建一个调查对象和一组答案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值