zoukankan      html  css  js  c++  java
  • python 全栈开发,Day1(python介绍,变量,if,while)

    一,Python介绍

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

    目前Python主要应用领域:

    1. 云计算: 云计算最火的语言, 典型应用OpenStack
    2. WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
    3. 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
    4. 系统运维: 运维人员必备语言
    5. 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
    6. 图形GUI: PyQT, WxPython,TkInter

    二,计算机基础

    cpu:

      相当于人的大脑,运算与控制中心。
      速度 飞机
    内存:

      时存储,供给CPU数据。 
      速度 高铁。成本高,断电即消失。
    硬盘:

      相当于电脑的数据库,存储着大量的数据,文件,音频文件。
      速度 走。成本低
    操作系统:

      执行者,支配所有关系。windows,linux,mac...

    python流行的原因
    1.大量第三方库
    2.Diango

    三、python的历史

    Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。
    python 2x和3x在同一年诞生,2x是10月,3是12月
    python 2x:源码混乱,重复代码较多,冗余。
    python 3x: 源码规范,崇尚优美、清晰,简单

    四、python 2x,python 3x的区别

    1.print方法有区别
    python 3x print('内容')
    python 2x print()或者print '内容'

    2.编码方式不一样
    python 3x 默认编码:utf-8
    python 2x 默认编码: ascii 只包含英文字母和特殊字符以及数字
    不支持中文
    解决方式:
    在头部增加

    # -*- coding: utf-8 -*-

    3.input不同
    python 2x: raw_input()
    python 3x: input()

    五、开发语言的分类

    解释型:当程序运行时,将代码一行一行的解释成二进制,再运行。
    优点:排错快,开发效率高,可以跨平台
    缺点:执行效率相对低
    典型:python,

    编译型:将代码一次性全部编译成二进制,然后运行。
    缺点:排错慢,开发效率低,不能跨平台(操作系统)。
    优点:执行效率高
    典型:C

    python的种类

    CPython 默认解释器,转换为字节码,再转换为c语言010101...
    IPython
    PyPy 一次性全部转化成二进制,执行效率高。
    Jython 把Python代码编译成Java字节码执行
    IronPython

    虽然解释器不同,但是写python代码的规则还是统一的。

    六、运行第一个python程序

    如果想要windows电脑同时有2个python环境,Python2.7和Python3.5

    先安装python2.7

    1、下载安装包
    https://www.python.org/downloads/
    2、安装
    默认安装路径:C:python27

    勾选添加环境变量

    再安装python3.5

    选择自定义安装,勾选添加环境变量

    安装路径设置为C:Python35

    进入目录C:Python27

    将python.exe更改为python2.exe

    打开windows命令行模式

    输入python2就是2.7版本

    输入python就是3.5版本

    新建一个test.py文件,内容如下

    print('你好,世界')

    使用命令行方式

    我的代码路径在E:python_scriptday1

    进入目录,执行代码

    使用python2执行

    执行报错

    因为默认python2x编码是ascii,不支持中文

    在第一行添加

    # -*- coding: utf-8 -*-

    再次执行,就可以了

    如果python安装完成之后,发现执行python有问题时
    可以把所有python版本卸载,重新安装一次,确保环境变量已经删除,文件后缀是可以显示的。

    七、变量

    变量:把程序运行的中间结果临时的存在内存里,以便后续的代码调用。

    变量定义的规则:

    1,变量必须由数字,字母,下划线任意组合。
    2,变量不能以数字开头。
    3,变量不能是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']
    4,变量要具有可描述性。
    5,变量不能是中文。
    6,变量不能太长。
    7,官方推荐:

    #驼峰体
    AgeOfOldboy = 56
    NumberOfStudents = 100
    #下划线
    age_of_oldboy = 56
    number_of_students = 80

     一般推荐使用第2种,也就是下划线的方式。

    下面几个例子,判断变量名是否合法

    w__ = 22
    e_a_ = '太白'
    e$ = 'fdsa'
    -_ = '15'
    2g = 33
    __ = '老村长'

    3,4,5行的变量,是不合法的,其他的都是合法的。

    赋值计算
    先计算等号右边的,把计算的值赋值给左边的

    python是解释型语言,代码是一行一行执行
    后面的变量会覆盖前面的。

    age1 = 12
    age2 = age1
    age3 = age2
    age2 = 6
    print(age1,age2,age3)

    执行输出

    12 6 12

    看一个图

    age1~3的值,存储在内存中。当age2等于6时,age2值的指向就发生了变化,值为6

    7.常量
    常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量
    默认全部大写的变量,称之为常量。

    CITY_LIST = 'beijing'

    11.注释
    为什么有注释?
    帮助你记起之前的代码,或者帮助别人看懂你的代码
    不宜多,精就行

    单行注释: #被注释内容
    多行注释: '''被注释内容''' 或者 """被注释内容"""

    #定义一个变量
    name1 = "taibai"
    '''
    虞美人·碧苔深锁长门路
     
    清代:王国维
     
    碧苔深锁长门路。总为蛾眉误。自来积毁骨能销。何况真红一点臂砂娇。
    妾身但使分明在。肯把朱颜悔。从今不复梦承恩。且自簪花坐赏镜中人。
    '''
    

    八、基础数据类型初始

    int(整型)

    在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

    在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

    long(长整型)

    跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。

    注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
    注意:在Python3里不再有long类型了,全都是int长整型

    字符串类型(str)

    在Python中,加了引号的字符都被认为是字符串!

    msg = "My name is xiao,I'm 22 years old!"
    num = '12'

    这种会出错

    msg = "My name is xiao,I"m 22 "years old!"

    双引号,只看2头的,从左到右


    一般3个引号的,用到多行的场景,有行号符的。
    一行很少用3个引号的

    shi = '''
    马汗踏成泥,朝驰几万蹄。
    雪中行地角,火处宿天倪。
    塞迥心常怯,乡遥梦亦迷。
    那知故园月,也到铁关西。
    '''
    print(shi)

    执行输出

    马汗踏成泥,朝驰几万蹄。
    雪中行地角,火处宿天倪。
    塞迥心常怯,乡遥梦亦迷。
    那知故园月,也到铁关西。

    3个单引号,没有赋值,是用来注释的

    比如上面的唐诗《虞美人·碧苔深锁长门路》


    字符串只能相加和相乘

    相加

    n1 = '她的名字是'
    n2 = '南宫紫菱'
    n3 = n1 + n2
    print(n3)

    执行输出

    她的名字是南宫紫菱

    相乘

    n1 = '我好爱你!'
    print(n1 * 3)

    执行输出

    我好爱你!我好爱你!我好爱你!

    九、布尔值(True,False)

    布尔类型很简单,就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断

    print(1 > 2)

    执行输出

    False

    返回false
    布尔值是不带引号的

    print(1 > 2 and 3 < 4 or 4 > 5)

    执行输出

    False

    布尔值判断时,如果出现false,结果返回false

    十、查看数据类型

    使用type()方法

    n1 = 'nan'
    n2 = False
    n3 = 'False'
    print(type(n1))
    print(type(n2))
    print(type(n3))

    执行输出

    <class 'str'>
    <class 'bool'>
    <class 'str'>

    十一、用户交互 input

    input出来的数据类型,都是字符串

    name = input('请输入你的名字: ')
    age = input('请输入你的年龄: ')
    hobby = input('请输入你的爱好: ')
    s = '我的名字是' + name + '
    我的年龄是' + age + '
    我的爱好是' + hobby
    print(s)

    执行效果

    十二、if语句

    第一种结构

    if 条件:
        结果

    举例

    if 3 > 2:
        print(666)

    执行输出

    666

    第二种结构

    if 条件:
        结果
    else:
        结果

    举例

    if 3 > 2:
        print(666)
    else:
        print(333)

    执行输出

    666

    第三种结构

    if 条件1:
        结果1
    elif 条件2:
        结果2
    elif 条件3:
        结果3

    举例

    choice = input('请输入你猜的数字:')
    if choice == '2':
        print('我请你吃饭')
    elif choice == '6':
        print('免一周作业')
    elif choice == '3':
        print('一起去玩耍')

    执行输出

    第4种结构

    if 条件1:
        结果1
    elif 条件2:
        结果2
    elif 条件3:
        结果3
    else:
        结果4

    举例

    choice = input('请输入你猜的数字:')
    if choice == '2':
        print('我请你吃饭')
    elif choice == '6':
        print('免一周作业')
    elif choice == '3':
        print('一起去玩耍')
    else:
        print('输入错误')

    执行输出

    == 表示做比较
    = 表示赋值

    第5种结构

    if 条件:
        if 条件:
            结果
        else:
            结果
    else:
        结果

    只要需求存在,就可以一直嵌套if

    举例

    age = int(input('请猜我的年龄:'))
    if True:
        if age == 18:
            print('恭喜你猜对了')
        else:
            print('这都看不出来...')
    else:
        print('输入错误')

    执行输出

    字符串之间不能比较大小,只能比较相等

    int ---> str str(12)  转换成字符串,使用str()
    str ---> int int(12) 全部由数字组成的字符串才能转化为数字

    十三、while循环

    用来执行重复的代码

    while True:
        print('痒')
        print('凉凉')
        print('体面')
        print('社会摇')

    执行输出


    凉凉
    体面
    社会摇

    ...

    while True 代表死循环

    另外一个例子

    print(222)
    while True:
        print(111)
        print(333)
    print(444)

    执行输出

    222

    111
    333

    111
    333

    ....

    444永远不会执行

    跳出循环的条件:
    1.改变条件
    2.breck

    标志位flag


    从1打印到100

    #标志位
    flag = True
    #初始值
    count = 1
    while flag:
        #第一次,打印初始值。之后打印自增值
        print(count)
        #循环一次,自增1
        count = count + 1
        #当等于100时,循环终止
        if count == 100:
            #打印100
            print(count)
            flag = False

    执行输出

    1

    2

    3

    ...

    100

    第2种写法

    #初始值
    count = 1
    while count < 101:
        #第一次,打印初始值。之后打印自增值
        print(count)
        #循环一次,自增1
        count = count + 1

    执行输出,效果同上

    breck:结束循环

    while True:
        print(111)
        print(222)
        break
        print(333)

    执行输出

    111

    222


    遇到breck,终止循环,下面的代码不执行

    continue:结束本次循环,继续下一次循环。
    continue 相当于见底了

    while True:
        print(111)
        print(222)
        continue
        print(333)

    执行输出

    111

    222

    ....

    333永远不会执行,为什么呢?遇到continue时,下面代码不执行,继续执行下一次循环,由于循环无法终止,所以最后一行代码,始终不会执行。

    使用breck方式,打印1到100

    #初始值
    count = 1
    while True:
        #第一次,打印初始值。之后打印自增值
        print(count)
        #循环一次,自增1
        count = count + 1
        if count == 101:
            break
            执行输出1到100

    执行输出1到100

    十四、相关练习题

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

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

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

    4、输出 1-100 内的所有偶数

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

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

    习题分析:

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

    观察题目,发现1~10,少了一个数字7

    思路如下:

    1.先输出1~10

    #初始值
    count = 0
    while count < 10:
        count = count + 1
        print(count)

    执行输出1~10

    2.遇到7的时候,不执行print()就可以了

    如果直接用breck,那么循环就终止了。这个时候,需要用到continue了

    最终代码如下:

    #初始值
    count = 0
    while count < 10:
        #自增1
        count = count + 1
        #判断为7时,终止此次循环,继续下一次循环
        if count == 7:
            continue
        print(count)

    执行输出

    1
    2
    3
    4
    5
    6
    8
    9
    10

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

    思路如下:

    1.先输出1~100

    #初始值
    count = 0
    while count < 100:
        #自增1
        count = count + 1
        print(count)

    2.需要定义一个总和变量the_sum,每次要向前推进加数字,就比如吃豆游戏一样

    #初始值
    count = 0
    #总和的初始值
    the_sum = 0
    while count < 100:
        #自增1
        count = count + 1
        the_sum = the_sum + count
        print(the_sum)
     
    print(the_sum)

    执行输出

    1
    3
    6

    ...

    5050

    上面的代码,我把每次相加的结果给打印出来了。

    0+1+2+3+....+100

    计算过程是从左至右的,0+1=1,再计算1+2=3,再计算3+3=6....

    解释一下代码执行过程

    第一次count=0,the_sum=0 执行到第7行时,count=1,那么the_sum结果1,所以输出1

    第二次count=1(因为whlie循环会迭代),执行到第7行时,count=2(1+1=2),那么the_sum的结果为3。因为第一次the_sum的值为1,所以这里为1+2=3

    第三次,count=2,执行到第7行时,count=3,那么the_sum的结果为6(3+3=6)

    所以最终结果为4950+100=5050

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

    先来介绍求奇数和偶数的方法

    用数字和2整除,取余 %
    等于1为奇数
    等于0为偶数

    思路和第2题类似

    1.先输出1~100

    #初始值
    count = 0
    while count < 100:
        #自增1
        count = count + 1
        print(count)

    执行输出1~100

    2.用count和2整除取余,如果为1,输出数字,否则不输出

    #初始值
    count = 0
    while count < 100:
        #自增1
        count = count + 1
        #取余,和2整除
        yushu = count % 2
        #为1表示奇数
        if yushu == 1:
            print(count)

    执行输出

    1
    3
    5

    ...

    99

    4、输出 1-100 内的所有偶数

    方法和第3题类似,把取余部分修改一下

    #初始值
    count = 0
    while count < 100:
        #自增1
        count = count + 1
        #取余,和2整除
        yushu = count % 2
        #为0表示偶数
        if yushu == 0:
            print(count)

    执行输出

    2
    4
    6

    ...

    100

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

    从这个公式可以发现出规律

    为偶数的是做减法

    为奇数的是做加法

    思路:

    在第二个题目基础上来做,第二个是1到100的求和

    1.先把第2题的代码贴过来

    2.在此基础上做一下稍微的改动,最终代码如下:

    # 初始值
    count = 0
    #计算最终值的初始值
    final_value = 0
    while count < 99:
        #自增1
        count = count + 1
        #取余,和2整除
        yushu = count % 2
        # 为1表示奇数
        if yushu == 1:
            # 做加法运算
            final_value = final_value + count
            print(final_value)
        # 偶数
        else:
            # 做减法运算
            final_value = final_value - count
            print(final_value)
     
    print(final_value)

    执行输出

    1
    -1
    2

    ...

    50

    最终结果为50

    注意: 这里最后一个数字是99,而不是100,所以是while count < 99

    上面的代码,我把每次计算的结果给打印出来了。

    0+1-2+3-4....+99

    计算过程是从左至右的,0+1=1,再计算1-2=-1,再计算-1+3=2....

    解释一下代码执行过程

    第一次count=0,final_value=0,执行到第7行时,count=1。做取余计算 1 / 2,结果为1。

    if判断等于1,结果成立,所以为奇数。计算等式final_value + count  也就是0+1=1,输出1

    第二次count=1,final_value=1,执行到第7行时,count=2。做取余计算 2 / 2,结果为0。

    if判断等于1,结果不成立,所以为偶数。计算等式final_value - count  也就是1-2=-1,输出-1

    第三次count=2,final_value=-1,执行到第7行时,count=3。做取余计算 3 / 2,结果为1。

    if判断等于1,结果成立,所以为奇数。计算等式final_value + count  也就是-1+3=2,输出2

    所以最终结果为-49+99=50

    6、用户登陆(三次机会重试)
    思路

    1.先来做简单的登录验证

    username = input('请输入用户名:')
    password = input('请输入密码:')
    if username == "xiao" and password == '123':
        print('ok')
    else:
        print('登录失败超过三次,请稍后重试!')

    2.用while循环来执行输入框,可以无限次尝试登录

    while True:
        username = input('请输入用户名:')
        password = input('请输入密码:')
        if username == "xiao" and password == '123':
            print('ok')
        else:
            print('登录失败超过三次,请稍后重试!')

    3.做一个变量用来记录登录失败次数,初始为0,如果登录失败,次数加1。达到3次,直接结束程序。

    #登录次数
    logins = 0
    while True:
        #判断登录次数
        if logins == 3:
            print('登录失败超过三次,请稍后重试!')
            break
        username = input('请输入用户名:')
        password = input('请输入密码:')
        #判断用户名和密码
        if username == "xiao" and password == '123':
            print('ok')
            break
        else:
            #次数加1
            logins += 1
            print('登录失败!')

    执行输出:

  • 相关阅读:
    IE7 下父元素及子元素的隐藏顺序带来的 display:none bug
    PHP 类的魔术方法及类的自动加载
    元素及文本的居中
    软件工程个人作业 词频统计
    读书笔记——《最后期限》
    读书笔记——《构建之法》
    [Reading] Asking while Reading
    【Paper Reading】Learning while Reading
    Android学习一:文件操作
    Android学习九:屏幕自适应
  • 原文地址:https://www.cnblogs.com/tu240302975/p/12640566.html
Copyright © 2011-2022 走看看