开篇导语

  • 整个Python运维开发教学采用的是最新的3.5.2版,当遇到2.x和3.x版本的不同点时,会采取演示的方式,让同学们了解。
  • 教学预计分为四大部分,Python开发基础,Python开发进阶,Python网页编程,Python项目实战
  • Python开发基础分为语法基础篇,文件基础篇,函数基础篇,模块基础篇
  • 语法基础篇中,我着重希望训练同学的是作为开发应该具备的一种逻辑思路。
  • 文件基础篇中,我们需要练习的是如何将数据永久性的存储在硬盘上,提供读,写。
  • 函数基础篇中,我重点是要引导同学们构建出整个代码架构的编写设计模式。只有逻辑和架构完全成型同学们才算是从思想上真正进入开发领域的大门。
  • 模块基础篇中,我们接触很多常用的模块,比如装饰器和生成器等。并通过这些模块来继续完善优化我们对整个代码架构的设计能力。
  • 至此,我们Python开发基础部分就结束了,大概60课时,15小节。

一,Python发展介绍

  1. 打开网页直接念百度百科
  2. 介绍下Python3.X优于Python2.7X的地方
  3. 企业Centos7.0将和Python3.0同步升级

二,Python的基础环境构建

在编译之前,我们先yum安装一些支持程序

yum -y install gcc gcc-c++ make autoconf readline readline-devel

2.1 Centos6.5升级Python2.7和Python3.5程序

升级Python2.7.13

[root@localhost ~]# tar xf Python-2.7.13.tgz -C /usr/src/
[root@localhost ~]# tar xf Python-2.7.13.tgz -C /usr/src/
[root@localhost Python-2.7.13]# ./configure --prefix=/usr/local/python27
[root@localhost Python-2.7.13]# make && make install
[root@localhost python27]# cd /usr/local/python27/
[root@localhost python27]# python -V
Python 2.6.6
[root@localhost python27]# which python
/usr/bin/python
[root@localhost python27]# mv /usr/bin/python /usr/bin/python26
[root@localhost bin]# ln -s /usr/local/python27/bin/python /usr/bin/python
[root@localhost bin]# python -V
Python 2.7.13

 

升级Python3.5.2

[root@localhost ~]# tar xf Python-3.5.2.tgz -C /usr/src/
[root@localhost ~]# cd /usr/src/Python-3.5.2/
[root@localhost Python-3.5.2]# ./configure --prefix=/usr/local/python35
[root@localhost Python-3.5.2]# make && make install
[root@localhost python35]# cd /usr/local/python35/bin/
[root@localhost bin]# ln -s /usr/local/python35/bin/python3 /usr/bin/python3
[root@localhost bin]# python3 -V
Python 3.5.2

修复yum仓库的编译错误

[root@localhost bin]# vim `which yum`
[root@localhost bin]# head -1 `which yum`
#!/usr/bin/python26 #修改这里

2.2 创建Python的vim初始练习环境

在家目录创建如下文件和内容

[root@localhost ~]# cat ~/.vimrc
set cursorlineset tabstop=4set shiftwidth=4set expandtabfunction PythonHeader()call setline(1,"#!/usr/bin/env python3")call setline(2,"# -*- coding:utf-8 -*-")call setline(3,"# author:你的名字")normal Gnormal onormal o
endfuncautocmd BufNewfile *.py call PythonHeader()map <F5> :!clear ;python3 % <CR>    #用Python3 执行当前shell

三,初识Python

3.1 解析器的写法

他们的区别?

#!/usr/bin/env python
#!/usr/bin/python

 

env是一个查找器,它会自动帮我们去找python这个可执行文件位置

3.2 第一个Python程序

在Linux下创建一个文件叫做hello.py

print("hello world!")

然后执行命令:python hello.py

[root@localhost ~]# python3 hello.py
hello world!

指定解释器:

如果想用类似于shell脚本一样的方式执行python脚本,例如:./hello.py,那么就需要在hello.py文件的头部指定解释器,如下:

#代码演示:#!/usr/bin/env python3print ("hello world!")#输出结果 [root@localhost ~]# ./hello.py hello world!

在交互器中执行代码

除了把程序写在文件中,还可以直接调用python自带的交互器运行代码。

[root@localhost ~]# python3
Python 3.5.2 (default, Dec 20 2017, 01:15:07) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> print("Hello world!") Hello world! 

3.3 Python的变量

Python是一种强制编译型语言,它不需要像类似C语言一样提前声明变量的类型,而是根据赋值的内容是什么自动确定变量的类型

>>> name = 123  #直接赋值数字
>>> type(name)
<class 'int'> #name为整型 >>> name = "hello world" #赋值字符串 >>> type(name) <class 'str'> #name为字符串类型 >>> name = "123" #给数字加双引号 >>> type (name) <class 'str'> #也会被Python认为是字符串 >>> name = hello world #如果字母不加双引号,Python会认为是数字,因此报错 File "<stdin>", line 1 name = hello world ^ SyntaxError: invalid syntax 

变量定义规则:

  • 变量名只能是字母,数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

关键字是什么?
类似Python程序默认的类型int,str还有系统环境变量等都是关键字

四,思考题与作业:利用Shell实现"模拟用户登录程序"

4.1 shell知识补充

(1)break,continue,return,exit循环控制语句作用演示
(2)脚本库函数functions引用

[root@localhost yunjisuan]# cat test.sh
#!/bin/bash. /etc/rc.d/init.d/functionsaction "服务运行成功!" /bin/true action "服务运行失败!" /bin/false [root@localhost yunjisuan]# sh test.sh 服务运行成功! [确定] 服务运行失败! [失败] 

4.2 shell实现用户登录验证程序

