'Day01-Python简介与基础

1.Python前世今生

  python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。

最新的TIOBE排行榜,Python赶超PHP占据第五!

Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web 等。

注视:上述重点字体表示该公司主要使用Python语言开发

2.为什么是Python而不是其他语言?

C 和 Python、Java、C#等

      C语言: 代码编译得到机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作

   其他高级语言: 代码编译得到字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行

Python 和 C  Python这门语言是由C开发而来

   对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
   对于速度:Python的运行速度相较与C,绝逼是慢了

Python 和 Java、C#等

   对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
   对于速度:Python在速度上可能稍显逊色

所以,Python和其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。

3.Python的种类

    • Cpython(解释)代码----字节码-----机器码(解释一行,执行一行)
          Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
    • Jyhton
          Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
    • IronPython
          Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
    • PyPy(特殊)(编译)代码---字节码-----机器码(全部转换完之后在执行)
          Python实现的Python,将Python的字节码字节码再编译成机器码。
    • RubyPython、Brython ...     

4.python基础

  —python规则

    1.安装:python解释器(作用:开辟内存,执行结果,检验代码格式是否正确,最终释放内存,给出结果)

        windows--安装目录:C:\python35

    2.写代码(程序)


                

将内容保存到目录下面,在终端里面执行:c:\python35\python.exe   G:\1.py 

      python内部内部执行顺序:1.打开文件,读取文件内容  2.词法,语法分析  3. 符合规则之后   代码—字节码—机器码

  —解释器

    window环境:解释器—C:\python\python.exe   G:\1.py (给个文件执行)

             C:\python\python.exe  (进入解释器环境,单行执行)

    liunx环境:文件头部信息:#!/usr/bin/env python

                  #-*- coding:utf8 -*-(指定编译器编码)

                 chmod 755 1.py (给文件权限)      ./1.py  (直接执行)

  —潜规则

    文件格式后缀名以.py结尾

  —编码

    最早出现的编码(ascii):只支持英文,8位一个字节(例如a:00000001)

    万国码:(编码至少16位)随着电脑的普及,为了支持其他国家使用,出现支持各种语言的编码。中文占三个字节(24位)。(例如a:00000000 00000001)(对于a类型的来说,位数较多,比较占用内存,所以出现出现万国码的压缩版  utf-8)

    utf-8:中文还是占用三个字符

    gbk,gb2312:正对中文的编码,gb2312比给gbk增加了繁体字,中文只需2个字节

    默认python2编码为ascii码,python3为utf-8

5. 注释

              单行注释:代码前面加#  多行注释: 三个引号 ("""代码""")  鼠标选中多行Ctrl+?进行多行注释,选中多行注释的代码Ctrl+?取消多行注释

 

6.变量(声明变量)

              变量名要求: 1.字母          2.数字(不能以数字开头)         3.下划线         4.不能使用关键字            5.变量名要有意思(中间以下划线分隔,可识别度高)

          示例:

1 name = 'longkunsheng'
2 n = name
3 name = 'liuhaoran'
4 print(n+name)

7.输入.输出

        输入:

         name: v = input('请输入用户名:')        v = 表示接收用户输入的值(等同于变量)

         import: 示例:  import  getpass          v = getpass.getpass ('请输入密码')

        输出:

         print('内容') :打印括号里面的内容       print(变量): 打印变量的内容

       示例:

复制代码
name = input('请输入姓名:')
print(name)

import getpass
pwd = getpass.getpass ('>>>')
print(pwd)

import getpass
name = input('请输入姓名:')
pwd = getpass.getpass ('请输入密码:')
age = input('请输入您的年龄:')
print(name)
print(pwd)
print(age)
复制代码

8.条件语句

        

    if 条件:                                 if 条件:                                          

     成功走这儿                               ...                                      

    else:             elif 条件:                                  

     失败走这儿           ...                                                    

                    elif 条件:                                                  

                     ...                                                      

                    else:                                                         

                     ... 

   示例: 

复制代码
username =  input('请输入用户名:')
if username == 'long':
    print('管理员')
elif username == 'liu':
    print('sb')
else:
    print('gu拜')
print('end')
复制代码

 

复制代码
user_type = input('请输入姓名:')
if user_type == '龙':
    name = input('请输入家庭地位:')
    if name == '老大':
        print('yes')
    elif name == '刘':
        print('仆人')
    else:
         print('什么东西都不是')
复制代码

9.循环语句

      while 条件:

      continue  (跳出本次循环,执行下次循环)

      break   (跳出所有循环)

    示例:

复制代码
while True:
    username = input('xingming:')
    pwd = input('mima:')
    if username == 'long' and pwd =='123':
        print('ok')
        break
    else:
        print('no')
复制代码
复制代码
i = 1
while True:
    if i == 7:
        i +=1
        continue
    print(i)
    i +=1
    if i == 11:
        break
复制代码
复制代码
i = 1
while i < 11:
    if   i == 7:
        i+=1
        continue
    print(i)
    i +=1
    if i == 11:
        break
