Python基础语法笔记

一、字符串操作

s = '  Kitty  '
s.title()    #首字母大写
s.upper()    #全大写
s.lower()    #全小写
s.lstrip()    #去除左边空白
s.rstrip()    #去除右边空白
s.strip()    #去除两端空白
str(5)    #将整数5转换成字符串
int('21')    #将字符串'21'转换成整数

if 'k' in s:    #判断字符串是否包含用in
    print('k is in word '+s)

s.replace('K','k')    #替换字符串中的K为k
s.count('tt')    #统计字符串中tt出现的次数
s.split('t')    #分隔字符串成列表

二、列表操作

1、列表元素

arrays=['lily','tom','alice']
arrays[-1]    #取列表最后一个元素
arrays[-2]    #取列表倒数第二个元素
arrays[-3]    #取列表倒数第三个元素
arrays[0]='tick'    #修改元素
arrays.append('linda')    #末尾追加元素
arrays.insert(0,'teddy')    #指定索引添加元素
del arrays[0]    #指定索引删除元素
arrays.pop()    #删除末尾元素并可得到它
arrays.pop(0)    #指定索引删除元素并可得到它
arrays.remove('tom')    #根据值删除元素
len(arrays)    #列表长度

if 'lily' in arrays:    #列表判断元素存在
    print('lily is coming')

if 'lily' not in arrays:    #列表判断元素不存在
    print('lily is not coming')

2、列表排序

arrays.sort()    #对列表永久性排序
arrays.sort(reverse=True)    #对列表永久性反序
arrays.reverse()    #倒序永久性,再次reverse()恢复
sorted(arrays)    #临时排序

3、遍历列表

for arr in arrays:
    print(arr)
    print(arr+'again') #这一行与上一行缩进表示在循环内

print('end') #不缩进表示循环结束

4、数值列表

range(1,5) #结果为1,2,3,4
range(2,11,2) #2~11内的偶数,指定起始和步长
digits=[1,2,3,4,5,6,7,8,9,0]
min(digits)
max(digits)
sum(digits)

5、列表解析

将for循环和创建元素合并,并自动附加元素。

squares=[value**2 for value in range(1,11)]
print(squares)

6、切片

squares = [1,4,9,16,25,36]
squares[0:3] #列表前3个元素
squares[:4] #从头
squares[2:] #至尾
squares[-3:] #最后三个元素
squares[:] #整个列表
squares_2=squares[:] #利用切片复制列表,不同列表
squares_2=squares #指向同一列表

7、元组

dimensions=(200,50) #元素元素不可修改

三、字典操作

在Python中,字典是一系列键值对,任何Python对象都可以作为字典的值。

alient_0={'color':'green', 'points':5}
print(alient_0['color'])
print(alient_0['points'])

字典是动态结构,可随时添加键值对   

alient_0['x_position']=0
alient_0['y_position']=25
print(alient_0)

修改字典值

client_0['color']='yellow'

删除键值对

del alient_0['points']

遍历字典   

for key,value in alient_0.items():
        print(key)
        print(value)

遍历键   

for key in alient_0.keys():
        print(key)

遍历值(使用集合set去重)   

for value in set(alient_0.values()):
        print(value)

字典列表(字典组成的列表)   

alient_0={'color':'green', 'points':5}
alient_1={'color':'yellow', 'points':10}
alient_2={'color':'red', 'points':15}
alients=[alient_0,alient_1,alient_2]

字典包含列表   

pizza={
        'crust':'thick',
        'toppings':['mushrooms','cheese']
    }

字典中存储字典   

users={
        'aeistein':{
            'first':'albert',
            'last':'eistein'
        },
        'mcurie':{
            'first':'marie',
            'last':'curie'
        }
    }

四、if判断和while循环

1、if判断

num = 8
if num == 8:
    print('The number is eight.')

elif num > 8:
    print('The number is greater than eight.')

else:
    print('The number is less than eight.')

2、while循环

num=1
while num<=5:
    print(num)
    num += 1
    if num==3:
        break

1)在Python循环中都可以使用break终止循环,continue进入下一次循环。

2)for循环中不能修改列表,while循环中可以修改列表。

五、用户输入

函数input()让程序暂停运行,等待用户输入一些文本,获取用户输入后,Python将其存入一个变量。

六、函数

1、定义函数

def greet_user():
    print('hello')

def greet_user(username):
    print('hello,'+username)

2、实参和形参

1)传递实参方式:

    位置实参(按参数顺序);

    关键字实参(指定形参名);

    默认值;

2)传递任意数量的实参:

    在参数前面加一个*,代表创建了一个空元组,并将收到的所有值都封装到元组中。

