• Python01基础


    一、安装Python

    官方下载地址:https://www.python.org/downloads/

    Windows可直接下载安装,安装时勾选自动配置环境变量即可。
    Linux/OS X默认装有Python环境,如果版本过低可自行升级。

    二、Hello World程序

    #!/usr/bin/env python 
    #-*-coding:utf-8-*-                
    print(“Hello World”)
    
    • 上述代码中我们已经在头部指定了解释器(第1行),如果赋予该python程序文件可执行权限,可以直接像执行shell脚本一样执行python脚本,如:./hello.py
    • 通常情况下我们使用python hello.py来执行python脚本。
    • 字符编码:python2中需要指定utf-8编码才可以支持中文(第2行),python3中编码默认为utf-8支持中文。

    三、变量

    变量定义的规则

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

    定义变量示例:

    name = "David Hu"
    age = 22
    name_of_father = "James Hu"      #字母下划线组合
    NameOfMother = "Susan"           #驼峰组合  
    

    声明变量和赋值

    name = "David Hu"
    age = 22
    province = "Shandong"
    
    print(name,age,province)
    

    也可以一次定义多个变量,如:

    name,age,province = 'David Hu','22','Shandong'
    
    print(name,age,province)
    

    python中不能定义常量,当你需要定义常量时,全部大写默认为常量,如:

    MYSQL_CONNECTION = '192.168.1.200'
    

    代码注释

    # 单行注释和shell脚本中一样,前面加 #号即可,每行最多不能超过80个字符。
    
    '''
    多行注释
    前后输入3个单引号即可
    '''
    

    用户输入

    # Python2:
    user_input = raw_input("Please input your name:")
    user_input = input("Please input your name:")      # Python2中会认为这是变量而不是字符串
    
    # Python3:
    user_input = input("Please input your name:")      # Python3中默认接收的都是字符串。
    

    四、模块初识

    • getpass
    import getpass
    username = input("username:")
    password = getpass.getpass("password:") 
    # 使用getpass模块中的getpass方法,可以使密码不可见。
    
    print(username,password)
    
    • os
    import os
    os.system('df -h')  # 使用os模块中的system方法,可以使用系统命令。
    os.mkdir('TestDir') # 使用os模块中的mkdir方法,可以新建目录。
    cmd_res = os.popen('df -h').read()  # 保存df -h的结果到cmd_res。
    
    • sys
    import sys
    print(sys.path)  # 查看Python环境变量列表
    
    • 结合使用
    import os,sys
    os.system(''.join(sys.argv[1:]))
    # 把用户的输入的参数当作一条命令交给os.system来执行
    
    • 自定义模块
      如:Linux下Python tab补全模块
    #!/usr/bin/env python 
    # python startup file 
    import sys
    import readline
    import rlcompleter
    import atexit
    import os
    # tab completion 
    readline.parse_and_bind('tab: complete')
    # history file 
    histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
    try:
        readline.read_history_file(histfile)
    except IOError:
        pass
    atexit.register(readline.write_history_file, histfile)
    del os, histfile, readline, rlcompleter
    
    for Linux
    

    自己写的或第三方的模块可以放在全局环境变量目录即可导入使用,Python2.7默认路径为:/usr/lib/python2.7/dist-packages,不同的环境放的位置不同,使用 print(sys.path) 可以查看python环境变量列表。

    五、if……else语句

    场景一、用户登录验证

    提示输入用户名和密码,验证用户名和密码,如果输入错误,则输出“用户名或密码错误”,如果输入正确,则输出“欢迎XXX”

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    import getpass
    
    true_name = "David"
    true_passwd = "pwd"
    input_name = input("Please input your name:")
    input_passwd = getpass.getpass("Please input your password:")
    
    if input_name == true_name and input_passwd == true_passwd:
        print("Welcome",input_name)
    else:
        print("Login failure:unknown username or bad password.")
    

    场景二、猜年龄游戏

    在程序中设定好你的年龄,然后启动程序让用户猜你的年龄,用户输入后,根据他的输入判断是否正确,如果错误,提示猜大了还是猜小了,如果正确,提示猜对了。

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    my_age = 22
    user_input = int(input("Please enter a guess my age:"))
    
    if user_input > my_age:
        print("Think smaller!")
    elif user_input < my_age:
        print("Think bigger!")
    else:
        print("Congratulations,you got it!")
        break
    

    六、for循环

    最简单的循环10次

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    for i in range(10):
        print("loop:",i)
    

    输出结果:

    loop: 0
    loop: 1
    loop: 2
    loop: 3
    loop: 4
    loop: 5
    loop: 6
    loop: 7
    loop: 8
    loop: 9
    

    需求一:还是上面的程序,但是遇到小于5的循环次数就不走了,直接跳入下一次循环

    for i in range(10):
        if i < 5:
            continue        #不往下走了,直接进入下一次循环
        print("loop:",i)
    

    需求二:还是上面的程序,但是遇到大于5的循环次数就不走了,直接退出

    for i in range(10):
        if i > 5:
            break        #不往下走了,直接跳出整个循环
        print("loop:",i)
    

    猜年龄游戏优化需求:

    当用户猜错时,可再次重试,每猜错3次提示是否继续猜,选择y则继续猜,选择n则结束。

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    my_age = 22
    counter = 0
    for i in range(10):
        if counter < 3:
            user_input = int(input("Please enter a guess my age:"))
            if user_input > my_age:
                print("Think smaller!")
            elif user_input < my_age:
                print("Think bigger!")
            else:
                print("Congratulations,you got it!")
                break
        else:
            continue_confirm = input("Do you want to continue?(y/n):")
            if continue_confirm == 'y':
                counter = 0
                continue
            else:
                break
        counter += 1
    

    七、While循环

    死循环:

    count = 0
    while True:
        print("loop:",count)
        count += 1
    

    上面的代码循环100次就退出:

    count = 0
    while True:
        print("loop:",count)
        count += 1
        if count > 100:
            print("洗洗睡吧!")
            break
    

    继续优化上面的猜年龄游戏:

    让用户不断的猜年龄,但超过3次猜错时就退出程序

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    my_age = 22
    counter = 0
    while counter < 3:
        user_input = int(input("Please enter a guess my age:"))
        if user_input > my_age:
            print("Think smaller!")
        elif user_input < my_age:
            print("Think bigger!")
        else:
            print("Congratulations,you got it!")
            break
        counter += 1
    else:
        print("猜这么多次都不对,笨蛋!")
    

    八、三元运算

    什么是三元运算?

    result = 值1 if 条件 else 值2
    如果条件为真:result = 值1
    如果条件为假:result = 值2
    

    举个栗子:

    a,b = 1,2
    c = a if a > b else b
    print(c)
    
  • 相关阅读:
    记录一些常用的JS属性和语句
    明确前端工作定位
    PHP实现定时执行任务的方法
    经典的阿里前端笔试题
    CSS3 一、文本阴影textshadow属性
    Javascript作用域
    DOM事件探秘
    JavaScript中‘this’关键词的优雅解释
    Sublime Text3 支持Less
    修改table 设置默认值
  • 原文地址:https://www.cnblogs.com/huyuedong/p/5717396.html
Copyright © 2020-2023  润新知