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和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。
使用key-value存储结构的dict在Python中非常有用,选择不可变对象作为key很重要,最常用的key是字符串
网友评论