1 字符串相关函数

  • .title() # 将字符串每个单词的首字母大写
  • .upper() #不改变字符串变量的值
  • .lower() #不改变字符串变量的值
  • f"{var} ,字符串" # 将变量和字符串格式化
  • .rstrip() # 去除字符串尾空格,暂时的,再次访问还原
  • .lstrip() # 去除字符串头空格
  • .strip() # 去除字符串 头和尾的空格
  • .split() # 以空格 将字符串拆分成列表

2 计算符号

  • 3**2  # 9 3的2次方
  • 1_000_0000 # 大数可以使用_分割 不会影响

3 import this #Python之禅

4 列表

特定顺序排列元素组成;元素间可无关系(不必同类型);索引从0开始;-1表示最后一个元素;

  • .append() # 列表末尾添加元素
  • .insert(index,var) # 在index处插入一个值,后面依次右移
  • del list[index] # 删除index索引处元素,后面依次左移
  • .pop() # 删除列表尾一个元素
  • .pop(index) # 删除index处元素
  • .remove(var) # 删除列表中第一出现的var
  • .sort() # 按照字母表顺序,大小排序;永久性;字母数字不可混合排序;
  • sorted(list) # 临时排序,再次访问还原
  • .reverse() # 反转列表顺序
  • len(list) # 确定列表长度
  • 遍历列表
# 依据冒号和缩进

for var in list:

print(var)
  • range 创建数值列表
# 1 2 3 4 ;range(m,n) 最后m到n-1;
  • for value in range(1,5):
print(value)
  • var_list=list(range(1,5))
print(var_list)
  • range(2,11,2)
#从2开始,不断加2,一直达到或者超过11
  • 列表解析
squares=[value**2 for value in range(1,11)]

print(squares)

# 输出 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
  • list[0:3] # 返回索引0 1 2 元素
  • list[:4] # 返回前4个元素
  • list[2:] # 返回第三个到最后一个元素
  • list[-2:] # 返回倒数两个元素
  • list[:] #复制列表;如果是list2=list1,只是将list2指针指向list1,并没有真正复制创建一个新list
  • 检查一个值在不在列表中
var_list=["nihao","nihaoa","nizhendehao"]

"nihao" in var_list

"nibuhao" not in var_list

5 元组

  • 不可变的列表
  • 定义 ,严格的说元组是由逗号标识的,定义只包含一个元素的元组,也必须在这个元素后面加上逗号,所以 dimensions=200,50 也是可以的
dimensions=(200,50) #元组使用圆括号

print(dimensions[0])
  • 修改元组变量,虽然不能修改元组的元素,但是可以给存储元组的变量重新赋值
dimensions[0]=250 # 这个是错误的

dimensions=(250,50) # 这个是合法的

6 字典

  • 字典是一系列键值对,与键相关联的值可以是数、字符串、列表乃至字典等任意一个Python对象。
var_dic={'color':'green','point':5} # 创建字典

print(var_dic['color'])
  • 添加
var_kong_dic={} # 创建一个空的字典

var_kong_dic['nihao']="nihao" # 在字典中添加键值对

var_kong_dic['nibuhao']="nibuhao"

print(var_kong_dic)
  • 修改
var_kong_dic['nihao']="How are you?" # 修改值

print(var_kong_dic)
  • 删除
del var_kong_dic['nibuhao'] #删除键值对

print(var_kong_dic)
  • 获取
point_value=var_kong_dic.get('point',"No point value assigned")

#直接打印字典不存在键值报错,get不存在时返回第二个参数;没有指定第二个参数返回None

print(point_value)
  • 遍历
# 添加几个值做演示

var_kong_dic['cnihaos']="nihao"#在字典中添加键值对

var_kong_dic['anihaoss']="nihao"#在字典中添加键值对

for k,v in var_kong_dic.items():

    print("Key:"+k)

    print("Value:"+v)
  • 获取字典 键的 列表 # 同样的,值 values
print(var_kong_dic.keys())

print(type(var_kong_dic.keys()))
  • 排序遍历
for name in sorted(var_kong_dic.keys()):

print(name)
  • 删除重复遍历
for var_values in set(var_kong_dic.values())

print(var_values)
  • 区别 集合
# 集合 不会以特定的顺序存储元素

var_jihe={'python','java','C#'}

print(var_jihe)

字典 列表
alien_0={'color':'green','points':5} alien_1={'color':'red','points':10} alien_2={'color':'yellow','points':15} aliens=[alien_0,alien_1,alien_2] print(aliens)

7 函数相关

  • input函数

    • 让程序暂停运行,等待用户输入并将用户输入赋值给一个变量,其参数是向用户显示的提示
message=input("Pleaseinputsomething:")

