python基础知识

目录

变量

输入输出

字符串

编码解码

python数据结构

列表

元组

字典

集合

数据结构的应用

字符串与列表互转

列表与元组互转

列表与字典互转

字典中复杂数据的解析和精确子段的获取:


变量

        变量即是值可以变的量,是程序在内存中申请的一块用来存放数据的空间,所以变量就是把程序运算过程中的临时结果集数据存储到内存⾥⾯,以备后⾯的代码继续调用。变量在我们定义的时候,它并不会占用内存空间,在我们调用后,变量的⽣命周期也就结束

如:name   =  "郑州"   ,my_age="18" 

   变量名     变量值

输入输出

输入:

username = input("请输入用户名:")

passwd = input("请输入密码:")

输出:

print("用户名:",username)

print("密码:",passwd)

print("变量类型:",type(username),type(passwd))

print("变量长度:",len(username),len(passwd))

字符串

 字符串要求必须用引号括起来,双引号和单引号都行。如:a ='HelloWorld'    b ="HelloWorld"

字符串格式化输出: 

name=input('请输⼊您的姓名:\n')
age=int(input('请输⼊您的年龄:\n')) 
print('您的姓名:%s,您的年龄:%d'%(name,age))

输出以后的格式: 

请输⼊您的姓名:
菜鸟
请输⼊您的年龄:
18
您的姓名:菜鸟,您的年龄:18

还可以使⽤关键字format,上例修改后: 

print('您的姓名:{0},您的年龄:{1}'.format(name,age))

编码解码

Python的默认编码是ascll,Python3的默认编码是unicode,由于unicode比较耗性能,占⽤空间⽐ascll的空间多⼀倍,所以就有了utf-8的编码。

在计算机的内存中,统⼀使⽤unicode的编码,如果需要把内存的数据保存到硬盘或者是传属到另外⼀个地⽅,就需要转为utf-8的编码,但是从硬盘某地⽅读取⽂件内容,就会把utf-8的编码转为unicode的编码存储到内存中。

编码:就是把str的数据类型转为bytes的数据类型的过程,使⽤到的关键字是encode
解码: 把bytes的数据类型转为str的数据类型的过程,使⽤到的关键字是decode

str1="Python"
byte_str=str1.encode("utf-8")
print('编码后类型:',type(byte_str))
str_byte=byte_str.decode("utf-8")
print('解码后类型:',type(str_byte))


编码后类型: <class 'bytes'>
解码后类型: <class 'str'>

    例如

import  requests
r=requests.get(url='https://so.gushiwen.org/gushi/sanbai.aspx')
print(r.content.decode('utf-8'))

  不解码的话 看到的就是二进制的乱码。编码和解码这部分的知识体系主要应⽤于API的⾃动化测试和获取到的数据

python数据结构

列表

list1=['Java','Go']

列表的特点:
    可存放多个值
    按照从左到右的顺序定义列表元素,下标从0开始顺序访问
    列表是有序的
    列表也是可变化的,也就是说可以根据列表的索引位置来修改列表的值

往列表里加元素:
    append:添加的列表是在列表的最后⼀位 
    insert:根据⾃⼰的需求insert到列表的索引位置

list1.append("Python")
输出后的list1:list1=['Java','Go','Python']
list1.insert(0,'PHP')
输出后的list1:list1=['PHP','Java','Go']

列表的几种常见方法 :

list1=['Java','Go','Python','PHP']
#count:列表中的对象在列表中存在⼏位
print('python在列表中存在⼏位:',list1.count('Python'))
#寻找出对象的索引信息
print('Python在列表⾥⾯的索引信息:',list1.index('Python'))
#pop:默认删除列表⾥⾯的最后⼀位对象并且返回来
print('删除的对象返回来:',list1.pop())
#remove:在列表⾥⾯删除指定的元素信息
list1.remove('Python')
print('在列表⾥⾯删除Python的对象:',list1)
#新增⼀个可interable的对象信息
list1.extend(['selenium','appium'])
#clear 列表的清空
list1.clear()
print('清空后的列表内容:{0},列表⻓度:{1}'.format(list1,len(list1)))


list1=['Java','Go','Python','PHP']
#根据列表的索引位置来修改列表的值 
list1[0]=1

[1, 'PHP', 'Java', 'Go']

元组

list的是可变的,⽽tuple刚好,是不可变的,但是tuple⾥⾯的对象内容是可变的,当tuple⾥⾯的对象并且只有⼀个的时候,记得需要加,如果不加的话,就不再是tuple的数据类型,⽽是字符串的数据类型。

tuple类⾥⾯关于操作元组的⽅法:

tuple1 = ('Python', 'Go', 'Java', ['Selenium', 'Appium'])
print("Go在tuple1中的索引位置:", tuple1.index('Go'))
print("Go在tuple1中的个数:", tuple1.count('Go'))

tuple的对象是不可以变化,但是⾥⾯对象的值可以改变:

tuple1=('Python','Go','Java',['Selenium','Appium'])

# 修改tuple第四个对象的值
tuple1[3][0] = 'WebDriver'
print('修改tuple对象的值:', tuple1)
# 尝试修改tuple⾥⾯的值
tuple1[0] = 'python'

修改tuple对象的值: ('Python', 'Go', 'Java', ['WebDriver', 'Appium'])
Traceback (most recent call last):
  File "C:/Users/94222/PycharmProjects/pythonProject/aaa.py", line 30, in <module>
    tuple1[0] = 'python'
TypeError: 'tuple' object does not support item assignment

字典

