zoukankan      html  css  js  c++  java
  • Python-01 基础语法

    初识Python

    python是一门什么样的语言?

    编译性和解释性
    
    静态语言和动态语言
    
    强类型定义和弱类型定义
    

    从以上三个方面分析可以得出:Python是一们动态解释性的强类型定义语言。

    Python的优缺点

    优点:

    1 优雅、明确、简单
    2 开发效率高,拥有强大的第三方库
    3 高级语言
    4 可移植性
    5 可扩展性
    6 可嵌入性
    

    缺点:

    1 速度慢,极高速度要求不能满足
    2 代码不能加密,咬明文展示
    3 线程不能利用多CPU问题,一个python的解释器进程内又一条主线程,禁止多线程的并行执行。
    4 等等
    

    Python解释器

    解释器有:Cpython,IPython,PyPy,Jython,IronPython等,其中使用最广泛的是CPython。如果要和Java平台交互,最好的办法是通过网络调用来交互,确保各个程序之间的独立性。

    Python安装以及环境变量配置

    第一步下载:
    
    https://www.python.org/downloads/
    第二步安装:
    
    可以选择安装路径,默认安装路径是C:python39
    第三步:环境变量配置
    
    右击计算机-->属性-->高级系统设置-->高级tab下-->环境变量
    --> 系统变量-->选择path-->编辑-->新建-->C:python39-->
    一路确定即可
    第四步: 验证
    win+R -->cmd-->python
    可以出现如下表示安装以及配置环境变量成功
    Python 3.9.5 (tags/v3.9.5:0a7dcbd, May  3 2021, 17:27:52) [MSC v.1928 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    
    

    第一个Python程序

    创建一个hello.py的文件

    print("Hello World!")
    

    进入cmd->执行python hello.py,运行可以看到Hello World!

    Python变量

    变量的定义

    name ="gavin"
    上述代码声明了一个变量,变量名为: name,变量name的值为: "gavin"
    

    变量定义的规则

    1 变量名只能是字母、数字或下划线的任意组合
    2 变量名的第一个字符不能是数字
    3 以下关键字不能声明为变量名[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', 'yrield']
    4 不可以带空格,不能以$开头
    

    变量名的约定

    1 变量名要做到见名知义
    2 不要拿中文做变量名
    3 变量名尽量不要写中文拼音
    4 若变量名称过长,可以使用下划线分割,例如:gavin_birthday
    5 简写的名字大写
    

    命名方式

    驼峰体:NumberOfStudents
    
    下划线:number_of_students(官方推荐)
    

    Python常量

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

    PI=3.1415926.....
    

    Python注释

    当前行注释 :# 被注释的内容
    多行注释: """被注释内容"""
    多行注释中,可以使用三个单引号对或者使用三个双引号对
    若对多行注释进行变量赋值,则可以对多行注释可以进行打印
    单引号和双引号的使用需要间隔开。
    

    Python2和Python3的主要区别

    python2种默认不支持中文字符集
    如果需要使用中文,则需要在.py文件中加上
    # -*coding:utf-8 -*-
    在python3中则可以直接使用中文
    

    输入函数

    默认输入的内容是字符串类型的
    job = input("please input your job:")
    print("your  job is ",job)
    可以使用print(type(job))来检验
    结果是:<class 'str'>
    

    如果要输入一个整数类型的数据

    则可以通过int()函数进行限制

    # 字符串转化为数字
    test = int(input("输入一个整数"))
    print(type(test))
    # 整形转化为字符串
    print(type(str(test)))
    

    输出函数格式化的方式

    方式一:通过占位符

    info = '''
       %s Info
    name:%s
    age:%s
    sex:%s 
    ''' %(name,name,age,sex)
    print(info)
    # %s s 代表字符串
    # %d d 代表整数
    # %f f 代表浮点数
    

    方式二:通过{name},{age}....的方式对应参数

    info2 = '''
       {name} Info
    name:{name}
    age:{age}
    sex:{sex}
    '''.format(name=name
               ,age=age,
               sex=sex)
    print(info2)
    

    方式三:通过{0},{1}....的方式对应参数

    info3 =  '''
    -------- info of {0} -----
    Name:{0}
    age:{1}
    sex:{2}
    '''.format(name,age,sex)
    print(info3)
    

    方式四:通过字符串的拼接符号“+”进行拼接

    name="gavin"
    print("my name is "+name)
    #这种拼接的方式效率低下,不建议多次拼接使用
    

    模块导入,密码输入为密文,而不是明文

    #导入模块
    import  getpass
    
    username = input("username:")
    #password = input("password")
    password = getpass.getpass("password:")
    print(username,password)
    

    程序结构设计

    用户登录(If循环)

    语法

    if 判断条件:
        执行语句……
    else:
        执行语句……
    或者:
    if 判断条件1:
        执行语句1……
    elif 判断条件2:
        执行语句2……
    elif 判断条件3:
        执行语句3……
    else:
        执行语句4……
    

    案例

    #设定用户名和密码
    _username = "gavin"
    _password = "1234"
    
    #输入用户名和密码
    username = input("username :")
    password = input("password :")
    if username==_username:
        if password==_password:
            print("login in successful")
        else:
            print("password is error ,please input again")
    else:
        print("username is error ,please input again")
    

    猜数字游戏(While循环)

    语法

    while 判断条件(condition):
        执行语句(statements)……
    

    案例

    # Author :liqiang
    # 猜测年龄,多次猜测
    age_of_gavin = 25
    count = 0;#次数
    while True:
        guess_age = int(input("guess age:"))
        count+=1;
        if count<3:
            if guess_age == age_of_gavin:
                print('''你猜对了,真棒! 使用了 {count} 次'''.format(count=count))
                break
            elif guess_age > age_of_gavin:
                print("你猜大啦,再小点")
            else:
                print("你猜小啦,再大点")
        else:
            print('''{count}次机会用完'''.format(count=count))
            break
    

    方式二:循环使用 else 语句

    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")
    

    猜数字(For循环)

    语法

    for iterating_var in sequence:
       statements(s)
    for i in range(0,10,2):
        print(i)
     其中: 打印的数据包括0,但是不包括10 ,2代表步长,i就相当于索引
    

    案例

    ​ 在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

    # Author :liqiang
    # 猜测年龄,多次猜测
    age_of_gavin = 25
    count = 0;#次数
    for i in range(3):
        guess_age = int(input("guess age:"))
        if guess_age == age_of_gavin:
            print('''你猜对了,真棒! 使用了 {count} 次'''.format(count=i+1))
            break
        elif guess_age > age_of_gavin:
            print("你猜大啦,再小点")
        else:
            print("你猜小啦,再大点")
    else:
        print('''{count}次机会用完,没有猜对噢'''.format(count=count+1))
    

    通过序列索引迭代(for)

    fruits = ['香蕉', '苹果',  '梨子','葡萄']
    
    for index in range(len(fruits)):
       print ('当前水果 : %s' % fruits[index])
       print('''当前水果是 : {kind}'''.format(kind=fruits[index]))
    

    Python嵌套循环

    Python for的嵌套循环语法

    for iterating_var in sequence:
       for iterating_var in sequence:
          statements(s)
       statements(s)
    

    Python while的嵌套循环语法

    while expression:
       while expression:
          statement(s)
       statement(s)
    

    注意:可以在for循环中嵌入while循环,反之也可以在while循环中嵌入for循环

    Python之break与continue

    break-终止循环语句

    break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
    
    break语句用在while和for循环中。
    
    如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。
    

    continue-跳出本次循环

    continue 语句跳出本次循环,而break跳出整个循环。
    
    continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
    
    continue语句用在while和for循环中。
    

    注意:可以通过断点调试的方式进行演示,方便观察数据的变化。

    模块初识

    1、sys模块

    import sys
    
    print(sys.path)#打印环境变量
    
    #导入模块时,先在当前目录进行查找,再到site-package查找,
    
    #再去全局环境变量查找,如果都没有导入的模块名称,则报错
    
    print(sys.argv)#打印脚本相对路径
    
    print(sys.argv[2])#获取用户传入的第三个参数
    

    2、os模块

    import os
    
    os.system("dir")#执行命令不保存结果
    
    cmd_res=os.popen("dir").read()#执行命令后可以保存结果
    
    os.mkdir("test_dir")#创建目录
    

    3、.py2c是个什么东东

    ​ Python是一门先编译后解释的语言,执行时先查找pyc文件,存在直接调用,

    ​ 不存在则将编译结果保存到内存中,程序运行结束后,保存到pyc文件中

    4、数据类型

    数字类型

      ```python
    

    整型、长整型、浮点型、complex复数

    长整型:Python的长整型没有指定位宽,但也不是无限大

    科学计数法:50000=5E4=5*10**4
    ```

    布尔值

    1或者0
    
    True或者False
    

    字符串

    name = "gavin"
    

    bytes数据类型

    编码转换(string<-->bytes)
    
     encode('utf-8')编码成2进制,编码之前为utf-8
    
     decode('utf-8')用utf-8解码
    
     for example:
    
         编码:'aa'.encode('utf-8')
    
             b'xe2....'
    
         解码:b'xe2....'.decode('utf-8')
    
             'aa'
    

  • 相关阅读:
    [c/c++] programming之路(13)、函数
    [c/c++] programming之路(12)、循环结构
    opencv学习之路(18)、霍夫变换
    [c/c++] programming之路(11)、顺序分支
    opencv学习之路(17)、边缘检测
    opencv学习之路(16)、膨胀腐蚀应用之走迷宫
    [c/c++] programming之路(10)、格式符后续
    opencv学习之路(15)、形态学其他操作(开、闭、顶帽、黑帽、形态学梯度)
    opencv学习之路(14)、形态学之膨胀腐蚀
    [c/c++] programming之路(9)、运算优先级
  • 原文地址:https://www.cnblogs.com/liqbk/p/15087978.html
Copyright © 2011-2022 走看看