简明python教程学习day01

本文介绍了Python编程语言的基础知识,包括Python的特点、基本概念如常量、变量、标识符、逻辑行与物理行、缩进,以及运算符和表达式、控制流、函数等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介
1.Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。Python语言是少有的一种可以称得上即简单又功能强大的编程语言,它注重的是如何解决问题而不是编程语言的语法和结构。
2.Python其特点:简单易学、免费开源、可移植性强(跨平台)、可扩展性强(你的一段关键代码运行得更快或者希望某些算法不公开,可以在你的Python程序中的某个部(你的一段关键代码、或者高效模块或者希望某些不公开的算法)程序用C或C++编写)、可嵌入性强(你可以把Python嵌入你的C/C++程序)、它是一种面向对象的高级解释性编程语言。含有丰富的库(Python标准库可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等)。

二、基本概念
1.一个字面意义上的常量的例子是如同5、1.23、9.25e-3这样的数,或者如同'This is a string'、"It's a string!"这样的字符串。它们被称作字面意义上的,因为它们具备 字面 的意义——你按照它们的字面意义使用它们的值。数2总是代表它自己,而不会是别的什么东西——它是一个常量,因为不能改变它的值。因此,所有这些都被称为字面意义上的常量。并且在Python中没有专门的char数据类型。
2.数:在Python中有4种类型的数——整数、长整数、浮点数和复数。
3.字符串:
a.单引号‘’,例如:‘abcdef’
b.双引号“”,例如:“asddfg”。它的作用与单引号相同,'abc' == "abc"
c.三引号'''或""",可以表示一个多行的字符串,也可以在三引号中自由的使用单引号和双引号,
例如:'''This is a multi-line string. This is the first line.
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
'''
d.转义符:'What\'s your name?' == “What's your name?”。要在双引号字符串中使用双引号本身的时候,也可以借助于转义符。且可以用转义符\\来指示反斜杠本身。还有一个用法:在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。
e.自然字符串:如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀r或R来指定。例如r"Newlines are indicated by \n"。
f.Unicode字符串:只需要在字符串前加上前缀u或U。例如:u"This is a Unicode string."。在处理文本文件的时候一般都使用Unicode字符串,特别是当你知道这个文件含有用非英语的语言写的文本。
g.字符串是不可变的,即:一旦创造了一个字符串,就不能再改变它。
h.按字面意义级连字符串
i.如果把两个字符串按字面意义相邻放着,它们会被Python自动级连。例如:'What\'s' 'your name?'会被自动转为"What's your name?"。
4.变量:意义和C、C++中的变量相同,作为被操作的数据的载体。在python中使用变量时只需要给它们赋一个值。不需要像C、C++一样提前声明或定义数据类型。
5.标识符命名规则:
a.标识符的第一个字符必须是字母表中的字母(大写或小写)或者是下划线。
b.标识符名称的其他部分可以由字母(大写或小写)、下划线或数字0-9组成。
c.在python中标识符名称是对大小写敏感的。
6.逻辑行与物理行:物理行是在编写程序时在编辑器中所看见的行。逻辑行是Python 看见 的单个语句。想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号来特别地标明这种用法。分号表示一个逻辑行语句的结束。
7.缩进:在python语句中缩进是非常重要的,在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。错误的缩进会引发程序错误。
三、运算符和表达式
1.一个简单的表达式例子如2 + 3,一个表达式可以分解为运算符和操作数。

2.运算符与它们的用法

运算符名称说明例子
+两个对象相加3 + 5得到8。'a' + 'b'得到'ab'。
-得到负数或是一个数减去另一个数-5.2得到一个负数。50 - 24得到26。
*两个数相乘或是返回一个被重复若干次的字符串2 * 3得到6。'la' * 3得到'lalala'。
**返回x的y次幂3 ** 4得到81(即3 * 3 * 3 * 3)
/x除以y4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0得到1.3333333333333333
//取整除返回商的整数部分4 // 3.0得到1.0
%取模返回除法的余数8%3得到2。-25.5%2.25得到1.5
<<左移把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1)2 << 2得到8。——2按比特表示为10
>>右移把一个数的比特向右移一定数目11 >> 1得到5。——11按比特表示为1011,向右移动1比特后得到101,即十进制的5。
&按位与数的按位与5 & 3得到1。
|按位或数的按位或5 | 3得到7。
^按位异或数的按位异或5 ^ 3得到6
~按位翻转x的按位翻转是-(x+1)~5得到6。
<小于返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。5 < 3返回0(即False)而3 < 5返回1(即True)。比较可以被任意连接:3 < 5 < 7返回True。
>大于返回x是否大于y5 > 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。
<=小于等于返回x是否小于等于yx = 3; y = 6; x <= y返回True。
>=大于等于返回x是否大于等于yx = 4; y = 3; x >= y返回True。
==等于比较对象是否相等x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。
!=不等于比较两个对象是否不相等x = 2; y = 3; x != y返回True。
not布尔“非”如果x为True,返回False。如果x为False,它返回True。x = True; not y返回False。
and布尔“与”如果x为False,x and y返回False,否则它返回y的计算值。x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算。
or布尔“或”如果x是True,它返回True,否则它返回y的计算值。x = True; y = False; x or y返回True。短路计算在这里也适用。

3.运算符优先级

运算符描述
lambdaLambda表达式
or布尔“或”
and布尔“与”
not x布尔“非”
in,not in成员测试
is,is not同一性测试
<,<=,>,>=,!=,==比较
|按位或
^按位异或
&按位与
<<,>>移位
+,-加法与减法
*,/,%乘法、除法与取余
+x,-x正负号
~x按位翻转
**指数
x.attribute属性参考
x[index]下标
x[index:index]寻址段
f(arguments...)函数调用
(experession,...)绑定或元组显示
[expression,...]列表显示
{key:datum,...}字典显示
expression,...'字符串转换

4.运算顺序,可以通过小括号来修改表达式的默认运算顺序
5.结合规律:运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算,一些如赋值运算符那样的运算符是由右向左结合的。
四、控制流

1.if语句,例如:

number = 23
guess = int(raw_input('Enter an integer : '))
if guess == number:
print 'Congratulations, you guessed it.' # New block starts here
print "(but you do not win any prizes!)" # New block ends here
elif guess < number:
print 'No, it is a little higher than that' # Another block
# You can do whatever you want in a block ...
else:
print 'No, it is a little lower than that' 
# you must have guess > number to reach here
print 'Done'
# This last statement is always executed, after the if statement is executed 

注:第2行内建的raw_input函数提供一个字符串,这个字符串被打印在屏幕上,然后等待用户的输入。一旦我们输入一些东西,然后按回车键之后,函数返回输入。对于raw_input函数来说是一个字符串。我们通过int把这个字符串转换为整数,并把它存储在变量guess中。在if语句结尾处包含一个冒号标识该Python语句下面跟着一个语句块。该片段中的elif从句,它事实上把两个相关联的if else-if else语句合并为一个if-elif-else语句。这使得程序更加简单,并且减少了所需的缩进数量。elif和else从句都必须在逻辑行结尾处有一个冒号,下面跟着一个相应的语句块(当然还包括正确的缩进)。也可以在一个if块中使用另外一个if语句,等等——这被称为嵌套的if语句。elif和else部分是可选的。并且在Python中没有switch语句。你可以使用if..elif..else语句来完成同样的工作(在某些场合,使用字典会更加快捷)。

2.for语句,例如:

for i in range(1, 5):
print i
else:
print 'The for loop is over'

注:range返回一个序列的数。这个序列从第一个数开始到第二个数为止。例如,range(1,5)给出序列[1, 2, 3, 4]。默认地,range的步长为1。如果我们为range提供第三个数,那么它将成为步长。例如,range(1,5,2)给出[1,3],range 向上 延伸到第二个数,即它不包含第二个数。for i in range(1,5)等价于for i in [1, 2, 3, 4],这就如同把序列中的每个数(或对象)赋值给i,一次一个,然后以每个i的值执行这个程序块。else部分是可选的。如果包含else,它总是在for循环结束后执行一次,除非遇到break语句。for..in循环对于任何序列都适用。这里我们使用的是一个由内建range函数生成的数的列表,但是广义说来我们可以使用任何种类的由任何对象组成的序列。

3.while语句,例如:
number = 23
running = True
while running:
guess = int(raw_input('Enter an integer : '))
if guess == number:
print 'Congratulations, you guessed it.' 
running = False # this causes the while loop to stop
elif guess < number:
print 'No, it is a little higher than that' 
else:
print 'No, it is a little lower than that' 
else:
print 'The while loop is over.' 
# Do anything else you want to do here
print 'Done' 
注:其中的while块并不是必须的。

4.break语句:作用是强制跳出(终止)循环。例如:

while True:
s = raw_input('Enter something : ')
if s == 'quit':
break
print 'Length of the string is', len(s)
print 'Done' 

5.continue语句:continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后 继续 进行下一轮循环。例如:

while True:
s = raw_input('Enter something : ')
if s == 'quit':
break
if len(s) < 3:
continue
print 'Input is of sufficient length'
# Do other kinds of processing here... 
五、函数
1.定义方法:函数是重用的程序段,函数通过def关键字定义。def关键字后跟一个函数的 标识符 名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。
例如:
def printMax(a, b):
if a > b:
print a, 'is maximum'
else:
print b, 'is maximum'
#调用:
printMax(3, 4) # directly give literal values
x = 5
y = 7
printMax(x, y) # give variables as arguments 
2.局部变量:当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。
3.Gloabl变量:如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是全局的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。
4.默认参数值:以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。只有在形参表末尾的那些参数可以有默认参数值,即你不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参。这是因为赋给形参的值是根据位置而赋值的。
5.关键参数:如果某个函数有许多参数,而只想指定其中的一部分,那么你可以通过命名来为这些参数赋值这被称作关键参数,我们使用名字(关键字)而不是位置(我们前面所一直使用的方法)来给函数指定实参。这样做有两个优势,一,不必担心参数的顺序,使用函数变得更加简单了。二、假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值。
6.return语句:return语句用来从一个函数 返回 即跳出函数。我们也可选从函数 返回一个值。除非你提供你自己的return语句,每个函数都在结尾暗含有return None语句。
注:pass语句在Python中表示一个空的语句块。
7.DocStrings文档字符串,它通常被简称为 docstrings 。DocStrings是一个重要的工具,由于它帮助程序文档更加简单易懂,应该尽量使用它。甚至可以在程序运行的时候,从函数恢复文档字符串!文档字符串的惯例是一个多行字符串,一般情况下它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。可以使用__doc__(注意双下划线)调用printMax函数的文档字符串属性(属于函数的名称)。例如:print printMax.__doc__






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值