zoukankan      html  css  js  c++  java
  • 笔记--Day1--python基础1

    一、目录

    1.Python介绍

    python的创始人为吉多·范罗苏姆(Guido van Rossum),目前已经是使用频度特别高的开发语言。

    主要应用领域:

    • 云计算:云计算最火的语言,典型应用有OpenStack
    • WEB开发:众多优秀的WEB框架,众多大型网站均为Python开发,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等, 典型WEB框架有Django
    • 科学运算、人工智能:典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
    • 系统运维:运维人员必回语言
    • 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
    • 图形GUI:PyQT, WxPython,TkInter

    学完我们可以干点啥呢?

    • Python开发工程师 :一般需要精通Python编程语言,有Django等框架的使用经验,实习无要求。
    • Python高级工程师 : 北上广深的话,需要精通Linux/Unix平台,有英语阅读功底。
    • Web网站开发方向: 熟悉Web开发的常用 Python框架,熟悉掌握Mysql类数据库的操作即可。
    • SEO工程师: 为自己或公司开发和改进SEO相关软件,实现自动化搜索引擎优化和日常重复工作。
    • Python自动化测试:熟悉自动化流程、方法和常用的模块的使用,有英文读写的能力。
    • Linux运维工程师: Linux服务器管理,数据分析、自动化处理任务、分析网站日志、定时计划管理,解放双手。
    • Python游戏开发工程师: 网络游戏后端服务器逻辑的开发和处理,有大型数据库使用经验,喜欢从事游戏相关工作。
    • Python自学爱好者: 可以自己开发一些小软件和应用,带图形化界面的软件,方便日常工作。

    2.Python发展史

    3.Python 2 or 3?

    2和3虽然有点区别,但随着时间的推移肯定是3越用越多,所以要好好的学习3

    4.Python的安装

    windows直接下载程序进行安装,Linux和苹果都默认基础了python 2.6,如果需要新版本则需下载安装

    ①下载:https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

    ②解压后进入目录编译安装: #./configure --prefix=/usr/python  && make && make install

    注:我所有的练习笔记均在Pycharm 5.0.3中完成,python版本为3.6

    5.写第一个Hello World程序

    6.变量/字符编码

    a.变量即可变的量,python中变量的定义规则:

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

    b.字符编码简史:

    美国:1963年 ASCII (包含127个字符  占1个字节)

    中国:1980年 GB2312 (收录7445个汉字,包括6763个汉字和682个其它符号)

                     1993年 GB13000 (收录20902个汉字)

                             1995年 GBK1.0 (收录 21003个汉字)

                                      2000年 GB18030 (收录70244个汉字)

    世界:1991年 unicode(‘万国码’也就统一编码,通常占2字节,复杂的汉字占4字节)

                    UTF-8 (可变长的字符编码)

    Python2中的字符串进行字符编码转换过程是:

    字节串-->decode('原来的字符编码')-->Unicode字符串-->encode('新的字符编码')-->字节串

    Python3中定义的字符串默认就是unicode,因此不需要先解码,可以直接编码成新的字符编码:

    字符串-->encode('新的字符编码')-->字节串

    7.用户输入

    即交互式的提醒要求用户输入一些信息,然后打印相应的结果

    8.模块

    Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持

    9.pyc是什么

    我们说pyc文件其实是PyCodeObject的一种持久化保存方式

    10.数据类型初识

    • 数字:整形、浮点、复数
    • 布尔:1(True)为真,0(False)为假
    • 字符串:
    • 列表:索引、切片、追加、删除、长度、循环、包含
    • 元组:可变列表
    • 字典:无序
    • bytes:字节

    11.数据运算

    • 算数运算(+(加) 、-(减) 、*(乘)、 /(除) 、%(取模)、 **(幂)、 //(整除))
    • 比较运算(==(等于)、!=(不等于)、<>(不等于)、>(大于)、<(小于)、>=()、<=())
    • 赋值运算(=、+=(自增)、-=(自减)、*=(自乘)、%=(自取模)、**=()、//=())
    • 逻辑运算(and、or、not)
    • 成员运算(in、not in(在不在) )
    • 身份运算(is、 is not(是否是同对象))
    • 三元运算(result = 值1 if 条件 else 值2(如果条件为真result=值1,如果条件为假result=值2))

    了解详细:猛击这里

    12.表达式if ...else语句

    13.表达式for和wile循环

    14.break and cotinue


     二、练习

    1.略 2.略 3.略 4.略

    5.写我们的第一个hello world程序

       linux中是:a.新建一个hello_world.py的文件

                         b.编辑文件#vim hello_world.py (文件头增加‘#!/usr/bin/env python’指定解释器,在增加一行'pring 'hello world')

                         b.给文件增加可执行权限#chmod a+x hello_world.py即可通过#python hello_world.py执行

    注,我所有的练习都是在Pycharm中完成的。

    #pycharm 5.0.3(python3.6)
    print('hello world!')
    Hello_world代码
    hello world!
    Process finished with exit code 0
    运行结果

    6.变量

    #pycharm 5.0.3(python3.6)
    names ='Felix'#变量的声明定义赋值
    print('打印变量结果名字:',names)
    变量代码
    打印变量结果 Felix
    
    Process finished with exit code 0
    运行结果

    字符编码

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    #pycharm 5.0.3(python2.6)
    #字节串-->decode('原来的字符编码')-->Unicode字符串-->encode('新的字符编码')-->字节串
    utf_8_a = '测试'
    print(utf_8_a,type(utf_8_a),len(utf_8_a))  #打印utf_8_a的内容、类型及长度
    unicode_a = utf_8_a.decode('utf-8') #对utf_8_a进行解码成unicode
    print(unicode_a,type(unicode_a),len(unicode_a))
    gbk_a = utf_8_a.decode('utf-8').encode('gbk') #先解码在编码成gbk
    print(gbk_a,type(gbk_a),len(gbk_a)) #打印gbk_a的内存、类型及长度
    print(gbk_a.decode('gbk'))
    python2.6运行代码
    ('xe6xb5x8bxe8xafx95', <type 'str'>, 6)
    (u'u6d4bu8bd5', <type 'unicode'>, 2)
    ('xb2xe2xcaxd4', <type 'str'>, 4)
    测试
    
    Process finished with exit code 0
    运行结果
    #pycharm 5.0.3(python3.6)
    #Python3中定义的字符串默认就是unicode,因此不需要先解码,可以直接编码成新的字符编码:
    #字符串-->encode('新的字符编码')-->字节串
    utf_8_a = '测试'
    print(utf_8_a,type(utf_8_a),len(utf_8_a))  #打印utf_8_a的内容、类型及长度
    gbk_a = utf_8_a.encode('gbk')
    print(gbk_a.decode('gbk'),type(gbk_a),len(gbk_a))
    python3.6运行代码
    测试 <class 'str'> 2
    测试 <class 'bytes'> 4
    
    Process finished with exit code 0
    运行结果

    7.用户输入

    #pycharm 5.0.3(python3.6)
    name = input('Please input your name:')
    #如果想让输入的密码不可见可以使用 import getpass模块
    import getpass #通常调用模块都写在最上边
    pwd = input('Your passwd:')
    print('Hello,'+name) #字符串的连接可以用“+”(加号)
    print('你的密码是:',pwd)
    输入代码
    Please input your name:Felix
    Your passwd:123
    Hello,Felix
    你的密码是: 123
    
    Process finished with exit code 0
    运行结果

    8.模块

    import sys
    print(sys.path) #打印环境变量
    print(sys.argv) #实际上打印的是相对路径,由于pycharm中有名称,所以直接打印的是绝对路径
    
    
    import os
    #print(os.path)
    #cmd_res = os.system("dir")   #执行命令,不保存结果
    cmd_res = os.popen("dir").read() #不加read,只是存储到了内存中,需要用read读取
    print("-->",cmd_res)
    
    
    #os.mkdir("new_dir") #创建目录
    #import login #找模块先去当前目录下找,如果没有则出错,解决,同目录解决,或者修改环境变量
    模块代码

    9.

    10.数据类型

     略

    11.数据运算

     略

    12.if ...else

    #pycharm 5.0.3(python3.6)
    #要求:提示用户输入用户名密码
    #实现:用户输入用户名密码后进行验证(name = 'Felix',pwd = '123')
    #      如果错误,则输出用户名和密码
    #      如果成功,则输出 欢迎,XXX!
    import getpass #如果想让输入的密码不可见可以使用 import getpass模块
    name = input('Please input your name:')
    pwd =  int(input('Please input your pwd:'))
    # pwd = int(getpass.getpass('Please input your pwd:')) #可以隐藏密码提示,这里测试又问题,输入完密码没有结束
    
    if name == 'Felix' and pwd ==123:
        print('Welcome ',name)
    else:
        print('Your name or pwd error')
    用户登录验证游戏场景
    Please input your name:Felix
    Please input your pwd:123
    Welcome  Felix
    
    Process finished with exit code 0
    运行结果
    #pycharm 5.0.3(python3.6)
    #要求:在程序里设定好你的年龄,然后启动程序让用户猜测,
    #实现:用户输入后,根据他的输入提示用户输入的是否正确,如果错误,提示是猜大了还是小了
    age_of_oldboy = 56
    guess_age = input("guess age:")
    if guess_age == age_of_oldboy:
        print("Yes,you got it.")
    elif int(guess_age) > age_of_oldboy:
        print("think smaller")
    else:
        print("think bigger")
    #以上版本只能一次输入一个年龄就需要在此运行程序
    猜年龄游戏场景
    guess age:28
    think bigger
    
    Process finished with exit code 0
    运行结果

    结合条件利用循环实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序:

    #pycharm 5.0.3(python3.6)
    #while循环方式
    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 bigger")
        count +=1
    else:
        print("You have tried too many times..fuck off")
    猜年龄(while循环)
    guess age:20
    think bigger
    guess age:12
    think bigger
    guess age:30
    think bigger
    You have tried too many times..fuck off
    
    Process finished with exit code 0
    运行结果
    #pycharm 5.0.3(python3.6)
    #for循环方式
    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 bigger")
    else:
        print("You have tried too many times..fuck off")
    猜年龄(for循环)
    guess age:30
    think bigger
    guess age:56
    Yes,you got it.
    
    Process finished with exit code 0
    运行结果

    13.循环

       for loop

    #pycharm 5.0.3(python3.6)
    #循环打印1到9
    for i in range(10):
        print(i)
    for loop
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Process finished with exit code 0
    运行结果
    #pycharm 5.0.3(python3.6)
    #需求一,循环打印1到9,但是遇到小于5的循环次数就不走了,直接跳入下一个循环
    #此处就利用到了continue
    for i in range(10):
        if i<5:
            continue #不往下走了,直接进入下一次循环
        print(i)
    continue
    5
    6
    7
    8
    9
    
    Process finished with exit code 0
    运行结果
    #pycharm 5.0.3(python3.6)
    #需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出
    for i in range(10):
        if i >5:
            break #不往下走了,直接跳出整个循环
        print(i)
    break
    0
    1
    2
    3
    4
    5
    
    Process finished with exit code 0
    运行结果

      while loop

    #pycharm 5.0.3(python3.6)
    #死循环
    count = 0
    while True:
        print('等着吧……')
        count +=1
    死循环
    #pycharm 5.0.3(python3.6)
    #死循环
    count = 0
    while True:
        print('等着吧……')
        count +=1
    
        if count == 5:
            print('中断循环')
            break
    中断死循环

    14.中断,已在13循环中练习

     三、参考

    http://www.cnblogs.com/alex3714/articles/5717620.html  <博主博客记录>

    http://www.runoob.com/

    注:本笔记基于“老男孩python14期百度传课视频”,地址:https://chuanke.baidu.com/v3628575-182242-1134376.html

  • 相关阅读:
    SRM 588 D2 L3:GameInDarknessDiv2,DFS
    [置顶] ProDinner体验
    [置顶] 强制访问控制内核模块Smack
    Java小项目--坦克大战(version1.0)
    utf-8-validation
    is-subsequence
    perfect-rectangle
    find-the-difference
    longest-absolute-file-path
    first-unique-character-in-a-string
  • 原文地址:https://www.cnblogs.com/apff/p/7469527.html
Copyright © 2011-2022 走看看