字典是⽆序的,这是字典的⼀个特性,它的第⼆个特性是字典可以使⽤key-value的⽅式来存储数据,⽬前其实基于REST API的⽅式数据都是基于key-value的⽅式来存储数据的,⽐如基于JSON

的格式的字符串的数据。字典⾥⾯常⽤的关键字是dict

dict1 = {'name': 'xcj', 'age': 18, 'address': 'shanghai', 'work': 'test'}
# 获取字典⾥⾯所有的key值
for item in dict1.keys():
    print(item)

#修改字典里name的value值
dict1['name'] = 'qwe'

print(dict1)


# 字典⾥⾯增加新的值内容
dict1['薪资'] = 30
print('增加内容后的字典:', dict1)
# 两个字典的合并
dict2 = {'company': 'saic'}
dict1.update(dict2)
print('两个字典合并后的内容:', dict1)
# 字典的循环输出
for key, value in dict1.items():
    print(key, value)

增加内容后的字典: {'name': 'qwe', 'age': 18, 'address': 'shanghai', 'work': 'test', '薪资': 30}
两个字典合并后的内容: {'name': 'qwe', 'age': 18, 'address': 'shanghai', 'work': 'test', '薪资': 30, 'company': 'saic'}
name qwe
age 18
address shanghai
work test
薪资 30
company saic

字典排序:

 字典是⽆序的,所以想实现字典的排序,使⽤到的关键字是sorted,可以根据诉求对字典进⾏key或者value的值内容对字典来进⾏排序

dict1 = {'name': 'aaa', 'age': '18', 'address': 'shanghai', 'work': 'test'}
# 按照key来对字典进⾏排序
key_dict1 = sorted(dict1.items(), key=lambda item: item[0])
print('依据key对象对字典排序后的结果信息:\n', key_dict1)
# 根据value来对字典进⾏排序
value_dict1 = sorted(dict1.items(), key=lambda item: item[1])
print('依据value对象对字典排序后的结果信息:\n', value_dict1)

依据key对象对字典排序后的结果信息:
 [('address', 'shanghai'), ('age', '18'), ('name', 'aaa'), ('work', 'test')]
依据value对象对字典排序后的结果信息:
 [('age', '18'), ('name', 'aaa'), ('address', 'shanghai'), ('work', 'test')]

集合

集合是无序和无索引的集合。在 Python 中,集合用花括号编写

thisset = {"apple", "banana", "cherry"}
print(thisset)

{'banana', 'cherry', 'apple'}#注释:集合是无序的,因此您无法确定项目的显示顺序

要将一个项添加到集合,请使用 add() 方法。

thisset = {"apple", "banana", "cherry"}

thisset.add("orange")

要向集合中添加多个项目,请使用 update() 方法。

thisset = {"apple", "banana", "cherry"}

thisset.update({"orange", "mango", "grapes"})
print(thisset)

获取set的长度 

要确定集合中有多少项,请使用 len() 方法。

合并两个集合

在 Python 中,有几种方法可以连接两个或多个集合。

您可以使用 union() 方法返回包含两个集合中所有项目的新集合,也可以使用 update() 方法将一个集合中的所有项目插入另一个集合中:

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}

set3 = set1.union(set2)
print(set3)

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}

set1.update(set2)
print(set1)

数据结构的应用

在Python的各个数据类型中,经常由于⼯作的需要需要对各个不同的数据类型进⾏转换,⽐如字符串与列表,列表与字符串,元组与列表,列表与字典,以及字典与列表等,列表与集合

字符串与列表互转

str1 = "Hello Python"
# 把字符串的数据类型转为列表的数据类型
list_str = str1.split(' ')
print('字符串转为列表数据类型:', list_str)
# 把列表的数据类型转为字符串
str_list1 = ','.join(list_str)
print('列表转为字符串的数据类型:', str_list1)

列表与元组互转

'''元组与列表之间的互转'''
tuple1=("Pyhton","Go","Java","Php","C")
#元组转为列表
list_tuple=list(tuple1)
print('元组转为列表:{0},数据类型:{1}'.format(list_tuple,type(list_tuple)))
#列表转为元组
tuple_list=tuple(list_tuple)
print('列表转为元组:{0},数据类型:{1}'.format(tuple_list,type(tuple_list)))


元组转为列表:['Pyhton', 'Go', 'Java', 'Php', 'C'],数据类型:<class 'list'>
列表转为元组:('Pyhton', 'Go', 'Java', 'Php', 'C'),数据类型:<class 'tuple'>

列表与字典互转

# 把列表转为字典
dict_list = dict(enumerate(list1))
print('列表转为字典:{0},数据类型:{1}'.format(dict_list, type(dict_list)))
# 把字典转为列表
list_dict = list(dict_list.items())
print('字典转为列表:{0},数据类型:{1}'.format(list_dict, type(list_dict)))

列表转为字典:{0: 'Python', 1: 'Go', 2: 'Java', 3: 'C'},数据类型:<class 'dict'>
字典转为列表:[(0, 'Python'), (1, 'Go'), (2, 'Java'), (3, 'C')],数据类型:<class 'list'>

字典中复杂数据的解析和精确子段的获取:

params = {
    'status': 0,
    'msg': 'ok',
    'datas': [
        {
            'name': 'wu',
            'age': 18,
            'address': 'xian',
            'company': ['google', 'microsoft', {'salary': 10000}]
        }
    ]}
# 获取params 中的'salary'的值
list1 = params['datas'] # 获取字典里的datas的全部数据
a = list1[0]['company'] # datas是列表用索引值list1[0],获取到company的数据
sal = a[2]['salary']    # 
# print(list1)
# print(a)
print(sal)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟学识

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值