python学习一

Python简介

  • python的创始人:吉多.范罗苏姆(Guido van Rossum)
  • 1989年圣诞节期间,作为ABC语言的一种继承
  • 最新TIOBE排行python语言排名第四(2016),Python运用越来越广泛。

目前Python擅长应用领域:

  • WEB开发:众多的WEB框架,Youtube、Dropbox等都是用的Python开发的,典型框架有Django、pyramid、tornado、bottle、flask、webpy
  • 科学运算:SciPy、ipython、pandas
  • 运维自动化:openstack、saltstack、ansible、腾讯蓝鲸
  • 图形GUI:PyQT、WxPython、Kivy
  • 网络编程:Twisted、Requests、Scrapy、Paramiko

关于运维是否需要会编程?

未来的必然趋势“运维自动化”

http://3060674.blog.51cto.com/3050674/1598255

运维会开发后能做什么?

  • 开发各种自动化工具,定制各种开源软件
  • 评估和优化业务技术架构
  • 开发公司的内部办公系统、CRM、网站等
  • 什么都能做的的全栈工程师

Python是门什么样的语言?

编程语言的分类:

  • 1.1 编译型:一次性把源程序生成可执行的机器码,再执行。
  • 1.2 解释型:一边解释一边执行。(易移植)
编译型 解释型 混合型
C JavaScript Java
C++ Python C#
GO Ruby
Swift PHP
Object-C Perl
Pascal Erlang
  • 2.1 动态语言:在运行期间才去做数据类型检查。包括:Python、Ruby
  • 2.2 静态语言:在编译期间就检查数据类型。包括:C/C++、C#、JAVA
  • 3.1 强类型定义语言:强制数据类型定义的语言。一旦一个变量被指定了数据类型,如不强制转换,那么它永远是这个数据类型。(安全语言)
  • 3.2 弱类型定义语言:数据类型可以被忽悠的语言。一个变量的数据类型可以赋不同的数据类型(非安全语言)

Python语言是解释型动态强类型定义语言。

python2.x是弱类型定义语言!!!

Python的优缺点

优点

  • 1、易学,应为范围广泛。
  • 2、开发效率非常高,强大的第三方库。
  • 3、高级语言。
  • 4、可移植性(避免使用依赖于系统的特性,几乎可以在市场上的所有的系统平台上运行)。
  • 5、可扩展性(能c/c++等其它语言程序)。
  • 6、可嵌入性(可把python嵌入C/C++程序,为用户提供脚本功能)。

缺点

  • 1、速度慢。
  • 2、代码不能加密,作为解释型语言,它的代码是以明文形式存储的。
  • 3、线程不能利用多CPU。GIL即全局解释器锁,是程序设计语言解释器用于同步线程的工具,使任何时刻仅有一个线程在执行。Python的线程是操作系统的原生线程,liunx:pthread,windows:Win thread,完全由操作系统调度线程的执行。一个python解释器内有一条主线程和多条用户程序的执行线程。

Python解释器

  • CPython 常用的解释器,官方提供。liunx系统默认使用。
  • IPython 交互解释器,用In 【序号】:作提示符。
  • PyPy 另一个Python解释器,执行速度快。
  • Jython Java平台上Python的解释器
  • IronPython .Net平台上的pythong解释器

注:CPython使用最广泛,如果在java或.Net平台上用python最好的办法是通过调用来交互,确保程序之间的独立性。

Python发展史

  • Python2.x
  • 过度版本Python2.6-2.7(2020年停止支持)
  • Python3.x(不兼容Python2.x)

PYTHON 2 OR 3 选择

python2.x

  1. 已经是过去式,2020将不再提供相应的官网支持
  2. 是弱定义语言,不安全的语言

python3.x

  1. 现在正在使用,未来的希望。支持unicode、等新的语言规范
  2. 新的库更新将只在3.x中实现,不在支持2.x
  3. 是强定义语言,安全的程序语言
  4. python3.x不再向下兼容2.x

注:TWISTED 是不完全支持3.x,2017年了是否已经能支持?确认一下。


