zoukankan      html  css  js  c++  java
  • Python之路 (1)

    一、初识Python                                                        

    1、Python 安装

    1 1、下载安装包
    2     https://www.python.org/downloads/
    3 2、安装
    4     默认安装路径:C:python27
    5 3、配置环境变量
    6     【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
    7     如:原来的值;C:python27,切记前面有分号

    注意:如果是win10,需要将变量调整到第一个,或许我是这样。

     2、如何将Python2和Python3共存

    修改python路径中的exe名字,python2,python3,区别调用Python的版本

    python D:2.txt    跟文件的后缀名暂时无关

    print ('hello world')

    3、Python的两种执行方式

            Python 解释器 py 文件路径

           Python 进入解释器:    实时输入并获取到执行结果

    #!/usr/bin/env  python   指定解释器     linux系统中特有的
    # -*- coding:utf8 -*- 在python3 里加不加都无所谓

     4,注释。

    当行注释:# 被注释内容

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

    5,变量

    变量是什么?

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

    5.1、声明变量

    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3   
    4 name = "taibai"

    5.2、变量定义的规则:

      • 变量名只能是 字母、数字或下划线的任意组合
      • 变量名的第一个字符不能是数字
      • 以下关键字不能声明为变量名
        ['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']
      • 变量的定义要具有可描述性。

    5.3、推荐定义方式

    1 #下划线
    2 
    3 age_of_oldboy = 56
    4 
    5 number_of_students = 80

    5.4、变量的赋值

    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3 
    4 name1 = "wupeiqi"
    5 name2 = "alex"

    5.5、定义变量不好的方式举例

    • 变量名为中文、拼音
    • 变量名过长
    • 变量名词不达意

     

    6,常量

    常量即指不变的量,如pai 3.141592653..., 或在程序运行过程中不会改变的量

    举例,假如老男孩老师的年龄会变,那这就是个变量,但在一些情况下,他的年龄不会变了,那就是常量。

    在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量

    AGE_OF_OLDBOY = 56

    7,程序交互

    7.1 执行脚本就会发现,程序会等待你输入姓名后再往下继续走。

    1 #!/usr/bin/env python
    2 # -*- coding: utf-8 -*-
    3   
    4 # 将用户输入的内容赋值给 name 变量
    5 name = input("请输入用户名:")
    6   
    7 # 打印输入的内容
    8 print(name)

     

    7.2、可以让用户输入多个信息,如下

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    name = input("What is your name?")
    age = input("How old are you?")
    hometown = input("Where is your hometown?")
    
    print("Hello ",name , "your are ", age , "years old, you came from",hometown)

    8,基础数据类型(初始)。

    什么是数据类型?

      我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不清1和‘汉’的区别的,因此,在每个编程语言里都会有一个叫数据类型的东东,其实就是对常用的各种数据类型进行了明确的划分,你想让计算机进行数值运算,你就传数字给它,你想让他处理文字,就传字符串类型给他。

    Python中常用的数据类型有多种,今天我们暂只讲3种, 数字、字符串、布尔类型

    8.1、整数类型(int)。

    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

    1 >>> a= 2**64
    2 >>> type(a)  #type()是查看数据类型的方法
    3 <type 'long'>
    4 >>> b = 2**60
    5 >>> type(b)
    6 <type 'int'>

    8.2、字符串类型(str)。

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

    >>> name = "Alex Li" #双引号
    >>> age = "22"       #只要加引号就是字符串
    >>> age2 = 22          #int
    >>> 
    >>> msg = '''My name is taibai, I am 22 years old!'''  #我擦,3个引号也可以
    >>> 
    >>> hometown = 'ShanDong'   #单引号也可以

    那单引号、双引号、多引号有什么区别呢? 让我大声告诉你,单双引号木有任何区别,只有下面这种情况 你需要考虑单双的配合

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

    多引号什么作用呢?作用就是多行字符串必须用多引号

     

    msg = '''
    今天我想写首小诗,
    歌颂我的同桌,
    你看他那乌黑的短发,
    好像一只炸毛鸡。
    '''
    print(msg)

    字符串拼接

    数字可以进行加减乘除等运算,字符串呢?让我大声告诉你,也能?what ?是的,但只能进行"相加"和"相乘"运算。

     

    >>> name
    'Alex Li'
    >>> age
    '22'
    >>> 
    >>> name + age  #相加其实就是简单拼接
    'Alex Li22'
    >>> 
    >>> name * 10 #相乘其实就是复制自己多少次,再拼接在一起
    'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'

    8.3、布尔值(True,False)。

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

    但其实你们并不明白对么? let me explain, 我现在有2个值 , a=3, b=5 , 我说a>b你说成立么? 我们当然知道不成立,但问题是计算机怎么去描述这成不成立呢?或者说a< b是成立,计算机怎么描述这是成立呢?

    没错,答案就是,用布尔类型

    1 >>> a=3
    2 >>> b=5
    3 >>> 
    4 >>> a > b #不成立就是False,即假
    5 False
    6 >>> 
    7 >>> a < b #成立就是True, 即真
    8 True

    9,格式化输出。

    现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式

    1 ------------ info of Alex Li -----------
    2 Name  : Alex Li
    3 Age   : 22
    4 job   : Teacher
    5 Hobbie: girl
    6 ------------- end -----------------

    你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势

    只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好啦

     

     1 name = input("Name:")
     2 age = input("Age:")
     3 job = input("Job:")
     4 hobbie = input("Hobbie:")
     5 
     6 info = '''
     7 ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name 
     8 Name  : %s  #代表 name 
     9 Age   : %s  #代表 age  
    10 job   : %s  #代表 job 
    11 Hobbie: %s  #代表 hobbie 
    12 ------------- end -----------------
    13 ''' %(name,name,age,job,hobbie)  # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 
    14 
    15 print(info)

     

    11,流程控制之--if。

    假如把写程序比做走路,那我们到现在为止,一直走的都是直路,还没遇到过分叉口,想象现实中,你遇到了分叉口,然后你决定往哪拐必然是有所动机的。你要判断那条岔路是你真正要走的路,如果我们想让程序也能处理这样的判断怎么办? 很简单,只需要在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。

    if...else 语句

    单分支

     

    if 条件:
        满足条件后要执行的代码

    双分支

    """
    if 条件:
        满足条件执行代码
    else:
        if条件不满足就走这段
    """
    AgeOfOldboy = 48
    
    if AgeOfOldboy > 50 :
        print("Too old, time to retire..")
    else:
        print("还能折腾几年!")

    你会发现,上面的if代码里,每个条件的下一行都缩进了4个空格,这是为什么呢?这就是Python的一大特色,强制缩进,目的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成立后,去执行哪些代码呢?

    在其它的语言里,大多通过{}来确定代码块,比如C,C++,Java,Javascript都是这样,看一个JavaScript代码的例子

     

    var age = 56
    if ( age < 50){
      console.log("还能折腾")
        console.log('可以执行多行代码')
    }else{
       console.log('太老了')
    }
    if 条件:
        满足条件执行代码
    elif 条件:
        上面的条件不满足就走这个
    elif 条件:
        上面的条件不满足就走这个
    elif 条件:
        上面的条件不满足就走这个    
    else:
        上面所有的条件不满足就走这段

    写个猜年龄的游戏吧

    age_of_oldboy = 48
    
    guess = int(input(">>:"))
    
    if guess > age_of_oldboy :
        print("猜的太大了,往小里试试...")
    
    elif guess < age_of_oldboy :
        print("猜的太小了,往大里试试...")
    
    else:
        print("恭喜你,猜对了...")

    要求用户输入0-100的数字后,你能正确打印他的对应成绩

    score = int(input("输入分数:"))
    
    if score > 100:
        print("我擦,最高分才100...")
    elif score >= 90:
        print("A")
    elif score >= 80:
        print("B")
    elif score >= 60:
        print("C")
    elif score >= 40:
        print("D")
    else:
        print("太笨了...E")

    这里有个问题,就是当我输入95的时候 ,它打印的结果是A,但是95 明明也大于第二个条件elif score >=80:呀, 为什么不打印B呢?这是因为代码是从上到下依次判断,只要满足一个,就不会再往下走啦,这一点一定要清楚呀!

    12,流程控制之--while循环。

    12.1,基本循环

    while 条件:
         
        # 循环体
     
        # 如果条件为真,那么循环体则执行
        # 如果条件为假,那么循环体不执

    12.2,循环中止语句 

    如果在循环的过程中,因为某些原因,你不想继续循环了,怎么把它中止掉呢?这就用到break 或 continue 语句

    • break用于完全结束一个循环,跳出循环体执行循环后面的语句
    • continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环

    例子:break

     

    count = 0
    while count <= 100 : #只要count<=100就不断执行下面的代码
        print("loop ", count)
        if count == 5:
            break
        count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
    
    print("-----out of while loop ------")

    输出

    loop  0
    loop  1
    loop  2
    loop  3
    loop  4
    loop  5
    -----out of while loop ------

    例子:continue

    count = 0
    while count <= 100 : 
        count += 1
        if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop
            continue 
        print("loop ", count)
    
    print("-----out of while loop ------")

    输出

    loop  1
    loop  2
    loop  3
    loop  4
    loop  5
    loop  95
    loop  96
    loop  97
    loop  98
    loop  99
    loop  100
    loop  101
    -----out of while loop ------

    12.3,while ... else ..

    与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句

    while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句

    count = 0
    while count <= 5 :
        count += 1
        print("Loop",count)
    
    else:
        print("循环正常执行完啦")
    print("-----out of while loop ------")

    输出

    Loop 1
    Loop 2
    Loop 3
    Loop 4
    Loop 5
    Loop 6
    循环正常执行完啦
    -----out of while loop ------

    如果执行过程中被break啦,就不会执行else的语句啦

    count = 0
    while count <= 5 :
        count += 1
        if count == 3:break
        print("Loop",count)
    
    else:
        print("循环正常执行完啦")
    print("-----out of while loop ------")

    输出

    Loop 1
    Loop 2
    -----out of while loop ------

    四,相关练习题。

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

    1 count = 0
    2 while count < 10:
    3     count = count + 1
    4     if count == 7:
    5         pass
    6     else:
    7         print(count)

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

    1 sum = 0
    2 a = 1
    3 while a < 101:
    4     a = a + 1
    5     sum = a + sum
    6 print(sum)

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

    count = 0
    while count < 100:
        count = count + 1
        if count % 2 == 1:
            print(count)
            

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

    count = 0
    while count < 100:
        count = count + 1
        if count % 2 == 0:
            print(count)

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

    n = 1
    s = 0
    while n < 100:
        temp = n % 2
        if temp == 0:
            s = s - n
        else:
            s = s + n
        n = n + 1
    print(s)

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

     1 count = 0
     2 while count < 4:
     3     count = count + 1
     4     name = input ("请输入你的用户名")
     5     password = input ("请输入你的密码")
     6     if name == "admin" and password == "admin":
     7         print("登陆成功")
     8         break
     9     else:
    10         if count == 1:
    11             print ("用户名或密码错误,您还有2次机会")
    12         if count == 2:
    13             print("用户名或密码错误,您还有1次机会")
    14         if count == 3:
    15             print ("抱歉,输入错误太多,已经锁定您的账户")
    16             break
    17 print("谢谢您的使用")
    View Code
  • 相关阅读:
    威尔逊定理  知识点
    费马小定理及推论 知识点
    勾股定理和勾股数
    hdu6441 Find Integer (费马大定理)
    费马大定理
    莫队算法 [国家集训队]小Z的袜子
    R49 A-D D图有向有环图
    #505 1&2 A-C 后面未完成
    stack 的一些用法
    bzoj 2844 albus就是要第一个出场 异或和出现次数 线性基
  • 原文地址:https://www.cnblogs.com/xiaomai-rhce/p/9497920.html
Copyright © 2011-2022 走看看