zoukankan      html  css  js  c++  java
  • Python基础(上)

    前言

    Python的意思是蟒蛇,源于作者Guido van Rossum(龟叔)喜欢的一部电视剧。

    Python基础概述

    1.优点

    简单:Python是一种代表简单主义的语言。Python这种伪代码本质是它最大的优点之一,它使你能够专注于解决问题而不是搞明白语言本身。

    易学:Python极易上手,它有着极其简单的语法,Python采用强制缩进的方式使得代码具有极佳的可读性。

    免费、开源:Python是FLOS(自由/开放源码软件)之一。可以自由地发布这个软件的拷贝、阅读它的源码、并改动它和闭源。

    高层语言:无需关心内存方面的管理之类的底层细节。

    跨平台(可移植性):Python已经被移植在多个平台,在任何平台都可以在不修改源码的情况下运行Python程序。

    解释性:Python程序不需要编译成二进制码,可以直接源代码运行程序,在计算机内部,Python解释器把源代码转换成字节码的中间形式,再把它翻译成计算机使用的机器语言运行。

    面向对象:Python既支持面向过程编程也支持面向对象编程,相比其它语言如Java和C#相比,它以一种非常强大又简单的方式实现面向对象编程。

    可扩展性:如果需要关键代码运行得更快或希望某些算法不公开,可以把这一部分使用C或C++编写,然后在Python程序中使用它们。

    丰富的库:Python标准库很庞大。

    2.缺点

    运行速度:如果对运行速度有要求的话,用C++改写关键部分。

    中文资源匮乏:入门资料多,高级内容还得看英文版。

    架构选择太多:没有像C#这样的官方.NET企业架构,

    3.应用场景

    Web应用开发:一些Web框架,如Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂Web程序。

    操作系统管理、服务器运维和自动化脚本:在很多操作系统里,Python是标准的系统组件。大多数Linux发行版和MacOS都集成了Python,可以在终端直接运行Python。Python能够访问Windows的COM服务及其它Windows API。使用IroPython,Python程序可以直接调用.Net Frameword。

    科学计算:NumPySciPyMatplotlibPandas等,可以让Python程序员编写科学计算程序。

    桌面软件:PyQt,PySide,wxPython,PyGTK可以使用Python快速开发桌面应用程序。

    服务器软件:Python对于各种网络协议的支持非常完美,因此常被用于编写服务器软件、网络爬虫、第三方库Twisted支持异步网络编程和多数标准的网络协议,并且提供了多种工具,被广泛用于编写高性能的服务器软件。

    游戏:很多游戏使用C++编写图形显示等高性能模块,使用Python编写游戏的逻辑、服务器。

    注释

    1.单行注释

    #开头、#右边的所有内容当作说明而非真正要执行的内容。

    1 #我是单号注释
    2 print('Hello Jonins')

    2.多行注释

    '''(3个单引号)开始以'''(3个单引号)结尾,中间的内容被当作说明。(也可以用3个双引号""")

    1 '''
    2 我是多行注释
    3 '''
    4 """
    5 我是多行注释
    6 """
    7 print('Hello Jonins')

    中文支持

    Python3支持中文,但在Python2中,程序只要包含中文,python2的解释器不能识别所以会报错,所以需要在程序的最开头输入如下代码:

    1 #conding=utf-8

    还有一种写法,是python的语法规范中推荐使用的:

    1 #-*- conding:utf-8 -*-

     完整的示例如下:

    变量及类型

    1.变量定义

    python是一门弱类型语言,意味着不用强调变量的类型,在变量的定义前面不需要加变量的类型。

    1 num1 = 10#num1在变量赋值的过程中自动赋值自己的类型
    2 num2 = 20
    3 total = num1+num2
    4 print(total)

    若想查看变量的类型,可以使用type(变量名):

    1 num1 = 10
    2 num1 = '1'
    3 print(type(num1))

    2.变量类型

    为了更充分的利用内存空间以及更高效的管理内存,变量有不同类型的,常用的数据类型如下:

    标识符和关键字 

    标识符是我们自己定义的如:变量名、函数名等。

    标识符只能由数字、字母和下划线组成,并且数字不能在开头

    关键词是python已经使用了的,具有特殊功能的标识符。python不允许开发者自己定义和关键词相同名字的标识符。可以通过代码查看python具有哪些关键词:

    import keyword
    keys = keyword.kwlist;
    print(keys)

    大致有如下这些:

    ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for',
    'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

    输入(input)

    1.Python2中输入

    python2中,获取键盘输入的数据的方式采用raw-input()函数,示例如下:

    name=raw_input("请输入姓名:")
    print(name)

    说明:

    raw-input()的小括号中放入的是,提示信息,用来在获取数据之前给用户一个提示。

    raw-input()在从键盘获取到数据以后,会将数据存放到等号右边的变量中。

    raw-input()会把用户输入的任何值都作为字符串来存储。

    python2中的input()函数于raw_input()类似,但其接受的输入必须是表达式(切换python2的交互窗口进行验证)如下所示:

     1 >>> num=input()
     2 123#输入123自动识别为int
     3 
     4 >>> num
     5 123
     6 >>> type(num)
     7 <type 'int'>
     8 >>> str=input()
     9 'jonins'#输入"或'自动识别为string
    10 
    11 >>> str
    12 'jonins'
    13 >>> type(str)
    14 <type 'str'>
    15 >>> num=input()
    16 1+2+3#同类型可以相加
    17 
    18 >>> num
    19 6
    20 >>> str=input()
    21 '1010'+'jonsin'#string同类型则会拼接
    22 
    23 >>> str
    24 '1010jonsin'
    25 >>>

    2.Python3中输入

    python3中没有raw_input()函数,只有input()并且python3中的input()功能与python2中的raw_inpu()功能一样。

    输出(print)

    1.普通输出

    1 print('hello jonins')
    2 age=18
    3 print(age)

    2.格式化输出

    在程序中若想在输出中给变量占位需要使用%号格式化输出,如下所示

    1 age=18
    2 print('年龄是:%d已成年!'%age)
    3 name='jonins'
    4 print('姓名%s,年龄%d岁.'%(name,age))

    在程序,看到%这样的操作符,就是python的格式化输出

    3.常用的格式符号

    下面是完整的,可以与%符号配合使用的列表: 

    格式符号 转换
    %c 字符
    %s 通过str()字符串转换来的格式化
    %i 有符号十进制整数
    %d 有符号十进制整数
    %u 无符号十进制整数
    %o 八进制整数
    %x 十六进制整数(小写字母)
    %X 十六进制整数(大写字母)
    %e 索引符号(小写e)
    %E 索引符号(大写E)
    %f 浮点实数
    %g %f和%e的简写
    %G %f和%E的简写

    4.换行输出

    在输出的时候,如果有 那么,此时 后的内容会在另外一行显示

    1 print('姓名jonins
    年龄18岁')

    运算符

    1.算术运算符

    注意:当算术的运算两个对象不是同类型,也是可以计算的,结果会跟随类型较大的对象。如:9/3.0 =3.0

    2.赋值运算符

    运算符=,为赋值运算符,作用是把等号右边的结果给左边的变量,示例如下:

    1 a,b=1,3
    2 print(a+b)
    3 c,d=2.0,'jonins'
    4 print(c)
    5 print(d)

    3.复合赋值运算符

    运算符 描述 示例
    += 加法赋值 a+=b等效于a=a+b
    -= 减法赋值 a-=b等效于a=a-b
    *= 乘法赋值 a*=b等效于a=a*b
    /= 除法赋值 a/=b等效于a=a/b
    //= 取整除赋值 a//=b等效于a=a//b
    %= 取余赋值 a%=b等效于a=a%b
    **= 幂计算赋值 a**=b等效于a=a**b

    数据类型转换

     

    示例

    1 str='3'
    2 num=float(str)
    3 print(num)

    判断语句(if&elif)

    1.if-else语句

    if-else的使用格式:

     1 if 条件:
     2     满足条件时要做的事情1
     3     满足条件时要做的事情2
     4     满足条件时要做的事情3
     5     满足条件时要做的事情4
     6     ...(省略)...
     7 else:
     8     不满足条件时要做的事情1
     9     不满足条件时要做的事情2
    10     不满足条件时要做的事情3
    11     不满足条件时要做的事情4
    12     ...(省略)...

    示例如下:

    1 age=18
    2 print('--------if判断开始----------')
    3 if age>=18:
    4     print('已成年')
    5     print('年龄是%i'%age)
    6 else:
    7     print('未成年')
    8     print('年龄是%i'%age)
    9 print('--------if判断结束----------')

    注意:代码的缩进为一个tab键,或者4个空格。解释器会将缩进的语句判定为满足条件时执行的代码。对应的C#代码如下所示:

     1             int age = 18;
     2             Console.WriteLine("--------if判断开始----------");
     3             if (age >= 18)
     4             {
     5                 Console.WriteLine("已成年");
     6                 Console.WriteLine($"年龄是{age}");
     7             }
     8             else
     9             {
    10                 Console.WriteLine("未成年");
    11                 Console.WriteLine($"年龄是{age}");
    12             }
    13             Console.WriteLine("--------if判断结束----------");
    14             Console.ReadKey();
    C# Code

    2.elif语句 

    elif的使用格式如下:

     1 if 条件1:
     2     满足条件1时要做的事情1
     3     满足条件1时要做的事情2
     4     满足条件1时要做的事情3
     5     满足条件1时要做的事情4
     6     ...(省略)...
     7 elif 条件2:
     8     满足条件2时要做的事情1
     9     满足条件2时要做的事情2
    10     满足条件2时要做的事情3
    11     满足条件2时要做的事情4
    12     ...(省略)...
    13 else:
    14     不满足上述所有条件时要做的事情1
    15     不满足上述所有条件时要做的事情2
    16     不满足上述所有条件时要做的事情3
    17     不满足上述所有条件时要做的事情4
    18     ...(省略)...

    示例如下:

     1 age=18
     2 print('--------if判断开始----------')
     3 if age==16:
     4     print('已年满16岁')
     5 elif age==18:
     6     print('已成年')
     7     print('年龄是%i'%age)
     8 else:
     9     print('未成年')
    10     print('年龄是%i'%age)
    11 print('--------if判断结束----------')

    elif语句一定要配合if使用,可以有else也可以没有,elif的条件不限制,对应的C#代码如下所示:

     1             int age = 18;
     2             Console.WriteLine("--------if判断开始----------");
     3 
     4             if (age == 16)
     5                 Console.WriteLine("已年满16岁");
     6             else if (age == 18)
     7             {
     8                 Console.WriteLine("已成年");
     9                 Console.WriteLine($"年龄是{age}");
    10             }
    11             else
    12             {
    13                 Console.WriteLine("未成年");
    14                 Console.WriteLine($"年龄是{age}");
    15             }
    16             Console.WriteLine("--------if判断结束----------");
    17             Console.ReadKey();
    C# Code

    3.if嵌套

    if嵌套的格式大致如下:

     1 if 条件1:
     2     满足条件1时要做的事情1
     3     满足条件1时要做的事情2
     4     ...(省略)...
     5     if 条件2:
     6         满足条件2时要做的事情1
     7         满足条件2时要做的事情2
     8         满足条件2时要做的事情3
     9         满足条件2时要做的事情4
    10         ..(省略)...

    注意:

    外层的if判断,也可以是if-else

    内层的If判断,也可以是if-else

    比较&关系运算符

    1.比较运算符

    2.逻辑运算符

    循环语句(while)

    1.while语句 

    while循环的格式如下:

    1 while 条件:
    2     满足条件时,做事情1
    3     满足条件时,做事情2
    4     满足条件时,做事情3
    5     ...(省略)...

    示例如下:

    1 i=1
    2 sum=0
    3 while i<=100:
    4     sum+=i
    5     i+=1
    6 print("1-100的累积和为:%i"%sum)

    2.循环嵌套

     1 while 条件:
     2     满足条件时,做事情1
     3     满足条件时,做事情2
     4     满足条件时,做事情3
     5     ...(省略)...
     6     while 条件:
     7         满足条件时,做事情1
     8         满足条件时,做事情2
     9         满足条件时,做事情3
    10         ...(省略)...

     示例如下:

    1 i=1
    2 while i<=5:
    3     j=1
    4     while j<=i:
    5         print("* ",end=" ")
    6         j+=1
    7     print("
    ")
    8     i+=1

    循环语句(for)

    pythonfor循环可以遍历任何序列的项目,如一个列表或者一个字符串

    1 for 临时变量 in 列表或者字符串等:
    2     满足循环条件时执行的代码
    3 else:
    4     满足不循环条件时执行的代码

    示例如下:

    1 name='jonins'
    2 for x in name:
    3     print(x)
    4 else:
    5     print('遍历完成')

    break&continue

    break的作用:用来结束整个循环。

    continue的作用:用来结束本次循环,紧接着执行下一次的循环。

     示例如下:

    1 name='jonins.com'
    2 for x in name:
    3     if(x=='o'):
    4         continue;
    5     if(x=='.'):
    6         break;
    7     print(x)

    注意:

     break/continue只能用在循环中,除此以外不能单独使用。

     break/continue在嵌套循环中,只对最近的一层循环起作用。

    作者:Jonins    出处:http://www.cnblogs.com/jonins/
     
    个人原创,若有错误或补充请联系作者。
     
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    看板娘相关源码介绍
    Spring框架实体bean转json返回前端报错:Null key for a Map not allowed in JSON (use a converting NullKeySerializer?)
    Spring Data JPA介绍以及dao层(持久层)标准接口或自定义方法规则
    BeanNotOfRequiredTypeException:Bean named 'XXXX' is expected to be of type 'XXX' but was actually of type 'com.sun.proxy.$Proxy211'
    RedisDesktopManager的编译
    Spring-Boot中@Scheduled注解不生效
    @Async 注解不生效
    使用MongoTemplate,启动时候报错:org.springframework.beans.factory.BeanCreationException
    【个人经验之谈】计算机相关的就业、培训等问题解疑答惑
    简单java mail demo收发邮件例子,各种邮件类型
  • 原文地址:https://www.cnblogs.com/jonins/p/9694546.html
Copyright © 2011-2022 走看看