print(message) # input获取的都是字符串类型
  • 强制类型转换
age=input("Howoldareyou?\n")

print(type(age))

print(":"+age)

age=int(age) # 强制类型转化

print(type(age))

print(":"+str(age)) # 输入字符串+数字会报错,所以还需要再来一次类型转换
  • 传递任意数量的实参

形参中的 * 让Python创建一个空元组(不可变),并将收到的所有值都封装在这个元组中、

defmake_pizza(*toppings):

""""打印顾客所点的所有配料"""

print(toppings)

print(type(toppings))

make_pizza('peperoni')

make_pizza('mushrooms','greenpepers','extracheese')
  • 使用任意数量的关键字实参

    • 形参中的 ** 让Python创建一个空字典,将所有名称值对都放在字典中
defbuild_profile(first,last,**user_info):

"""创建一个字典,其中包含我们知道的有关用户的一切"""

user_info['first_name']=first

user_info['last_name']=last

returnuser_info

user_profile=build_profile('albert','einstein',location='princeton',field='physics')

print(user_profile)

8 读取/写入 文件

  • 读取整个文件
#原文件中的换行会被读取,但是打印末尾会多一个空行,因为read() 到达文件末尾时会返回一个空字符串,而将这个空字符串显示出来就是一个空行,如果要去除空行,就在字符串末尾加一个  rstrip()

with open("pi.txt") as file_object:

contents=file_object.read()

print(contents)
  • 逐行读取
#逐行读取每行末尾都会有一个换行符,所以需要加一个rstrip去除

with open("pi.txt") as file_object:

    for line in file_object:

        print(line.rstrip())
  • 创建一个包含文件各行内容的列表
with open("pi.txt") as file_object:

    lines=file_object.readlines()

print(type(lines))

print(lines)

print("\n")

for line in lines:

    print(line.rstrip())
  • 写入空文件
# 这样会覆盖掉原文件中的内容,打开文件时的w参数,a 附加模式(在文件末尾添加不会覆盖原内容),r+读写模式,省略参数默认r 只读模式

with open("pi.txt",'w') as file_object:

    file_object.write("I love programming.")

with open("pi.txt",'a') as file_object:

    file_object.write("\nI love programming,too.")
  • json 存储与读取
import json

numbers=[2,3,4,5,6,9]

# 存储

filename='numbers.json'

with open(filename,'w') as f:

    json.dump(numbers,f)

f.close()

# 读取

file_name2='numbers.json'

#异常处理

try:

    with open(file_name2,'r') as f:

        read_number=json.load(f)

except FileNotFoundError:

    print("The file is not found!")

else:

    print(read_number)

    print(type(read_number))

9 测试

  • 测试函数

    • name_function.py
def get_formatted_name(first,last,middle=''):

    """形参中指定默认值得形参 middle只能放在最后"""

    if middle:

        full_name=f"{first}.{middle}.{last}"

    else:

        full_name=f"{first}.{last}"

    return full_name
  • test_name_function.py
import unittest

# 导入单元测试

from name_function import get_formatted_name

class NameTestCase(unittest.TestCase):

    """继承 unittest.TestCase"""

    def test_first_last_name(self):

        """方法名必须test打头,这样才能自动运行"""

        formaated_name=get_formatted_name("jone","json")

        self.assertEqual(formaated_name,"jone.json")

        """断言方法"""

    def test_test_first_last_middle_name(self):

        formatteed_name=get_formatted_name("A","B","C")

        self.assertEqual(formatteed_name,"A.B.C") # 形参顺序不对会报错的

if __name__=='__main__':

    unittest.main()
  • 测试类

    • survey.py
class AnonymousSurvey:

    """构造函数"""

    def __init__(self,question):

        """存储 问题和 答案的变量"""

        self.question=question

        self.responses=[]

    """显示调查问卷"""

    def show_question(self):

        print(self.question)

    """存储单份调查问卷"""

    def store_response(self,new_response):

        self.responses.append(new_response)

    """显示所有答案"""

    def show_results(self):

        print("Survey Results:")

        for var_response in self.responses:

            print(f"-{var_response}")
  • test_survey.py
  • # 导入单元测试
    
    import unittest
    
    # 导入测试的类文件
    
    from survey import AnonymousSurvey
    
    class TestAnonymousSurvey(unittest.TestCase):
    
        """使用setUp函数 创建一个所有方法都可以使用的类和答案列表"""
    
        def setUp(self):
    
            question="What language did you first learn to speak?"
    
            self.my_survey=AnonymousSurvey(question)
    
            self.responses=['English','Chinese','Janpanese']
    
        def test_store_single_reponse(self):
    
            self.my_survey.store_response(self.responses[0])
    
            self.assertIn(self.responses[0],self.my_survey.responses)
    
        def test_store_three_reponses(self):
    
            for reponse in self.responses:
    
                self.my_survey.store_response(reponse)
    
            for reponse in self.responses:
    
                self.assertIn(reponse, self.my_survey.responses)
    
    if __name__=='__main__':
    
        unittest.main()

