一、初入python&基础语法

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是字符串

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352

推荐阅读更多精彩内容

  • 基础语法 运行 Python 交互式解释器 在命令行窗口执行python后,进入 Python 的交互式解释器。 ...
    小天真_5eeb阅读 1,400评论 0 36
  • 岁月带走了纯真,时光苍老了容颜。人生短暂,有得有失,生活艰辛,有苦有乐。快乐是心的愉悦,幸福是心的满足。...
    青柠hp阅读 760评论 0 1
  • 因为某个人,而喜欢上一座城。 你喜欢的那个人还在一个城市吗? 习惯了拍照片来纪念每一次的出行,带着轻微的感冒,站在...
    姚小事儿不小阅读 263评论 0 0