day2(Alex python)

版权声明:本文为博主原创文章,转载请注明作者和出处。https://blog.csdn.net/xq920831/article/details/81981837

进行第二天的学习记录。

今天主要学习了调用python库,数据类型,列表,元组。

1. 首先是sys库

# -*- coding:utf-8 -*-
# Author: Agent Xu
import sys

print(sys.path)
print(sys.path[3]) #取值
print(sys.argv)  #当前脚本的相对路径

2. 接着os库

# -*- coding:utf-8 -*-
# Author: Agent Xu

import os

print(os.system('dir')) #打印结果在屏幕上

cmd_1 = os.system('dir') #执行命令,不保存结果,只显示成功执行的结果0
print(cmd_1)

cmd_2 = os.popen('dir') #执行命令保存结果为内存地址
print(cmd_2)

cmd_3 = os.popen('dir').read() #执行命令并打印存储地址对应的内容
print(cmd_3)

os.mkdir('new_dir') #创建新目录

3. 三元运算:

a,b,c = 1,3,5

d = a if a>b else c
print(d)
#5

4. 编码与反编码

#encode和decode
mm = '你好'

print(mm)
#你好
print(mm.encode(encoding='utf-8'))
#b'\xe4\xbd\xa0\xe5\xa5\xbd'
print(mm.encode(encoding='utf-8').decode(encoding='utf-8'))
#你好

5. 列表为重点内容,下面列出一些列表的一些常用方法

# -*- coding:utf-8 -*-
# Author: Agent Xu
names = ['xiaohong','xiaohua','xiaoxu','xiaosun']

print(names)#打印列表
#['xiaohong', 'xiaohua', 'xiaoxu', 'xiaosun']

print(names[1])# 打印列表第二个值
#xiaohua
print(names[:2])# 打印列前二个值
#['xiaohong', 'xiaohua']
print(names[-2:])# 打印列表后二个值
#['xiaoxu', 'xiaosun']
print(names[1:3])#打印列表第二和第三个值
#['xiaohua', 'xiaoxu']

names.append('xiaodong') #在列表最后追加一个值
print(names)
#['xiaohong', 'xiaohua', 'xiaoxu', 'xiaosun', 'xiaodong']

names.insert(2,'ddd')#在列表指定位置插入值
print(names)
#['xiaohong', 'xiaohua', 'ddd', 'xiaoxu', 'xiaosun', 'xiaodong']

names[2] = '666' #改值
print(names)
#['xiaohong', 'xiaohua', '666', 'xiaoxu', 'xiaosun', 'xiaodong']

names.remove('666')
#或者 del names[2]
print(names)
#['xiaohong', 'xiaohua', 'xiaoxu', 'xiaosun', 'xiaodong']

names.pop() #没有值则默认删除最后一个,所以上述names.remove('666')=del names[2]=names.pop(2)
print(names)
#['xiaohong', 'xiaohua', 'xiaoxu', 'xiaosun']

print(names.index('xiaohong')) #根据值打印位置
#0

print(names.count('xiaohong'))#统计改值的个数
#1

names.reverse() #翻转整个列表
print(names)
#['xiaosun', 'xiaoxu', 'xiaohua', 'xiaohong']

names.clear() #清空列表
print(names)
#[]

names1 = ['Chenlong','#lilei','xiaolong','6ziji']
names1.sort() #列表内容排序
print(names1)
#['#lilei', '6ziji', 'Chenlong', 'xiaolong']
# 排序优先级为:特殊字符>数字>大写字母>小写字母

names2 = ['1','2','3','4']
names1.extend(names2) #合并列表,原列表不变
print(names1,names2)
#['#lilei', '6ziji', 'Chenlong', 'xiaolong', '1', '2', '3', '4'] ['1', '2', '3', '4']

del names2  #删除列表

6. 还有一些进阶版的列表操作:

关于copy函数的

names3 = ['xq','xxqq',['1','2','3'],'666'] #列表套列表
names4 = names3.copy()#复制
print(names3)
#['xq', 'xxqq', ['1', '2', '3'], '666']
print(names4)
#['xq', 'xxqq', ['1', '2', '3'], '666']
names3[1] = 'xiaosun'#第一层列表改值
print(names3)
#['xq', 'xiaosun', ['1', '2', '3'], '666']
print(names4)
#['xq', 'xxqq', ['1', '2', '3'], '666']  注意这里copy的names4没变
names3[2][1] = '5'#第二层列表改值
print(names3)
#['xq', 'xiaosun', ['1', '5', '3'], '666']
print(names4)
#['xq', 'xxqq', ['1', '5', '3'], '666'] 注意这里copy的names第二层也改了
#神奇不神奇!
#总结:copy函数为浅copy,只能copy第一层(内存机制决定)
如果是等号赋值:names4 = names3 那么改第一层names4也会变,用的同一块内存地址
#要想copy的数据完全独立则需要
import copy

#names4 = copy.deepcopy(names3)#深copy,copy的数据完全独立
#列表的循环
names5 = ['1','2','3','4','5']
for i in names5:
    print(i) #挨个全打印

#跳着打印
print(names5[0:-1:2]) #从开始到结尾间隔2打印
print(names5[::2]) #和上一句结果一样,python列表调用中0和-1可以省略不写

7. 元组

元组和列表差不多,也是存一组数,不过它一经创建变无法更改,所以又叫只读列表。

# -*- coding:utf-8 -*-
# Author: Agent Xu

names = ('xq','sun')
#元组操作只有两种:count和index
print(names.count('xq'))
#1
print(names.index('xq'))
#0

明天会练习一个购物车程序。

猜你喜欢

转载自blog.csdn.net/xq920831/article/details/81981837
今日推荐