美文网首页
一、初入python&基础语法

一、初入python&基础语法

作者: 井上皓 | 来源:发表于2018-09-15 17:57 被阅读0次

    1.两种模式&如何运行文件


    首先在Download Python | Python.org去下载和安装你需要的python版本

    其次你需要学会命令提示符的基本操作

    然后才可以开始进行python的学习

    a.命令行模式和Python交互模式


    点击进入命令模式

    进入命令行模式后,输入Python进入Python交互模式。

    在Python交互模式下会显示一下内容

    Python交互模式

    当命令提示符显示框中显示>>>时,就代表你进入Python交互模式了。

    在Python交互模式下在>>>后输入代码

    在>>>后输入exit()来退出Python交互模式并且返回命令行模式cd

    返回命令行模式

    执行文件需要在命令行模式下才可以

    b.如何执行.py文件


    在命令行模式下通过转到存放.py文件的目录下执行.py文件

    使用Sublime Text来编辑文件内的代码


    执行文件

    注意

    在命令行模式下输出.py的输出结果,必须自己用print()打印出来。

    直接运行py文件在Windows上是不行的,但是,在Mac和Linux上是可以的,这需要在.py文件的第一行加上一个特殊的注释:#!/usr/bin/env python3

    添加注释

    然后,通过命令给hello.py以执行权限:

    $ chmod a+x hello.py

    2.基础语法


    #开头的语句是注释

    当语句以冒号: 结尾时,缩进的语句视为代码块。

    按照约定俗成的管理,应该始终坚持使用4个空格的缩进。

    变量的赋值是由右至左进行的。

    冒号后第二行开始,凡是4个空格的缩进的行,都是代码块的一部分。

    注意:Python程序是大小写敏感

    a.数据类型与变量常量


    变量的命名规则和其他语言一样,由数字、字母和_所组成,且不能用数字打头。

    整数:数学意义上的整数。

    浮点数:就是小数。

    字符串:被  ' '   " "  这两个符号所夹在中间的所有内容,但不包括符号本身。如果'本身也是一个字符,那就可以用""括起来。如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识。

    使用转义字符

    转义字符的内容有很多,比如。

    \n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\

    如果不想字符串的内容被转义就使用r''表示''内部的字符串是默认不转义的

    默认不转义

    在Python中,可以直接用True、False表示布尔值(请注意大小写)

    把False赋给a 结果

    python动态语言(重点)

    可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量

    常量

    Python中,通常用全部大写的变量名表示常量

    注意:Python中没有设置常量的关键字 实际上还是一个变量,只是约定俗成为常量。

    b.关于运算符


    在做各类运算的时候可以使用运算符。

    算数运算符(会返回一个数作为结果)

    可以使用+、-、*、/、%(模运算)、//(除运算后,保留整数,舍掉小数)、**(返回x的y次幂)。

    关系运算符(会返回False或者True)

    可以使用==(等于)、!=(不等于)、<>(不等于)、<、>、>=、<=。

    逻辑运算符(对数组做逻辑运算其实是在做集合运算,返回数组)

    可以使用and(与)、or(或)、not(非)。

    逻辑运算代码 逻辑运算结果

    赋值运算符(对赋值运算符两侧变量进行运算后,将结果赋值给左侧变量。)

    可以使用-=、+=、*=、/=、//=、**=、%=。

    c.字符编码以及相关


    字符编码的区别  

    ASCII编码实际上可以被看成是UTF-8编码的一部分

    在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

    记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:

    在最新的Python 3版本中,字符串是以Unicode编码的

    转换过程

    对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:

    ord()和chr() 

    由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。

    Python对bytes类型的数据用带b前缀的单引号或双引号表示:

    bytes类型

    要注意区分'ABC'和b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用一个字节。

    以Unicode表示的str通过encode()方法可以编码为指定的bytes,但是这里还有一个范围的问题,例如中文编码的范围大于ascii范围的时候是不可以转换的。

    encode()

    如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法:

    decode()

    如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节:

    忽略错误的字节

    要计算str包含多少个字符,可以用len()函数。

    但是len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数。

    len()

    1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节。

    为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换。

    有一个方法可以解决这个问题,请在代码第一行和第二行加入以下代码:

    #!/usr/bin/env python3

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

    在Python中,采用的格式化方式和C语言是一致的,用%实现

    用%实现

    如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串

    字符串里面内涵%的可以进行转义用%%表示。

    另一种格式化字符串的方法

    format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}……,不过这种方式写起来比%要麻烦得多:

    用占位符来实现

    d.List和Tuple(相当于可动态变化的数组和静态数组)


    list即是可动态变化的数组

    list里面的元素的数据类型也可以不同

    list是一个可变的有序表,可以往list中追加元素到末尾。

    为了确保索引不要越界,记得最后一个元素的索引是len(classmates) - 1。

    还可以用-1做索引,直接获取最后一个元素。

    list创建和使用

    元素插入数组的方法:

    数组名.append('元素')方法直接插入数组末位

    数组名. insert(位置数字, '元素') 把元素插入指定位置

    数组名.pop()删除list末尾的元素

    数组名.pop(位置数字) 删除指定位置元素

    方法的使用

    要把某个元素替换成别的元素,可以直接赋值给对应的索引位置。

    list元素也可以是另一个list,即二维数组:

    list二维数组

    tuple即静态数组

    tuple一旦初始化就不能修改

    tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来。

    定义:

    t = (元素1,…)

    当只定义一个元素的时候,必须加一个逗号,,来消除歧义。

    tuple 创建和使用

    tuple里有List时,List里的内容可变。

    e.条件判断if语法


    if空格后:前判断的表达式

    缩进行等于{ }中的内容

    语法格式:

    if <条件判断1>:

       <执行1>

    elif <条件判断2>:

       <执行2>

    elif <条件判断3>:

       <执行3>

    else:

       <执行4>

    Input()获取输入值时有一个重要问题,Input()返回的是str类型而不是一个数,这种情况下如果输入的类型不是数的变量会返回报错,此时我们可以使用int()来解决这个问题。

    if 及int()使用

    f.Python的两种循环


    一种是for...in循环,依次把list或tuple中的每个元素迭代出来。

    第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现。

    创建两种循环代码 两种循环结果

    还可以使用以下两种语句来帮助我们达成任务。

    结束当前循环、不在进行循环:       break

    跳出本次循环、进行下一次循环:    continue

    break和continue 结果

    g.dict和set


    dict

    用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。

    数据放入dict的方法,除了初始化时指定外,还可以通过key放入

    由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:

    如果key不存在,dict就会报错:

    要避免key不存在的错误,有两种办法

    一是通过in判断key是否存在

    二是通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:

    要删除一个key,用pop(key)方法:

    dict使用 结果

    dict内部存放的顺序和key放入的顺序是没有关系的

    key的对象不可以是能改变的,比如list,因为它可变。

    set

    要创建一个set,需要提供一个list作为输入集合

    set创建

    注意,传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。

    重复元素在set中自动被过滤

    通过add(key)方法可以添加元素到set中

    通过remove(key)方法可以删除元素

    set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:


    set例子


    set结果

    set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。

    使用key-value存储结构的dict在Python中非常有用,选择不可变对象作为key很重要,最常用的key是字符串

    相关文章

      网友评论

          本文标题:一、初入python&基础语法

          本文链接:https://www.haomeiwen.com/subject/fubwgftx.html