美文网首页
一、初入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