PYTHON 安装

  • Windows下安装
  1. 下载安装包(3.6)http://www.python.org/downloads/
  2. 安装 默认安装路径:C:\Users\Administrator\AppData\Local\Programs\Python\Python36
  3. 配置环境变量(environment variables)

Python3.6安装更简单,有自动添加环境变量安装选项、下载标准库安装选项等,默认安装路径也有所改动。

  • linux、Mac 1.系统原装python 2.如是2.x,更新至3.x

第一个Python程序“Hello World”

print(“Hello World!”)

在linux下创建一个文件hello.py并输入

pring("Hello Word!") 然后执行命令python hello.py,输出

指定解释器

要想类似执行shell脚本一样执行python脚本,就需要在文件头部指定解释器。如:

#!/usr/bin/emv python print("Hello World!") 这样就可以执行:./hello.py

注意:

  • 执行前需要给予hello.py执行权限,chmod 755 hello.py
  • #!/usr/bin/emv python(找环境变量中的默认的解释器)和#!/usr/bin/python(指定此解释器)声明的区别,强烈推荐使用#!/usr/bin/env python方式声明。

在交互器中执行

我们可以直接在python自带的交互器运行代码

在命令行模式下输入“python”就可以进入到python交互器,输入python代码即可直接执行。

变量

  • 变量是用来存储程序过程中的结果,以备调用。

变量定义规则:

  • 1、由字母、数字、下划线组成
  • 2、第一个字符不能是数字
  • 3、一下关键字不能声明为变量名: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

注:在程序中变量名使用有意义的英文单词,避免使用拼音、中文(Python3.x可以使用中文)

变量赋值

  • name = "asdfa"
  • name2 = name
  • print(name,name2)
  • name = "ffff"
  • print("what is the value of name2 now?")

注:name2还是asdfa,name更新为ffff

字符编码

Python解释器在加载.py文件中的代码时,会对内容进行编码(默认是ASCII)。

  • ASCII:是基于拉丁字母的电脑编码系统,主要用于下士现代英语和其它西欧语言,最多用8位(一个字节)表示。即:2**8=256-1,ASCII码只能表示255个符号。 
  • GB2312为中文字符集

      GB2312(1980):117445个字符

    GBK1.0(1995):21886个符号

    GB18030(2000):27484个汉字

  • Unicode
  • UTF-8

2bytes所以字符统一都是这么2位

utf-8是变长的,其中: en-1byte,zh-3bytes

注:python3.x默认使用utf-8字符集,所以它是可以直接支持中文的;python2.0默认使用ASCII字符集,需要在代码内进行字符集的声明 -* -coding:utf-8 -*-

注释

  • 当行注释:# 注释内容,可以注释单行。
  • 多行注释:‘‘‘ 注释内容 ‘‘‘, 分别以三个引号开头和结尾作为多行注释。还可以作为一个多行的字符串赋值方式。

用户输入

#!/usr/bin/env python

—* — coding:utf-8 _* _

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

输出如下格式:

------- info of $ -----

Name:

Age:

Job:

Salary:

方式1(不推荐使用):

#!/usr/bin/env python

name=input("username:")

age=input("Age:")

job=input("Job:")

salary=input("Salary:")

info = ‘‘‘

----------info of ‘‘‘+name+‘‘‘--------

Name:‘‘‘ +name +‘‘‘

Age:‘‘‘ +age+‘‘‘

Job:‘‘‘ +job+ ‘‘‘

Salary:‘‘‘ +salary

print(info)

方式2:

#!/usr/bin/env python

name=input("username:")

age=input("Age:")

job=input("Job:")

salary=input("Salary:")

info = ‘‘‘

----------info of %s --------

Name:%s

Age:%s

Job:%s

Salary:%s

‘‘‘%(name,name,age,job,salary)

print(info)

  • %s 输出字符串;%d 输出整数;%f 输出浮点数。

方式3(推荐使用)

#!/usr/bin/env python

name=input("username:")

age=input("Age:")

job=input("Job:")

salary=input("Salary:")

info = ‘‘‘