[root@localhost yunjisuan]# cat login.sh
#!/bin/bash
#user loginUser="yunjisuan"
Passwd="666666"
User2="yunjisuan2"
Passwd2="123123"
Lock=""function Title(){
cat<<KOF**************************   1,登录用户          **   2,退出              **************************
KOF
}function Login(){
#用户登录功能模块具体要求:
#0,先判断用户名是否被锁定,如果被锁定,禁止登陆。
#1,判断用户名是否正确,不正确重新输入
#2,已知用户名判断密码是否正确,如果不正确重新输入密码。
#3,密码输入3次如果全都错误,账户锁定(将用户名,放进变量Lock里)
#4,如何放进变量里:Lock="$Lock $user",通过grep -w精确匹配过滤.
#5,脚本一直不退出。除非,用户主动退出或者登陆成功!}while :
doclearTitleread -p "请输入你的选择:" Numcase $Num in1)Login;;2)exit;;*)echo "您的输入有误,请重新输入!"    sleep 2;;esac
done

转自Python运维开发基础01-语法基础 - 陈思齐 - 博客园 https://www.cnblogs.com/chensiqiqi/p/9163023.html

转载于:https://www.cnblogs.com/paul8339/p/9625508.html

Python运维开发基础01-语法基础【转】相关推荐

  1. Python运维开发基础09-函数基础【转】

    上节作业回顾 #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 实现简单的shell命令sed的替换功能import s ...

  2. Python运维开发基础10-函数基础【转】

    一,函数的非固定参数 1.1 默认参数 在定义形参的时候,提前给形参赋一个固定的值. #代码演示: def test(x,y=2): #形参里有一个默认参数 print (x) print (y) t ...

  3. 阅后即焚,Python 运维开发99速成

    2019独角兽企业重金招聘Python工程师标准>>> -欢迎大家订阅微信公众号:Python从程序猿到程序员 导读 本文篇幅较长,请收藏并耐心阅读 首先请读者原谅这个文章标题有些唬 ...

  4. day01.介绍python运维开发

    第1节:介绍python运维开发 课程的开场白: 学完次课程可以开发出高效的自动化软件.运维监控.聊天软件.网站等内容. 这个运维开发跟实际上的开发是有区别的,区别在我们是实现功能,但是不能向开发那样 ...

  5. Python运维开发工程师养成记(循环语句)

    图示 循环语句类型 while循环 for循环 嵌套循环 循环控制语句 break语句:在语句块执行过程中终止循环,并且跳出整个循环 continue语句:在语句块执行过程中终止当前循环,跳出该次循环 ...

  6. python运维开发做什么_想做运维开发工程师,Python Django学的很迷茫,怎么办?...

    不只一个想要转型成为运维开发工程师的小伙伴问过我,Python语法学起来那么简单,为什么一个Django框架就那么难? 学Python的小伙伴往往会有这样的困惑: 我看了100多个小时的教学视频,为什 ...

  7. python运维开发培训_运维架构师-Python 自动化运维开发-014

    运维架构师-Python 自动化运维开发-014 九.标准数据类型 1.为什么编程语言中要有类型 类型有以下几个重要角色:对机器而言,类型描述了内存中的电荷是怎么解释的. 对编译器或者解释器而言,类型 ...

  8. python运维开发招聘_GitHub - PlutoaCharon/LiunxNotes: 校招-运维开发(Liunx,Python,Golang)面试学习笔记...

    校招-运维开发(Liunx,Python,Golang)面试学习笔记 1. 网络基础类 2. Linux系统管理类 3. Linux服务管理类 4. 数据库管理 ​ 索引(包括分类及优化方式,失效条件 ...

  9. python运维开发工程师_运维开发工程师的工作职责精选

    运维开发工程师需要负责优化.改进运维支撑系统,并保证其安全高效稳定的运行.下面是学习啦小编为您精心整理的运维开发工程师的工作职责精选. 运维开发工程师的工作职责精选1 职责: 1. 负责主导运维平台的 ...

最新文章

  1. PHP在使用正则表达式验证,防注入的时候要注意一下的细节
  2. CocoaPods公有库的创建
  3. Python3基础教程:元类详解
  4. 【转】oracle之错误处理
  5. Spring Session源码
  6. An Openfire plugin for Webspell sites.
  7. 摆放家具-家具类以及创建家具对象
  8. Git之Stash(储藏)备份当前的工作区的内容
  9. unique函数_C++核心准则C.35:基类的析构函数必须满足的条件
  10. 云计算交流会计算机操作,计算机二级考试真题-word-小王-云计算技术交流大会...
  11. gitlab导入本地项目_Gitlab使用心得
  12. python的raw_对于Python中RawString的理解(引用)
  13. Windows下使用mingw32
  14. 简述有监督学习、半监督学习、无监督学习、弱监督学习
  15. 用Python实现一个软件自动升级系统
  16. vs括号对齐和vs设置背景图片
  17. 一文搞懂mysql单引号,双引号,反引号的使用
  18. 创新科技 新BMW 7系 有你夫复何求
  19. 分布式理论,架构设计
  20. 华硕路由桥接模式进入不了界面

热门文章

  1. 《Windows PowerShell实战指南(第2版)》——1.5 安装Windows PowerShell
  2. JavaScript 学习笔记3
  3. mac安装brew和zsh
  4. iOS系统原生二维码条形码扫描
  5. 关于微软研究院(谢幸、郑宇研究员主导的)“智能城市”“智能生活”研究的一个归纳...
  6. 《Linux From Scratch》第一部分:介绍 第一章:介绍- 1.4. 资源
  7. laravel(二):laravel基本入门 看到Hello Laravel
  8. STM32中IO口的8中工作模式
  9. memcached的最佳实践方案(转)
  10. DEDE常见问题(转)