复制代码

10.运算符

         a.算术运算符

       b.比较运算符

              c.赋值运算符

              d.逻辑运算符

             e.成员运算符

11.练习题

1、使用while循环输入 1 2 3 4 5 6 8 9 10

复制代码
i = 1
while i < 11:
    if i == 7:
        i +=1
        continue
    print(i)
    i +=1
    if i == 11:
        break
复制代码

2、求1-100的所有数的和

value = 0
i = 1
while i < 101:
    value = value+i
    i +=1
print(value)

3、输出 1-100 内的所有奇数

i = 1
while i < 101:
    if i % 2 == 1:    # i % 2 == 0  输出的是偶数
        print(i)
    i += 1

4 求1-2+3-4+5 ... 99的所有数的和

复制代码
i = 1
value = 0
while i < 100 :
    if i % 2 == 1:
        value += i
    if i % 2 == 0:
        value -= i
    i += 1
print(value)
复制代码

5、用户登陆(三次机会重试)

复制代码
i = 1
while i < 4:
    name = input('请输入用户:')
    pwd = input('请输入密码:')
    if name == 'long' and pwd =='123':
        print('成功')
        break
    else:
        print('失败')
        i += 1
复制代码

12..python类型

    —整数:创建:a = 123 或 a = int(123)  转换:age = ‘18’ ---- new_age = int(age)   print (type(变量)) 查看这个变量是什么类型

    —布尔值 :创建:a = True b = False 转换:数字转换时,只有0是False,其他都是True,字符串转换时,只有为空时是False,其他True(a = 1 -- b = bool(a) print (b))

    —字符串:-创建:a = 'tom' 或 a = str('tom') -转换:age = 18  new_age = str(age)

               -字符串的拼接:如下

str = '我叫龙坤生,今年1岁,性别男'
val = '扯淡'
str_val = str+val
print(str_va

           -字符串的格式化(占位符):如下

name = '我叫刘浩然,今年2%s岁,性别女'

val_name = name % ('b')

print(val_name)
name = '我叫刘浩然,今年2%s岁,性别女' % ('b')

print(name)

        -判断子序列是否在其中:如下

name = "国家主席,国家副主席,"

if '国家' in name:
    print('包含敏感字符')
else:
    print(name)

 

      -去除空白(只能去除前后,不能去除中间)

a = ' 龙坤生   '

a1 = a.split()    #去除左右空白
a2 = a.rsplit()   #去除右边空白
a3 = a.lstrip()   #去除左边空白
print(a1)
print(a2)
print(a3

       -分割

user_info = 'alex sb123 9'
v = user_info.split(' ')            #分割所有的
val = user_info.split(' ',1)        #分割最左边的
new_val = user_info.rsplit(' ',1)   #分割最右边的
print(v)
print(val)
print(new_val)

      -长度

val = 'abcdef'
naw_val = val[0]
print(naw_val)

 -索引(0代理表第一个,以此类推)

         -切片

name = '我叫刘浩然,性别我今年岁,我在说啥!
'print(name[0])
print(name[0:2])
print(name[5:9])
print(name[5:])
print(name[5:-2])
print(name[0::2])

 13.列表

      -创建列表: a['龙','alex','刘',123] 

a = ['','alex','',123]

if '' in  a:
    print(a)
    if 'a' in a[2]:
        print(a)

  -索引  val = a [0]   print (val)

  -长度  val = len(a)  print (val)

  -切片  val = a [0::2] print (val)

  -追加 a.append ('sb')  追加只能从最后追加

  -插入 a.insert (1,'xo')  在第二个字符串前面插入,这里的0指的是索引

  -删除 a.remove ('tom') 只删除列表中的第一个该字符串   del a [0] 删除列表下的第几个字符串 (可以索引删除,也可以切片删除)

  -修改 a[0] = 'longkunsheng' 重新给该字符赋值

      -for循环 

a = ['','alex','',123]

for imte in a:
    print(imte)
    continue     ##break

 14.字典

    -创建 v = {'name':'tom','pwd':'123'}  或  v = dic ({'name':'tom','pwd':'123'})

  -索引 val = v['name']     print(val)

  -增加 (有该值时,修改,没有该值,增加)v['age'] = 18 print (v)

  -删除 del v['name']

  -for循环

  -长度  print (len(v))

v = {'name':'chengfei','password':'123123'}
n = v ['name']        #  通过索引keys获取values(只能根据keys获取values)
print(n)

v ['age'] = 18        # 增加  无 增加  有时  修改
print(v)

del v['name']         # 删除
print(v)
for item in v :        # for 循环所有的keys值
    print(item)

for item in v.keys():  # for 循环所有的keys值
    print(item)

for item in v.values(): # for 循环所有的values值
     print(item)

for key,val in v.items():     # for 循环keys,values的值
    print(key,val)

 

posted @ 2017-06-16 11:28  人生苦短,别学py  阅读(223)  评论(0编辑  收藏  举报