----------info of {—name} --------

Name:{_name}

Age:{_age}

Job:{_job}

Salary:{_salary}

‘‘‘.format(_name=name, _age=age, _job=job, _salary=salary)

print(info)

方式4

#!/usr/bin/env python

name=input("username:")

age=input("Age:")

job=input("Job:")

salary=input("Salary:")

info = ‘‘‘

----------info of {0} --------

Name:{0}

Age:{1}

Job:{2}

Salary:{3}

‘‘‘.format(name,age,job,salary)

print(info)

密码密文输入(模块初识)

使用模块:import getpass

password=getpass.getpass("password:")

  • 注:getpass在pytharm中使用有问题。

if else流程判断

#!/user/bin/env python

import getpass

_username=‘abc‘

_password=‘abc123

username=input("username:")

password=getpass.getpass("password:")

if _usernameusername and _passwordpassword:

print("Welcome user {name} login...".format(name=username))

else:

print("Invalid username of password!")
  • 注:python中下级代码必须缩进。

猜年龄

#!/user/bin/env python

age_of_old=38

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

if guess_age == age_of_old:

print("yes,you got it.")

elif guess_age > age_of_old:

print("think smaller...")

else:

print("think bigger!")

while 循环

可重复的猜年龄

#!/user/bin/env python

age_of_old=38

count = 0

while True:

if count == 3:

break

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

if guess_age == age_of_old:

print("yes,you got it.")

  break

elif guess_age > age_of_old:

print("think smaller...")

else:

print("think bigger!")

count +=1

优化后

#!/user/bin/env python

age_of_old=38

count = 0

while count <3:

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

if guess_age == age_of_old:

print("yes,you got it.")

  break

elif guess_age > age_of_old:

print("think smaller...")

else:

print("think bigger!")

count +=1

eles:

print("you have tried too many times..fuck off")

for循环

  • for i in range(10): 相当于i在“0、1、2、3、4、5、6、7、8、9”中每次取一个值
  • print("loop",i)

猜年龄程序用for循环

#!/user/bin/env python

age_of_old=38

for i in range(3):

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

if guess_age == age_of_old:

print("yes,you got it.")

  break

elif guess_age > age_of_old:

print("think smaller...")

else:

print("think bigger!")

eles:

print("you have tried too many times..fuck off")

  • 注:for i in range(1,10,3)中“1”为数字组的开始值,“10”为数据结束值,“3”为步进(调整数组的值的数量)。

进一步完善的猜年龄游戏

#!/user/bin/env python

age_of_old=38

count=0

while count <3:

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

if guess_age == age_of_old:

print("yes,you got it.")

  break

elif guess_age > age_of_old:

print("think smaller...")

else:

print("think bigger!")

count +=1

if count == 3:

countine_confirm = input("do you want to keep guessing..?")

  if countine_confirm !="n":

      count=0

eles:

print("you have tried too many times..fuck off")

  • 注:continue 为跳出本次循环进入下一次循环,break为结束整个循环。

小测试:

for i in range(10):

print("--------",i)

if i > 5 and i<8:

continue

for j in range(10):

print(j)
时间: 2024-10-03 18:37:55

python学习一的相关文章

python学习:程序控制结构·作业20141219