def make_pizza(*toppings):
    print(toppings)

    在参数前面加两个*,代表创建了一个空字典,并将收到的所有键值都封装到字典中。

def build_profile(name,**user_info):
    print(name)

3)结合使用位置实参和任意数量实参,将接纳任意数量的形参放在最后。

def make_pizza(size,*toppings):
    print(toppings)

3、函数返回值

返回简单值;返回字典

4、将函数存储在模块中

1)导入整个模块(pizza.py)

import pizza

2)导入特定的函数

from pizza import make_pizza #导入单个函数
from pizza import make_pizza,send_pizza #导入多个函数

3)使用as给函数取别名

from pizza import make_pizza as mp

4)使用as给模块取别名

import pizza as p

5)导入模块中的所有函数

from pizza import *

七、类

1、类定义

Class Dog():

    def __init()__(self,name,age):
        self.name = name
        self.age = age

    def sit(self):
        print('sit')

    def roll_over(self):
        print('roll over')

2、类创建

my_dog = Dog('Lufie',6)
your_dog = Dog('Lucky',3)

3、Python标准库(Python 标准库 — Python 3.7.13 文档

Python标准库是一组模块。

以collections中的有序字典OrderedDict为例,它兼具列表和字典的主要优点,信息关联并有序。   

from collections import OrderedDict

languages = OrderedDict()
languages['jen'] = 'Python'
languages['sarah'] = 'c'
languages['phil'] = 'ruby'
languages['eward'] = 'c'
print(languages)

以random中的获取随机整数的函数randint为例   

from random import randint

print(randint(1,6))

八、文件

1、读取整个文件

with open('pi_digits.txt') as file_object:
    contents = file_object.read() #读取整个文本
    #contents = file_object.readlines() #将文件的内容存入列表
    print(contents)

with关键字在不需要访问文件后自动将其关闭

2、逐行读取文件

使用for循环

with open('pi_digits.txt') as file_object:
    for line in file_object:
        print(line)

3、写入文件

with open('p.txt','w') as file_object:
    file_object.write('I like programming')

第二个实参说明

    'w':写入模式,会覆盖

    'r':只读模式,默认

    'a':附加模式,会追加

    'r+':能够读取和写入

4、写入多行

手动添加换行符\n

file_object.write('I love dogs\n')
file_object.write('I love cats\n')

九、异常

当程序出现异常,try-except处理后,程序继续运行;不处理则程序终止,显示traceback。

以ZeroDivisionError(0成为了除数)异常为例捕捉异常:

try:
    answer = int(first_number)/int(second_number)

except ZeroDivisionError:
    print("you can't divide by 0")

else:
    print(answer)

十、JSON数据(Javascript Object Notation)

1、json.dump(data)

参数data可以是要存的数据,也可以是可存数据的文件对象。

import json

numbers = [2,3,5,7,11,13]
file_name = 'numbers.json'
with open(file_name,'w') as f:
    json.dump(numbers,f)

2、json.load(data)

参数data是文件对象。

import json

file_name = 'numbers.json'
with open(file_name) as f:
    numbers = json.load(f)

十一、代码测试

1、简介

Python代码测试使用模块unittest。

单元测试:核实函数的某方面没有问题;

测试用例:一组单元测试组成;

全覆盖测试用例:一整套单元测试组成。

2、用法举例

import unittest

from name_function import get_formatted_name

class NameTestCase(unittest.TestCase):
    """类注释(紧跟类后):测试name_function.py"""

    def test_first_last_name(self):
        """函数注释(紧跟函数后):能够正确处理姓名吗"""
        formatted_name = get_fomatted_name('jan','jop')
        self.assertEqual(formatted_name,'Jan,Jop')

unittest.main() #运行这个文件中的测试

3、常用的断言方法:

assertEqual(a,b)
assertNotEqual(a,b)
assertTrue(x)
assertFalse(x)
assertIn(item,list)
assertNotIn(item,list)

4、方法setUp()

如果TestCase类中包含了方法setUp(),Python会先运行setUp,再运行test_开头的方法。

测试用例的运行结果:

1)测试通过,打印一个句点

2)测试错误,打印E

3)断言失败,打印F

十二、格式设置指南

1)每级缩进采用四个空格

2)每行不超过80字符,注释不超过72字符

3)使用空行组织程序

4)函数定义后应该跟注释

5)形参默认值或关键字实参,等号两边不留空格

6)两个空行将相邻函数分开

7)除注释以外所有import放文件开头

8)类名采用驼峰命名法(即类名中每个单词首字母大写)

9)实例名和模块名采用小写,单词之间使用下划线

10)类定义后包含注释,类似函数注释

11)类中用空行分隔方法,模块中用两个空行分隔类

12)先导入标准库模块,再导入自己的模块,之间加空行

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值