【笔记】Python编程 从入门到实践 第二版(基础部分)的更多相关文章

  1. #Python编程从入门到实践#第二章笔记

      ​​​1.变量 (1)变量名只能包含字母.数字和下划线,不能包含空格 (2)不要将python关键字与函数名作为变量名 (3)简短有描述性,避免使用小写字母l和大写字母O (4)python 始终 ...

  2. Python编程从入门到实践笔记——文件

    Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...

  3. #Python编程从入门到实践#第四章笔记

    #Python编程从入门到实践#第四章笔记   操作列表 ​​​1.遍历列表 使用for循环,遍历values列表 for value in values: print(value) 2.数字列表 使 ...

  4. Python编程从入门到实践笔记——异常和存储数据

    Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...

  5. Python编程从入门到实践笔记——类

    Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...

  6. Python编程从入门到实践笔记——函数

    Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...

  7. Python编程从入门到实践笔记——用户输入和while循环

    Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...

  8. Python编程从入门到实践笔记——字典

    Python编程从入门到实践笔记——字典 #coding=utf-8 #字典--放在{}中的键值对:跟json很像 #键和值之间用:分隔:键值对之间用,分隔 alien_0 = {'color':'g ...

  9. Python编程从入门到实践笔记——if语句

    Python编程从入门到实践笔记——if语句 #coding=utf-8 cars=['bwm','audi','toyota','subaru','maserati'] bicycles = [&q ...

随机推荐

  1. F5 api接口开发实战(一)

    本人从18年下旬,开始从事F5负载均衡的自动化开发工作,主要使用python编程语言,开发的F5功能模块为LTM和GTM. F5开发简介 1.F5管理模式 F5的管理模式主要有4种(不包含snmp), ...

  2. 混合前端seq2seq模型部署

    混合前端seq2seq模型部署 本文介绍,如何将seq2seq模型转换为PyTorch可用的前端混合Torch脚本.要转换的模型来自于聊天机器人教程Chatbot tutorial. 1.混合前端 在 ...

  3. YOLOvi(i=1,2,3,4)系列

    YOLOvi(i=1,2,3,4)系列 YOLOv4论文链接:https://arxiv.org/pdf/2004.10934.pdf YOLOv4源码链接:https://github.com/Al ...

  4. GitHub上开源的YOLOv5

    GitHub上开源的YOLOv5 代码地址:https://github.com/ultralytics/YOLOv5 该存储库代表Ultralytics对未来的对象检测方法的开源研究,并结合了我们在 ...

  5. 使用JS获取两个时间差(JS写一个倒计时功能)

    <body onload="myFunction()"> <p id="demo"></p> <script> ...

  6. C# 强行锁定 第三方 外部 应用程序窗体窗口的分辨率尺寸大小 禁止鼠标拖拽改变窗口大小

    我们也许会有一些奇怪的需求,比如说禁止一个外部程序的窗口大小更改. 如果我们没法修改外部程序的代码,那要怎么做呢? 当然,我们可以通过DLL注入目标程序的方式去Hook或registry一个事件来检测 ...

  7. Spring Cloud10:Zipkin 服务跟踪

    一.概述 为什么要有服务跟踪,分布式系统中有很多个服务在相互调用,调用关系是错综复杂的,如果这时出现了问题,我们在进行问题排查的时候,或者在优化架构的时候,工作量就比较大,这时候就需要我们能够准确的跟 ...

  8. 6.10考试总结(NOIP模拟6)

    前言 就这题考的不咋样果然还挺难改的.. T1 辣鸡 前言 我做梦都没想到这题正解是模拟,打模拟赛的时候看错题面以为是\(n\times n\)的矩阵,喜提0pts. 解题思路 氢键的数量计算起来无非 ...

  9. 我用段子讲.NET之依赖注入其一

    <我用段子讲.NET之依赖注入其一> 1) 西城的某个人工湖畔,湖水清澈见底,湖畔柳树成荫.人工湖往北,坐落着两幢写字楼,水晶大厦靠近地铁站,由于为了与湖面天际线保持一致,楼层只有26层高 ...

  10. 头条面试题:判断一个数是否是happy number(每一位的平方和最终为1)

    朋友面试头条二轮了,一轮的题目请看这一篇:头条面试题:求用户在线峰值和持续时间 这次的面试题目是:判断一个数是否是happy number(每一位的平方和最终为1) 知道题目首先要理解题目.所谓hap ...