Python学习:程序控制结构 20141219 编程环境: windows 7 x64 python 2.7.6 题目: 1 编写程序,完成下列题目(1分) 题目内容: 如果列出10以内自然数中3或5的倍数,则包括3,5,6,9.那么这些数字的和为23.要求计算得出任意正整数n以内中3或5的倍数的自然数之和. 输入格式: 一个正整数n. 输出格式: n以内中3或5的倍数的自然数之和. 输入样例: 10 输出样例: 23 时间限制:500ms内存限制:32000kb n = int(raw_in

python学习第二天

python学习的第二天就是个灾难啊,这天被打击了,自己写的作业被否认了,不说了,写博客还是个好习惯的,要坚持下去,就不知道能坚持到什么时候.呵呵!!! 这天教的知识和第一天的知识相差不大,区别在于比第一天讲的更细了(我们是两个老师教的,风格是不一样的),这次也写那些比较细的知识点. python的简介 (1)你的程序一定要有个主文件. (2)对于python,一切事物都是对象,对象基于类创建.#似懂非懂,不过有那么点似懂. 知识点 #__divmod__ 会把两个数字相除的商和余数以元组的方式

[Python 学习] 二、在Linux平台上使用Python

这一节,主要介绍在Linux平台上如何使用Python 1. Python安装. 现在大部分的发行版本都是自带Python的,所以可以不用安装.如果要安装的话,可以使用对应的系统安装指令. Fedora系统:先以root登入,运行 yum install python Ubuntu系统:在root组的用户, 运行 sudo apt-get install python 2. 使用的Python的脚本 Linux是一个以文件为单位的系统,那么我们使用的Python是哪一个文件呢? 这个可以通过指令

python学习之最简单的用户注册及登录验证小程序

文章都是从我的个人博客上粘贴过来的哦,更多内容请点击 http://www.iwangzheng.com 正如很多同学所知道的,楼主开始学习python了,前进的道路曲曲折折,有荆棘也有陷阱,从最简单的小程序写起,每天练习,将python进行到底. 有一点比较别扭的就是python的换行之后空四个空格,ruby都是两个,并且python在方法和循环语句的第一句都要加冒号 mysql> show create table user; mysql> alter table user add sal

python学习--创建模块

昨天做了python客户端和服务器端通信,并把接收到的信息写到数据库,因为对数据库进行操作是个经常调用的行为,所以我想把调用数据库的操作写成一个module来给其它python程序调用,所以将昨天的服务器端程序拆分为两个文件: 1.主程序python.py #!/usr/bin/env python import socket import json import connmysql s = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) h

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

Python学习day5作业-ATM和购物商城

Python学习day5作业 Python学习day5作业 ATM和购物商城 作业需求 ATM: 指定最大透支额度 可取款 定期还款(每月指定日期还款,如15号) 可存款 定期出账单 支持多用户登陆,用户间转帐 支持多用户 管理员可添加账户.指定用户额度.冻结用户等 购物车: 商品信息- 数量.单价.名称 用户信息- 帐号.密码.余额 用户可充值 购物历史信息 允许用户多次购买,每次可购买多件 余额不足时进行提醒 用户退出时 ,输出当次购物信息 用户下次登陆时可查看购物历史 商品列表分级显示 1

Python学习记录day6

Python学习记录day6 学习 python Python学习记录day6 1.反射 2.常用模块 2.1 sys 2.2 os 2.3 hashlib 2.3 re 1.反射 反射:利用字符串的形式去对象(默认)中操作(寻找)成员 cat commons.py #!/usr/bin/env python#_*_coding:utf-8_*_''' * Created on 2016/12/3 21:54. * @author: Chinge_Yang.''' def login(): pr

python学习笔记12-模块使用

python学习笔记12-模块使用 模块os,sys 什么是模块? 模块os,sys 模块是Python组织代码的一种基本方式 一个Python脚本可以单独运行,也可以导入到另外一个脚本运行,用import hello语句来导入,不用加入.py 什么是Python的 包? Python的模块可以按照目录组织为包 创建一个包的步骤: 创建一个名字为包名的目录 在改目录下创建一个__init__.py文件 根据需要,在该目录下存放脚本文件或已编译的扩展及子包 import pack.m1,pack.

Python.python学习(1).学习规划

Python.python学习.学习规划 欢迎收看! 阅读此文表明你也是要学Python这门神奇的语言了.很好,来对地方了,先容我简单介绍一下这个博客系列. 这个系列的博客将会持续专注于Python这个语言的知识积累和开发经验. 编写这个系列,一方面是为了巩固我自己对Python的理解,另一方面也是希望能够分享我的经验,给初学者提供一定帮助.网上现有的各类教程已经汗牛充栋,在我学习的时候就曾参阅过许多教程与文章,它们讲解问题的思路各不相同,综合的阅读使得我最终能够整理起知识的碎片并正确地理解.所