您的位置:首页 > 编程语言 > Python开发

python从入门到实践第一部分涉及到的知识概述

2019-02-23 13:12 316 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_42063599/article/details/87891146

python 字符串
title() 首字母大写
upper() 全部大写
lower()  全部小写

\t   \n  换行制表符

rstrip() 删除尾部空白 
lstrip() 删除开头空白
strip()  删除两端空白

str(num) 把数字转化为字符串类型

列表
列表按一定或特定元素组成。
列表元素种类不同有序,索引从0开始。-1最后一个,-2倒数第二个
test.append(‘a’)   列表添加元素a
test.insert(n,‘a’) 列表索引n处添加元素a
del test[0]                     列表删除索引为0元素
test.pop(n)                    列表弹出索引为n的元素
test.remove('a')             列表删除值为a的元素。
sort()                         列表永久性排序,按首字母。
cars.sort(reverse = True)  反向排序
sorted(cars)               列表临时排序
reverse()                         反转顺序(永久)
len()                                列表长度

python 循环

for a in b:             将b中每个元素依次赋给a
缩进表示在循环内

应用
 for value in range(1,5):
             print(value)
打印1到4。
range() 创建数字列表。   list(range(1,6))   [1,2,3,4,5]

利用range()与for可获取很多形式数组

数字的统计
min(nums)   max(nums)   sum(nums)    

列表解析,简化代码
eg: squares = [ value**2 for value in range(1,11)]


使用列表一部分
切片
test[1:3];  二到3
test[:4]     前四
test[-3:]   最后三个

复制
test1 = test[:]   复制
test1 = test       错误,未复制,只是将test1 指向test

元组
一系列不可修改的元素 用()定义
修改元组元素时要通过重新定义元组


条件语句 
if  条件:
    语句一
elif 条件:
    语句二
else:
    语句三

==  
!=
and
or
not in

字典
用{}中的值来定义
eg:alien_0 =  {'color':'green','points':5 }

访问  print(alien_0['color'])

添加键值对
alien_0['x_position'] = 0;
alien_0['y_position'] = 25
删除
del alien_0[points]

遍历字典:
for key,value in user_0.items():
    print('\nkey:' + Key)
    print('value' + value) 
for name in user_0.keys():

for value in user_0.values()

遍历后添加条件访问指定键值信息,或确定某部分是否未检查

按顺序遍历  sorted()

嵌套

列表与字典可以结合  从而可以创建重复字典元素的列表  便于操作
aliens =[]
for alien_number in range(30)
    new_alien= {'color':'green'}
                aliens = aliens.append(new_alien)


列表存于字典
test= {
'name': 1
'num'  : [2,3]
}

字典中存字典

用户输入与while

input()   用户输入信息,获取信息未字符串,进行数值运算需转化为int()
eg: test = input(‘num:’)

4 % 3************1      求模运算

while循环
while 条件:
    语句

while循环推出  条件不满足 或者 break  立即退出

continue的使用   执行continue  忽略while循环中continue之后代码  重新开始while循环

无限循环 :ctrl + C 退出

while 循环条件可以为 列表 列表为空时跳出循环

字典与while循环的结合

函数
eg:
def greet_user(username)
    print("hello,"+ username.title())
greet_user('judy')
实参与形参区别   
实参 judy 形参 username

位置实参 
decribe(animal_type,pet_name)
关键字实参 
decribe (animal_type = '',pet_name= '')
默认值

返回值
return 值

实参可选 即赋予某个形参不影响输出结果的默认值

返回值可以为字典

函数值处理列表

函数中修改列表  预定义一个空列表 pop() 与 append()

禁止函数修改列表的实现 
eg: 
def function_name(list_name[:])
此时传递的是函数副本而不是函数本身

传递任意数量的实参
eg
def make_pizza(*topping)
    print(topping)

位置实参与任意数量实参结合
make_pizza(size,*topping)
任意数量关键字实参
def make_pizza(**toppings)
    for topping in toppings.items():

导入函数模块
import 函数模块名

导入特定的函数
from 函数模块 import function_name

as给函数指定别名
from pizza import make_pizza as mp

导入所有函数
from pizza import *

类——面向对象编辑
        用来定义现实事物和情景的类,为类创建通用行为、
类的编写
eg:
class Dog():
    def _init_(self,name,age):
        self.name = name
        self.age    = age
    def sit(self):
        print(self.name.title() + " is now sitting.")

类创建实例
eg :
my_dog = Dog('willie',6)

print("My dog's name is " +my_dog.name.title() + ".")

调用方法
my_dog.sit() 

 

 

python中首字母大写的名称为类,

