Python 3.0 基础知识

来源:互联网 发布:社交软件英文怎么说 编辑:程序博客网 时间:2024/06/07 00:34

@author:云都小生(Cloudking)



安装Python与第一个程序


首先你需要进入→ Python官网 挑好适合你们系统的版本(3.0),下载后安装。安装之后请在软件源目录中搜索这个东西——idle.bat,这个是Python提供的shell(类似Windows下的cmd),我们能通过这个东西来进行学习。

进入idle之后,在>>>后面,跟着小生一起操作。


输出与输入


我们之前在Python,实现了打印出”Hello,Wrold!”的效果,全靠 print() 这个函数。这个函数是Python提供的,作用是在控制台上输出相应的信息。你可以尝试着:

>>> print(“您好,我叫小生”) 您好,我叫小生 >>> print(12+569) 581 >>> print(151*45458) 6864158 >>>

既然输出有了,那肯定得有输入吧,我们怎么把数据输入到Python中呢?很简单,利用 input() 看下面的操作!

>>> s = input() 100 >>> s ‘100’ >>> print(s) 100 >>>

我们利用 input() 函数来接收输入,然后把数据放到一个变量s中去。最后,我们查看s里面有什么内容。
那么,变量是什么?

>>>name = input()小生>>>print("姓名:",name);>>>姓名:小生>>>


变量常量与数据类型


在程序中,我们用变量来存储那些程序运行中会改变的数据。

>>> score = 100>>> name = "小生">>> number = 1>>> 

score、name、number都是变量,它们存储不同的数据。score存储的是成绩、name存储的是姓名、number存储的是座位号。变量名是由我们自己起的,但是一定要符合命名的规则。有什么规则呢?例如说你起一个变量叫123行不行,肯定不行,123是数据,根本就不能做变量名。还有一点,不能拿Python的关键字做变量名,例如说print,它明明是一个函数,然后你直接 print = 123 你说行不行?

变量名的头一定要是英文或者_ 变量名的命名一定要浅显易懂,一看就知道它有什么作用,用来存储什么。关于变量名的命名,我会在后面整理一篇文章来科普一下。接下来我们来说说数据类型,不同的变量是用来存放不同的数据,上面的score存储的是分数,存储的是整型数据。而name是存储姓名,是字符串,这是两种不同的数据类型。其他很多编程语言,在使用变量之前,都需要先定义变量是什么数据类型,而Python是一门动态编程语言,不用那么麻烦。你在使用一个变量的时候,给它赋值什么样的数据,这个变量就会动态的设置成那种数据类型。
程序开发中还有另一种——常量,它不会根据程序运行而改变,一往而终。在Python中,常量一般用大写来表示,例如说定义一个π常量。

>>>PI = 3.141592654>>>PI3.141592654

有一点很重要的是,Python中定义的常量,并没有提供什么机制来保护常量的值不会被改变。Python有些什么数据类型呢?
·整数型 可以存储整数 20
·浮点型 可以存储小数 1.66666
·字符串 可以存储字符串 “cloudkings”
·布尔值 可以存储True、False两种值(真假)
·控制 None(特殊的空值,不是0)

字符串中存在一个问题,需要扩展一下。在字符串中有一些特殊的转义字符,这些转义字符有各种其他的意义,例如’\n’表示回车换行,’\t’表示增加制表符。

>>> s = "cloudking\n">>> print(s)cloudking>>> >>> s = "cloud\tking">>> print(s)cloud   king>>> 

当碰到’\n’这个字符的时候,就会自动回车换行。更多转移字符可以看一下下面的转义字符表格。

转义字符描述\(在行尾时)续行符\\反斜杠符号\’单引号\"双引号\a响铃\b退格(Backspace)\e转义\000空\n换行\v纵向制表符\t横向制表符\r回车\f换页\oyy八进制数yy代表的字符,例如:\o12代表换行\xyy十进制数yy代表的字符,例如:\x0a代表换行\other其它的字符以普通格式输出现在有一个扩展的问题,当你只想要打印出\’的时候,Python会自动帮你转换成单引号,那怎么办?使用r’ ‘或r” “,把字符转化成原子符串。

>>> s = "cloudking\'">>> print(s)cloudking'>>> s = r"cloudking\'">>> print(s)cloudking\'>>> 


运算符与优先级


想要对数据进行处理,就需要掌握Python的运算符,Python提供了各式各样的运算符。
首先是算数运算符 + - * / // % **它们各表示加减乘除跟地板除、取余数和幂次方。

>>>a = 12>>>b = 13>>>c = a+b>>>c15

其他的算数运算符可以自己尝试一下,其中有一个细节,除法跟地板除是存在差距的。Python中的除法是真正的除法,会精确的计算出结果,而使用地板除结果会四舍五入。还有两个操作符,叫加加减减操作符,a++表示a递增1,a–表示a递减1。

然后是比较运算符 < > == <= >= != 运算结果是布尔值。

>>> 10 > 2True>>> 10 < 2False>>> 10 == 10True>>>10 != 2True

在Python中,== 表示等于,而一个=表示赋值运算符,!=表示不等于。

然后是逻辑运算符 and or not 它们运算的结果是布尔值(要么真,要么假)

>>> 9 > 10False>>> 9 > 10 and 1 >0False>>> 10 > 9 and 10 > 5True>>> 9 > 10 or 9 > 5True>>> 1 > 10 or 9 < 2False>>> not(10 > 2)False>>> not(2 > 10)True>>> 

进行and操作时,只有当两边的结果为真,最后结果才为真。真 && 真 = 真,其中一个运算为假,则整个结果为假。or操作时,只有当两个运算结果为真的时候,最终结果才为真,否则都是假。not操作是对整个运算结果取反,真就是假,假就是真。

按位运算符 & | ^ ~ << >> 这些运算符会对数值的二进制形式进行运。

运算符描述实例&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101^按位异或运算符:当两对应的二进位相异时,结果为1 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。<<左移动运算符:运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000>>右移动运算符:把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111

赋值运算符 = += -= /= %= *= **= //=

=将右侧操作数的值分配给左侧操作数c = a + b表示将a + b的值分配给c+=将右操作数相加到左操作数,并将结果分配给左操作数c + = a等价于c = c + a-=从左操作数中减去右操作数,并将结果分配给左操作数c -= a 等价于 c = c - a*=将右操作数与左操作数相乘,并将结果分配给左操作数c *= a 等价于 c = c * a/=将左操作数除以右操作数,并将结果分配给左操作数c /= a 等价于 c = c / a%=将左操作数除以右操作数的模数,并将结果分配给左操作数c %= a 等价于 c = c % a**=执行指数(幂)计算,并将值分配给左操作数c **= a 等价于 c = c ** a//=运算符执行地板除运算,并将值分配给左操作数c //= a 等价于 c = c // a


成员运算符 in,not in
这两个用来测试给定值是否为序列中的成员,例如字符串,列表或元组。

>>> a = 10>>> b = 20>>> List = [10,2,5]>>> a in ListTrue>>> b in ListFalse>>> a not in ListFalse>>> b not in fontListTrue>>> 

身份运算符is,is not 用于比较两个对象的内存位置

>>> s1 = "cloudking">>> s2 = "cloudking">>> s1 is s2True

字符串、对象在内存中是处于同一个位置,当你想知道,两个变量是否都指向同一个字符串或对象的时候,就可以用这个运算符。

还有一个优先级的问题,当不同的运算符放大一起的时候,是先进行哪种运算,你知道吗?我给你提供一个最简单的记忆方法:非 > 逻辑 > 关系 > 运算既然我们了解了变量常量和数据类型,接下来,我们来看看格式化输出,先如下代码。

>>> s = "cloudker">>> a = "king">>> print("大家好,我是来自 %s 的 %s" % (s,a))大家好,我是来自 cloudker 的 king

在字符串中,类似%s,其实算是一种占位符。通俗的话说,就是占这个位置给后面的变量常量,根据变量常量的改变,来动态的输出对应的字符串。

分支结构


想象一下,现在你想把自己写的程序锁起来,只有输入正确的密码才可以使用,要怎么解决?在没有学习分支结构之前,我们没有任何办法。Python与其他编程语言一样,提供了分支结构的语法 if -else if -else

>>> password = input()8888>>> if password != 8888:print("密码错误")密码错误>>> 

if语法: if 表达式:表达式中是判断条件,如果表达式中结果为真,则执行if里面的代码,如果表达式中的结果为假,则不执行if里面的代码。接下我们看一下多重判断。

number = 80if number > 100:    print("该数大于100")else:    print("该数小于100")该数小于100

这个else是否则的意思,整体的语法:如果xxx成立,就XXX,否则就XXXX。
还有一种情况,用到else if

number = 20if number > 100:    print("该数大于100")else if number >= 50:    print("该数大于或等于50")else:    print("该数小于50")

当你觉得,你还有其他的条件增加,就可以用else if(再如果)。循环还可以被嵌套起来使用。

number = 20if number >= 100:    if number > 105:        print("该数大于105")    else number > 102:        print("该数大于102")else if number >= 50:    print("该数大于或等于50")else:    print("该数小于50")

关于更多灵活使用,请自己


循环结构


如果我需要你从1加到100,你会不会写成 a = 1+2+3+4+···+100?如果我想要你把”Hello”打印一百次,你是不是要写十次的print(“Hello”)?由于有这些问题,所以我们需要学习接下来的一个重要的语法——循环结构Python提供的循环结构的语法有两种,分别是while、for x in y

我们先来看一遍while的操作。

>>> a = 1>>> while a < 100:    print("Hello")    a++# while的语法# while 表达式:#   循环代码

这样就能打印100次”Hello”了,while的语法是这样的,首先判断循环的表达式,为真则执行循环代码,否则跳过。跟if很类似。

第二种语法是for x in y,我们也来了解一下。

>>> for i in range(101):total += i>>> total5050>>> 

range()是Python提供的一个生成数列的函数,这里生成的是从0~100的数字,通过循环把它们累加起来。这个函数到下一章的高级数据类型大有用处。


注释与缩进


如果你想在程序中做一些笔记,提醒自己或者提醒那些阅读你代码的人,这里为什么要这么写,这些变量有什么用,这时候你就需要懂得注释的语法。在Python中做注释,可以直接用#。#后面的语句,不会被编译器编译,也不会被执行。

缩进是Python的灵魂,Python励志作一门非常简洁方便的编程语言,所以它在很多语法方面,省去了很多没有必要的东西。缩进能让我们更容易看懂程序的结构,如果缩进放错,就会产生错误。

2017/8/22 21:15:20 @author:Cloudking

原创粉丝点击