Python运维开发入门到精通学习 Day1、2

目录

Day 1 本节内容:

用户输入函数input

字符串内引用变量格式化输出

密码秘文函数 getpass

流程控制语句

range函数

Day 2 本节内容:

1.模块初识

2.三元运算与字符串编码解码

3.列表

4.元组

5.字符串 常用参数

6.字典


Day 1 本节内容:

用户输入函数input

字符串内引用变量格式化输出

密码秘文函数 getpass

流程控制语句

range函数

一、 用户输入函数 input()

name = input('Username:')
print(name)


二、字符串内引用变量,格式化输出。

1. %s 字符串 ;%d 整数类型 ;%f 浮点数类型
info = 'name = %s age = %d num = %f' % ('zjl',18,1.1)
print(info)
#name = zjl age = 18 num = 1.100000

2. format函数
info = '姓名 {name} ;年龄 {age} ;num {num}'.format(name='zjl',age=18,num=20)
info = '姓名 {0} ;年龄 {1} ;num {2}'.format('zjl',18,20)
print(info)
#姓名 zjl ;年龄 18 ;num 20

3. 定义变量 name age num,f'{name}' 引用
info = f'姓名 {name} ;年龄 {age} ;num {num}'


三、密码 秘文函数 getpass
import getpass
name = input('Your username:')
password = getpass.getpass('Your Password:')
print(name,password)


四、流程判断语句
1.
if n == 1:
    print('值为1')
elif n == 2:
    print('值为2')
else:
    print('1和2都不对!')

2.
while xxx:
    if xxx:
        break
    else:
        xxx
else:
    xxxxxx

continue 跳出这一次循环
break 跳出此循环,后面不再执行
pass  什么都不做,返回循环
exit() 退出,可输出自定义内容


五、 range函数
for i in range(1,10,2):
    print(i)
#步长为2,输出 1 3 5 7 9

Day 2 本节内容:

sys、os模块

三元运算、编码与解码

列表

元组

字符串常用参数

字典

1.模块初识

1. sys模块
import sys
print(sys.path) #打印环境变量
sys.argv[1] #参数1

2. os模块
import os   
txt = os.system('dir') #执行系统命令 输出到屏幕,不保存结果
txt = os.popen('dir').read() #执行系统命令并保存结果到临时的内存地址中,通过read从内存地址读取内容
os.mkdir('new_dif') #创建目录

2.三元运算与字符串编码解码

1.三元运算
a,b,c = 1,3,5
d = a if a < b else c
print(d) #值为1

2.编码与解码
Python3中内存里的所有字符都是unicode,unicode是万国码
python3文件默认编码是 utf-8
python2文件默认编码是 ASCII

GBK编码:decode解码   转换为   Unicode:encode编码   转换为   utf-8
任意编码转换成Unicode的过程,都叫解码;Unicode转换成其他编码都要编码

msg.encode(encoding='utf-8') # 编码,encoding用于指定将原字符编码为什么格式的字符
msg2.decode(encoding='utf-8') # 解码,encoding用于指定进行解码时采用的字符编码,与字符的编码类型一致

例:gbk编码字符在mac电脑中如何不显示乱码
Python2中:gbk转换为unicode
gbk_msg = '我爱北京天安门'  # gbk格式的字符
unicode_msg = gbk_msg.decode() # 解码为unicode字符
print(unicode_msg) 

python3中: gbk转成unicode转换utf-8
msg = '我爱北京天安门' # utf-8字符
gbk_msg = msg.encode('gbk') # 编码为gbk字符
unicode_msg = gbk_msg.decode('gbk') # 使用gbk去解码,成为unicode字符
utf_8_msg = unicode_msg.encode('utf-8') # 将unicode编码为utf-8




3.列表

list = [0,1,2,3,4,5]

列表切片
print(list[0:3]) # [0, 1, 2]
print(list[-3:]) # [3, 4, 5]
print(list[0:6:2]) # [0, 2, 4] 步长为2

列表增删改查
list.append(6) # 在列表结尾添加元素 [0, 1, 2, 3, 4, 5, 6]
list.insert(3,'test') # 指定下标添加元素 [0, 1, 2, 'test', 3, 4, 5, 6]
list[3] = 'test2' # 指定下标修改元素 [0, 1, 2, 'test2', 3, 4, 5, 6]

list.remove('test') # 指定元素名称删除 [0, 1, 2, 4, 5]
del list[2] # 指定下标删除元素 [0, 1, 3, 4, 5] 
list.pop() # 默认删除结尾元素,也可指定下标删除元素 [0, 1, 2, 3, 4]

其他用法
print(list.index('test')) # 查找列表中'test'元素的下标值
print(list.count('test')) # 查找列表中'test'元素的数量
list.clear() # 清空列表内容
list.reverse() # 将列表内容元素的顺序反过来
list.sort() # 将列表内容元素排序,特殊符号>数字>大写字母>小写字母
list.extend(list2) # 将list2列表元素合并到list】

list.copy() # 浅copy,只复制第一层,第二层指向内存地址
name1 = ['ai','bi','ci',['yy','dd'],'di']
name2 = name1.copy()
name1[0] = 'zi'
name1[3][0] = 'zz'
print(name1) # ['zi', 'bi', 'ci', ['zz', 'dd'], 'di'] 修改第一层不影响
print(name2) # ['ai', 'bi', 'ci', ['zz', 'dd'], 'di'] 修改第二层会影响,都会改掉

'''
import copy
name2 = copy.copy(name1) # 也是浅copy
name2 = copy.deepcopy(name1) #深 copy,完全复制一份,不受影响
'''