方法__init__()是一个特殊方法,每次根据已有实例创建新实例python会自动运行它。

__init__(self,name,age)必须包含形参self,每次创建实例时会自动生成实参self。其后形参一般为self属性,通过self.name = name,赋值,也可以通过self.name调用。
__init__()


定义一个Car类 
Class Car():
    def __init__(self,make,model,year) :
        --snip--
        self.odometer_reading =0   #设置属性默认值

修改属性值
直接修改
my_car =Car(...)
my_car.odometer_reading = 30

通过方法修改
    def update_odometer_reading(self,mileage):
        self.odometer_reading =mileage
通过方法渐变
    def function_name():
        self.name += 数值

继承:以一个类为基础创建一个子类
子类,父类

class Car():
    --snip--
class ElectricCar(Car):
    def __init__(self,make,model,year):
        ""初始化父类属性""
        super().__init__(make,model,year)

python2.7 中继承
    super(子类名ElectricCar, self).__init__(make,model,year)

给子类定义方法和属性
super()   将父类与子类关联起来,让子类包含父类的方法
 class Car():
    --snip--
class ElectricCar(Car):
    def __init__(self,make,model,year):
        ""初始化父类属性""
        super().__init__(make,model,year)
        self.battery_size = 70
    def 方法:

重写父类的方法
子类中
def 父类方法名:
    重新定义方法
此时调用方法时只会调用子类中方法,忽略父类中对该方法的描述。

将实例用作属性,将类的一部分作为一个独立的类
eg:
class Car():
    --snip--
class Battery():
    def __init__(self,battery_size=70):
        self.battery_size = battery_size
    def decribe_battery(self):
        语句
class ElectricCar(Car)
    def __init__(self,make,model,year):
        super().__init__(self,make,model,year)
        self.battery = Battery
my_tesla = ElectricCar 7ff8 ('tesla','model s',2016)
my_tesla.battery.describe_battery().

导入类
car.py 文件中定义了类Car
from car import Car

一个模块中可以存储多个类
    
从一个模块导入多个类
from car import Car,ElectricCal

导入整个模块
import car
from car import *


文件
文件读取(文本文件)
with open('文件名.txt') as file_object:
    contents = file_object.read()
    print(contents)

read()  读取文件全部内容,但会在末尾返回一个空字符串
rstrip() 删除末尾空白,  eg:print(contents.rstrip())
strip()  移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
使用with,open()返回文件代码只在with代码块中可用

创建列表包含文件内容
lines = file_object.readlines() 

写入文件
with open(filename,‘w’) as file_object   #没有文件会自动创建文件
    file_object.write("I love")

open(filename,'w')     第一个实参要打开的文件名,第二个实参表示写入类型 ,默认只读模式
'w'     写入模式    清空重写
'r'      读取模式    
'a'      附加模式   不请空,写入文件添加到文件末尾
'r+'    读取和写入文件模式

异常处理
try-except模块
eg:ZeroDivisionError 异常    比如print(5/0)会报出
try:
    print(5/0)
except ZeroDivisionError:
    print('you can't divide by zero')


使用异常可以避免程序崩溃,避免恶意测试
try:
    程序
except 某错误:
    发生该错误执行语句
else:
    正常执行语句

FileNotFoundError 异常    open()出错,try应包含它

pass: 程序什么也不做,用于不希望报错的时候


存储数据——json模块
f_obj: 存储文件的变量
json.dump()    将信息存储在.json文件中
 json.dump(numbers,f_obj)   其中numbers是要存入文件的变量
json.load()       读取.json中的文件
 json.load(f_obj)
eg:
import json
numbers = [2,3,4,5]
filename = 'number.json'
with open(filename,'w') as f_obj:
    json.dump(numbers,f_obj)

重构 :将代码划分为一系列具体工作的函数。让代码更清晰更易于理解

测试代码——unittest
import unitest
from 测试文件 import 测试方法

class ****TestCase(unitest.TestCase):   #创建继承unitest中的TestCase类,类名必须包含Test
    def test_测试方法():
        实际结果 = 测试方法
        self.assertEqual(实际结果,期望结果)     #一种断言
unittest.main()            #给出测试结果

可以添加多个测试。

断言方法
assertEqual(a,b)                测试a==b
assertNotEqual(a,b)          a != b
assertTrue(x)
assertFalse(x)
assertIn(item,list)
assertNotIn(item,list)

setUp方法:
创建一组用来测试的对象与其期望结果

eg:
class Test方法()
    def setUp(self)
        self.my_answer = 测试方法()
        self.response =期望结果
    def 测试()
        #断言时比较self.my_answer与self.response 

 


 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: