Day1-python基础

本章内容

  1. Python介绍及发展历史
  2. Python特色
  3. 安装
  4. Hello World程序
  5. 变量/字符编码
  6. 用户输入
  7. .pyc是个什么?
  8. 数据类型初识
  9. 数据运算
  10. 条件判断表达式if..else..
  11. 循环表达式for和while
  12. break and continue 
  13. 做业需求

1、python介绍及发展历史java

     我的理解:python是门计算机语言,跟C、C++、Java等同样,为何和英语、法语同样称为语言?语言有本身的共性,就像咱们婴儿时期咿呀咿呀学说话,读书时代的拼音、单词、组词、语法、造句、写做,从简单到复杂,从词到造句到写做,这就是学语言的原理。python也是如此,尽管本人还不能一窥全貌。python

     我的方法:先模仿再创造,先死记再变通,运用5W1H(when、where、who、what、why、how)去学习,多思考。数据库

     博客目标:只提取有用的东西,逻辑清晰明了,语言简练实用。编程

     废话少说,接下来先作python介绍:windows

where:安全

    • 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
    • CIA: 美国中情局网站就是用Python开发的
    • NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算
    • YouTube:世界上最大的视频网站YouTube就是用Python开发的
    • Dropbox:美国最大的在线云存储网站,所有用Python实现,天天网站处理10亿个文件的上传和下载
    • Instagram:美国最大的图片分享社交网站,天天超过3千万张照片被分享,所有用python开发
    • Facebook:大量的基础库均经过Python实现的
    • Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
    • 豆瓣: 公司几乎全部的业务均是经过Python开发的
    • 知乎: 国内最大的问答社区,经过Python开发(国外Quora)
    • 春雨医生:国内知名的在线医疗网站是用Python开发的
    • 除上面以外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各类各样的任务。 

python擅长的领域:服务器

Web开发--Django/pyramid/Tornado/bottle/Flask/WebPy网络

网络编程--Twisted/Requests/Scrapy/Paramiko多线程

科学运算--SciPy/Pandas/IPython并发

GUI图形开发--wxPython/PyQT/Kivy

运维自动化--OpenStack/SaltStack/Ansible/腾讯蓝鲸(LOL)

how:

如何高效的适应业务的频繁更新、变动、上线、扩展?

如何在最低成本的前提下实现业务并发能力的可伸缩式扩展?

如何实现运维人员从被动故障处理到故障预防和故障高度自愈的转换?

若是经过不断优化运维流程、自动化工具来下降运维成本、人工参与度,最终实现无人运维?

what:

python是一门动态解释性的强类型定义语言。

从不一样角度去看编程语言的类型:编译型和解释型、动态语言和静态语言、强类型语言和弱类型语言。

1.执行角度:

编译型--一个程序对源代码进行转换,生成可执行文件(机器代码),就能够直接运行了,但大型项目多个文件时就须要所有编译完才能运行;如C、C++等

解释型--就像看书,看一句读一句,即不停的解释执行,解释执行。所以解释型比编译型执行效率要慢。

 

编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机能够直接以机器语言来运行此程序,速度很快; 

解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,因此运行速度是不如编译后的程序运行的快的. 

 

应用场景:

编译型--用在像开发操做系统、大型应用程序、数据库等C、C++、Pascal等        

解释型--用在网页脚本、服务器脚本及辅助开发接口,对速度要求不高、兼容性好,如java、javaScript、VB、Perl、Python等。解释型语言更容易移植,像java一次编译处处运行。

2.语言动静

动态类型语言:动态类型语言是指在运行期间才去作数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其余的各类脚本语言如VBScript也多少属于动态类型语言。
静态类型语言:静态类型语言与动态类型语言恰好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明全部变量的数据类型,C/C++是静态类型语言的典型表明,其余的静态类型语言还有C#、JAVA等。

3.语言强弱

强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,若是不通过强制转换,那么它就永远是这个数据类型了。举个例子:若是你定义了一个整型变量a,那么程序根本不可能将a看成字符串类型处理。强类型定义语言是类型安全的语言。 
弱类型定义语言:数据类型能够被忽略的语言。它与强类型定义语言相反, 一个变量能够赋不一样数据类型的值。

 

2、python特色

优势:

1.Python的定位是“优雅”、“明确”、“简单”;

2.开发效率很是高,Python有很是强大的第三方库,基本上你想经过计算机实现任何功能,避免重复造轮子;

3.高级语言:不考虑程序内存处理等底层细节;

4.可移植性:全部Python程序无需修改,就几乎能够在市场上全部的系统平台上运行;

5.可扩展性:关键代码可以使用C/C++编写,使得python程序运行更快;

6.可嵌入性:python嵌入到C/C++中,提供脚本功能;

缺点:

1.速度慢,Python 的运行速度相比C语言确实慢不少,跟JAVA相比也要慢一些,基本知足程序速度要求,除非搜索引擎等须要C编写;

2.代码不能加密,由于PYTHON是解释性语言,它的源码都是以名文形式存放的;

3.线程不能利用多CPU问题,因为GIL即全局解释器锁(Global Interpreter Lock)存在,禁止多线程并行执行;

python解释器

CPython:C语言开发,应用最普遍
IPython:CPython的加强型交互式解释器
PyPy:目标是执行速度,动态编译python代码,与CPython解释器下执行结果可能略有不一样
Jython:Java平台的解释器
IronPython:微软.Net平台上的解释器

3、安装

 

 环境变量:

     【右键计算机】 - - 》【属性】 - - 》【高级系统设置】 - - 》【高级】 - - 》【环境变量】 - - 》【在第二个内容框中找到 变量名为Path 的一行,双击】  - - > 【Python安装目录追加到变值值中,用 ; 分割】
     如:原来的值;C:\python27,切记前面有分号

4、hello world程序

C:\Users\HW>python
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Hello World!")
Hello World!

5、变量/字符编码

变量声明:

#_*_ coding:utf-8 _*_   #指定程序文件编码类型为utf-8

name = "Alex" #变量名为:name,变量name的值为:"Alex"

变量定义的规则:

      • 变量名只能是 字母、数字或下划线的任意组合
      • 变量名的第一个字符不能是数字
      • 如下关键字不能声明为变量名
        ['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']

字符编码历史:

ASCII:python2默认是ASCII编码,1个字节,最多2**8-1=255个字符,其中0-9为48-57,A-Z为65-90,a-z为97-122;

中文编码:

  • GB2312:简体中文,7445个符号;
  • GBK:21886个符号,其中收录了21886个汉字,有的windows版本支持;
  • GB18030:收录了27484个汉字

Unicode(统一码、万国码、单一码):最少2个字节,即:2 **16 = 65536

注释:

当行注视:# 被注释内容

多行注释:""" 被注释内容 """

6、用户输入函数

代码:

# !/usr/bin/env python
# _*_coding:utf-8_*_


# name = raw_input("What is your name?") #only on python 2.x
name = input("What is your name?")
print("Hello " + name)
执行结果:
What is your name?alex
Hello alex

 

7、.pyc是什么

当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject(Python编译器真正编译成的结果)中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,若是找到,则直接载入,不然就重复上面的过程。

8、数据类型初识

1.数字

int(整型):范围是32位系统为-2**31~2**31-1,64位系统为-2**63~2**63-1

long(长整型):整型范围溢出,就会变成long

float(浮点型):小数就是浮点数

complex(复数):复数由实数部分和虚数部分组成,通常形式为x+yj

2.布尔值

真或假,1 或 0

3.字符串

如上例,"+":表明拼接,意思是在内存中从新开辟一块新空间存储新字符串,因此推荐

字符串的格式化输出

name = "alex"
print("i am %s" % name)
结果:i am alex

注意:字符串是 %s;整数 %d;浮点数%f

4.列表

建立列表:

name_list  =  [ 'alex' 'seven' 'eric' ]
name_list =  list ([ 'alex' 'seven' 'eric' ])

基本操做:

  • 索引
  • 切片
  • 追加
  • 删除
  • 长度
  • 切片
  • 循环
  • 包含

5.元组(不可变列表)

建立元组:

ages = (1122334455)

ages  =  tuple (( 11 22 33 44 55 ))

6.字典(无序)

建立字典:

person = {"name""mr.wu"'age'18}

person  =  dict ({ "name" "mr.wu" 'age' 18 })

经常使用操做:

  • 索引
  • 新增
  • 删除
  • 键、值、键值对
  • 循环
  • 长度

9、数据运算

 

c = a & b
c = a | b
c = a ^ b
c = ~a
c = a << 2
c = a >> 2

 

10、条件判断表达式if..else..

场景1、用户登录验证

模拟登录:
1. 用户输入账号密码进行登录
2. 用户信息保存在文件内
3. 用户密码输入错误三次后锁定用户
#!/usr/bin/env python
# -*- coding:utf-8 -*-

import getpass

#用户名和密码
user = "admin"
passwd = "123456"

username = input("请输入用户名:")
#password = input("请输入密码:") #明文输入
password = getpass.getpass("请输入密码:") #密文输入
if username == user and password == passwd: #判断,若是两个都为真,则执行成功语句
print("登陆成功!")
else: #若是至少一个为假,则执行失败语句
print("登陆失败...")

11、循环表达式for和while

例子1:循环10次

for i in range(10):
print(i)
结果:
0
1
2
3
4
5
6
7
8
9

例子2:打印5及以上的循环

for i in range(10):
if i < 5:
continue
print("loop",i)

loop 5
loop 6
loop 7
loop 8
loop 9

例子3:打印小于等于5的循环

for i in range(10):
if i > 5:
break
print("loop",i)

loop 1
loop 2
loop 3
loop 4
loop 5

---------------------------------------------------

例子4:循环100次,while True为死循环

count = 0
while True:
print("你是风儿我是沙,缠缠绵绵到天涯...",count)
count +=1
if count == 100:
print("去你妈的风和沙,大家这些脱了裤子是人,穿上裤子是鬼的臭男人..")
break
例子5:循环100次,while True为死循环
#!/usr/bin/env python
# -*- coding: utf-8 -*-
my_age  =  28
 
count  =  0
while  count <  3 :
     user_input  =  int ( input ( "input your guess num:" ))
 
     if  user_input  = =  my_age:
         print ( "Congratulations, you got it !" )
         break
     elif  user_input < my_age:
         print ( "Oops,think bigger!" )
     else :
         print ( "think smaller!" )
     count  + =  1  #每次loop 计数器+1
else :
     print ( "猜这么屡次都不对,你个笨蛋." )

12、break and continue

如上例,

break:直接跳出整个循环

continue:不执行接下来的语句,进入下次loop循环

十3、做业需求

 

做业一:博客

做业二:编写登录接口

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定

 

做业三:多级菜单
  • 三级菜单
  • 可依次选择进入各子菜单
  • 所需新知识点:列表、字典
相关文章
相关标签/搜索