4.元组

元组和列表差不多,只不过它一旦创建便不能在修改,所以也叫只读列表。

names = ('alex','jack','tom','lili')
# 他只有两个方法,count和index

5.字符串 常用参数

name = 'jack'
name.capitalize() #首字母大写
name.title() #空格分隔的每段内容的首字母大写
name.count('j') #统计字符串中'j'的数量
name.endswith('ck') #判断字符是否以’ck‘结尾
name.startswith('j') #判断字符是否以’j‘开头
name.isalnum() # 判断字符串是否为阿拉伯数字,包含字母和数字
name.isalpha() # 判断字符串是否为纯英文字符
name.isdigit()  # 判断字符串是否为整数
name.isspace() # 判断字符串是否为空格
name.expandtabs(tabsize=30) #如果字符串中包含'\t',将table键转换为30个空格
name.find('a') #查找字符a的索引

name  = 'name is {name} and  {year} olds'
1.字符串内引用变量
print(name.format(name='XiaoMing',year=18))
#name is XiaoMing and  18 olds
1.字符串内引用变量,传递参数以字典的格式
print(name.format_map({'name':'XiaoLi','year':20}))
#name is XiaoLi and  20 olds

2.自定义连接符拼接字符串或列表中元素的值,列表中的元素也要是字符串类型
print('_'.join('123'))
#1_2_3
print("_".join(['1','2','3']))
#1_2_3

3.在字符串两边,添加50个长度的'_'
name = 'jack'
print(name.center(50,'_'))
#_______________________jack_______________________

3.字符串长50,长度不够后面用*补全
print(name.ljust(50,'*')) 
#name is {name} and  {year} olds*******************

4.字符串长50,长度不够前面用*补全
print(name.rjust(50,'*'))
#*******************name is {name} and  {year} olds

5.把字符中字母全部转换为小写
print(name.lower())

6.把字符中字母全部转换为大写
print(name.upper())

7.去除字符串两边的空格和换行,lstrip只去除左边的,rstrip只去除右边的
print(name.strip())

8.转换替换字符串中多个字符的值
passwd = str.maketrans('abcde','123yz') # 将'abcde'分别对应成'123yz'
print('fabcdef'.translate(passwd)) #传入转换的字符
#f123yzf

9.替换字符串内某个字符的值
print('AAaBB'.replace('AAa','BB')) # 将字符串中 AAa 替换为 BB
#BBBB

10.默认以空格将字符串转换为列表
print('A B CD'.split())
#['A', 'B', 'CD']
print('A B CD'.split('B'))
#['A ', ' CD']

.splitlines()以换行符将字符串转换为列表,与 name.split('\n')效果相同

6.字典

字典是一种key-value的数据类型。特性:字典是无序的,没有下标;key必须是唯一的,所以天生去重。

student_dict = {
    'student1':'XiaoLi',
    'student2':'XiaoYao',
    'student3':'XiaoZZ',
}

1.字典的增删改查:
student_dict['student1'] = 'XiaoAA' # 改

student_dict['student4'] = 'ZhangSi' # 增

.setdefault 增加元素,若该key已经存在,则不修改;若key不存在,则创建。
student_dict.setdefault('student4',['CehngLong','XiaoZi'])

del student_dict['student4'] # 删除
student_dict.pop('student1') # 删除

print(student_dict.get('student4')) # 查,返回value;若没有此key,返回None
print('student4' in student_dict) # 返回True或False
print(student_dict['student3']) # 查,返回value;若没有则会报错

2.打印字典的所有value
print(student_dict.values())
#dict_values(['XiaoAA', 'XiaoYao', 'XiaoZZ', 'ZhangSi'])

3.打印字典的所有key 
print(student_dict.keys())
#dict_keys(['student1', 'student2', 'student3', 'student4'])

4. .update 合并两个字典内容,重复的key 值会覆盖掉,新的key value会创建
student_dict = {
    'student1':'XiaoLi',
    'student2':'XiaoYao',
    'student3':'XiaoZZ',
}

student2 = {
    'student1':'AAaa',
    'student4':'Xx'
}

student_dict.update(student2)
print(student_dict)
# {'student1': 'AAaa', 'student2': 'XiaoYao', 'student3': 'XiaoZZ', 'student4': 'Xx'}


5. 将字典转换为列表
print(student_dict.items())
# dict_items([('student1', 'AAaa'), ('student2', 'XiaoYao'), ('student3', 'XiaoZZ'), ('student4', 'Xx')])

6. .fromkeys 初始化一个字典,将列表中的所有key赋值同一个value;也可用作修改现有字典中多个key为同一个value
#注意:类似于浅copy,修改第一层数据互不影响,第二层数据指向内存地址 若修改都会受影响
NewDict = dict.fromkeys(['Aa','Bb','Cc'],100)
print(NewDict)
#{'Aa': 100, 'Bb': 100, 'Cc': 100}
NewDict['Aa'] = 90
print(NewDict)
#{'Aa': 90, 'Bb': 100, 'Cc': 100}

NewDict2 = dict.fromkeys(['Aa','Bb','Cc'],['number',100])
NewDict2['Aa'][1] = 90
print(NewDict2)
#{'Aa': ['number', 90], 'Bb': ['number', 90], 'Cc': ['number', 90]}

7.遍历字典的key和value
for i in NewDict:
    print(i,NewDict[i])

# .items此方式有一个字典转换列表的过程,如果数据量大不建议用此方式
for k,v in NewDict.items():
    print(k,v)

#
Aa 90
Bb 100
Cc 100

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值