python3自动化运维学习之路-第一天

概要:python简介、HelloWorld程序、变量、字符编码、用户交互程序、if...else、while、for、常用的数据类型、文件基本操作

一、python简介

首先,我们普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。而不同的编程语言,干同一个活,编写的代码量,差距也很大。

比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。

二、HelloWorld程序

1 print("Hello World")
View Code

三、变量

变量只能使用字母、下划线、数字的组合,并且不能以数字开头。

常用的变量命名方法有:

  下划线命名法:  gf_name = "xxx"    #python建议使用这种命名方法

扫描二维码关注公众号,回复: 1473787 查看本文章

  驼峰命名法:   GFName = "xxx" 

另外大写表示是常量,建议不要更改,如:

  PIF = 12345

python的保留字不能用于变量命名

['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

这个例子可以注意一下:name2是指向name所指向的 "alex li"这个字符串。

#!/usr/bin/env python3
#author:Alnk

name = "alex li"
name2 = name
print("my name is ",name,name2)

name = "paoche ge"
print(name,name2)
View Code

 四、字符编码

二进制:计算机底层只认识0和1

ASCII码:8位1字节,最多可以表示255个字符

GB2312:7000多个汉字,1980年

GBK:21000多个汉字,兼容GB2312,1995年

GB18030:27000多个汉字,还收录了藏文,蒙文,维吾尔文等,2000年

ASCII --> GB2312 --> GBK --> GB18030

手机,mp3一般只支持GB2312,pc必须支持GB18030编码

unicode(万国码):兼容所有的字符编码,2 个字节 16位,65525个字符,但是每个字符占2字节,相对于ASCII码来说存在浪费。

utf-8:解决unicode中关于英文字符浪费的问题,英文字符占1个字节,中文字符占3个字节

 

五、用户交互程序

 input()函数:输入的值都属于字符串

利用int()函数获取整数

利用float()函数获取浮点数

利用 getpass 模块进行密文输入

格式化输出

% 进行格式化输出

输出结果

format格式化输出方法1

输出结果

方法2

输出结果

六、if ... elif ...else 判断语句

if .. else 语句:如果 if 条件成立则执行 if 语句后面的代码,然后结束。否则执行 else 语句的代码。

#!/usr/bin/env python3
#author:Alnk

_username = "alnk"
_password = "123"

username = input("username: ")
password = input("password: ")

if _username == username and _password == password:
    print("welcome name %s login..." % username)
else:
    print("Invalid usernmae or password!")
View Code

if ... elif ... else :先判断 if 条件是否成立,如果成立,则执行 if 语句的代码,判断结束。否则再判断 elif 语句条件是否成立,如果成立则执行 elif 语句的代码,否则执行 else 语句的代码。

#!/usr/bin/env python3
#author:Alnk

age_of_oldboy = 56

guess_age = int(input("guess age:"))

if guess_age == age_of_oldboy:
    print("yes,you got it.")
elif guess_age > age_of_oldboy:
    print("think smaller...")
else:
    print("think bigeer!")
View Code

 七、循环语句

while循环语句:当条件不满足时才停止循环。

break:终止最深层的循环,一般用于while循环和for循环。

continue:跳出本次循环,进入到下一次循环,一般用于while循环和for循环。

while ... else 语句:当while的条件不成立时才走else

#!/usr/bin/env python3
#author:Alnk

age_of_oldboy = 56
count = 0

while count < 3:
    guess_age = int(input("guess age:"))

    if guess_age == age_of_oldboy:
        print("yes,you got it.")
        break
    elif guess_age > age_of_oldboy:

        print("think smaller...")
    else:
        print("think bigeer!")
    count +=1
else:
    print("你输错次数太多,结束")
while ... else

猜数字游戏,猜错三次提示是否继续

#!/usr/bin/env python3
#author:Alnk

age_of_oldboy = 56
count = 0

while count < 3:
    guess_age = int(input("guess age:"))
    if guess_age == age_of_oldboy:
        print("yes,you got it.")
        break
    elif guess_age > age_of_oldboy:
        print("think smaller...")
    else:
        print("think bigeer!")
    count +=1
    if count == 3:
        continue_confim = input("do you want to keep guessing?(y/n)")
        if continue_confim != "n":
            count = 0
View Code

 for循环

 for循环打印99乘法表

#!/usr/bin/env python3
#author:Alnk
#99乘法表

for i in range(1,10):
    for j in range(1,i+1):
         print("%s * %s ="%(j,i),i*j,end='\t')
    print()
View Code

for ... else 语句:for代码块正常结束则执行else语句

#!/usr/bin/env python3
#author:Alnk

age_of_oldboy = 56
count = 0

for i in range(3):
    guess_age = int(input("guess age:"))

    if guess_age == age_of_oldboy:
        print("yes,you got it.")
        break
    elif guess_age > age_of_oldboy:

        print("think smaller...")
    else:
        print("think bigeer!")
    count +=1
else:
    print("你输错次数太多,结束")
View Code

八、常用的数据类型

1.数字

  int

  float

2.布尔值

  真 或 假

  0 或 1

3.字符串

  字符串常用功能:

 1 #!/usr/bin/env python3
 2 #author:Alnk
 3 '''
 4 name = 'eric'
 5 name = str('eric')
 6 result = name.__contains__('er')   #包含
 7 print(result)
 8 
 9 name = 'eric'
10 result = name.capitalize()     #首字母大写,其他字符小写
11 print(result)
12 
13 name = 'ERIC'
14 result = name.casefold()     #首字母小写,其他字母不变
15 print(result)
16 
17 name = 'eric'
18 result = name.center(20,'*')    #居中
19 print(result)
20 
21 name = 'sadfasfasdfasdfasdfasdfasdfwrdhtik'
22 result = name.count('d')     #字符出现的次数
23 print(result)
24 result = name.count('d',0,10)     #0-10位置字符d出现的次数
25 print(result)
26 
27 name = '李成果'
28 result = name.encode('gbk')     #转码
29 print(result)
30 
31 name = 'Alnk'
32 result = name.endswith('k') #判断字符串是否以 'k' 结尾    startswith:以什么开头
33 print(result)
34 result = name.endswith('k',0,3) #判断字符串是否以 'k' 结尾,起始位置 0,3
35 print(result)
36 
37 name = 'a\tlnk'
38 result = name.expandtabs()  #把 tab 键转化为8个空格
39 print(result)
40 
41 name = 'alnk'
42 result = name.find('ln')  #返回字符串的索引,也可以确定起始和结束位置,如果没找到返回-1
43 print(result)
44 
45 name = 'alnk'
46 result = name.index('x')  #返回字符串的索引,也可以确定起始和结束位置,如果没找到直接报错
47 print(result)
48 
49 name = 'alnk {0}  as {1}'
50 result = name.format('shuaiguo','aaa')   #拼接
51 print(result)
52 
53 name = ['a','l','n','k']
54 result = "--".join(name)  #"--" 分隔符,join 拼接
55 print(result)
56 
57 name ='alnk'
58 result = name.ljust(8,'=')      #左对齐, rjust:右对齐
59 print(result)
60 
61 name = "ALNK"
62 result = name.lower()  #所有字符变成小写
63 print(result)
64 
65 name = '    alnk     x '
66 result = name.lstrip()   #去除左边空格,rstrip 去除右边空格
67 print(result)
68 
69 name = 'alnkisbi'
70 result = name.partition('is') #以is为分割符,分割成3部分,组成一个元组
71 print(result)
72 
73 name = 'alnkisaaaa'
74 result = name.replace('a','===') #把字符'a' 全部替换成 '==='
75 result = name.replace('a','===',1) #把字符'a' 替换成 '===',只转化第一个
76 print(result)
77 
78 name = 'alnkisshuaiguoisaaa'
79 result = name.split('is')  #指定分割的字符,并生成一个列表
80 print(result)
81 
82 name = 'Alnk'
83 result = name.swapcase() #大小写反转
84 print(result)
85 
86 name = 'alnk'
87 result = name.zfill(10) #左对齐,补0
88 print(result)
89 '''
View Code

    移除空白:strip()

             

    分割:split() 就是将一个字符串按照指定的分隔符分割成多个字符串组成的列表

    

     长度:len()

    

    索引

    

    切片

    

4.列表

  列表常用操作:

    索引:和字符串的索引差不多

    

    切片:和字符串的切片差不多

    

    追加:append()

    

    删除:pop()、remove()

    

    

    长度:len()

    

    包含:in

    

    统计:count()

    

    插入:insert() 在指定的索引位置插入

        

    反转:reverse()

    

    排序:sort()

    

    扩展:extend()

    

    清除:clear()  清空这个列表里的所有元素,并不会删除这个列表

    

    删除列表中多个重复的元素

    

5.元组

  元组的元素不可修改

  元组的元素的元素可修改

  常用操作:

    索引

    统计

    切片

    长度

    循环

    包含

6.字典

  无序的键值对,键不能重复。

   常用操作:

    索引

    

    新增

    

    删除:del

    

    键、值、键值对

    键:keys  值:values  键值对:items

    for k,v in dic.items:

      pass

    循环

    长度

九、运算符

 算术运算符

  +    加

  -    减

  *    乘

  /    除

  //     取整除,返回商的整数部分

  %   取模,返回除法的余数    

  **   幂运算

比较运算符

  ==    等于

  !=    不等于

  >    大于

  <    小于

  >=   大于等于

  <=   小于等于

赋值运算

  =     简单的赋值运算符

  +=   加法赋值运算符

  -=    减法赋值运算符

  *=    乘法赋值运算符

  /=     除法赋值运算符

  %=   取模赋值运算符 

  **=           幂赋值运算符  

  //=            取整除赋值运算符

位运算

  &

  |

  ^

  ~

  <<

  >>

逻辑运算符

  and

  or

  not

成员运算符

  in

  not in

身份运算符

  is

  is not

  

十、一切事务都是对象

对于python来说,一切事务都是对象,对象基于类创建

例子: 

s1 = "alnk abcd"

s2 = str("alnk abcdefg")

这两种方法都可以创建一个字符串对象,第二种方法是调用了 str类 创建s2对象。s2 是 str类 的对象。同理,int、float、list、tuple、dict、set等都是通过调用类创建对象的方法。

 

十一、文件基本操作

模式

  r      读取模式

  r+    读写模式

  rb    二进制读取模式

  rb+     二进制读取和写入模式

  w     写入模式,如果文件存在,会覆盖原来的文件内容;如果不存在,则创建该文件  

  w+   写入和读取模式,如果文件存在,会覆盖原来的文件内容;如果不存在,则创建该文件

  wb      二进制格式写入,如果文件存在,会覆盖原来的文件内容;如果不存在,则创建该文件

  wb+    二进制格式写入和读出文件,如果文件存在,会覆盖原来的文件内容;如果不存在,则创建该文件

  a     追加模式,如果文件存在则指针位于文件的末尾;如果不存在,则创建该文件

  a+          追加和读取方式,如果文件存在则指针位于文件的末尾;如果不存在,则创建该文件

  ab          二进制格式追加,如果文件存在则指针位于文件的末尾;如果不存在,则创建该文件

  ab+       二进制格式读取模式,如果文件存在则指针位于文件的末尾;如果不存在,则创建该文件

猜你喜欢

转载自www.cnblogs.com/lichengguo/p/9140398.html