@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
>>>PI
3.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
>>>c
15

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

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

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

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

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

>>> 9 > 10
False
>>> 9 > 10 and 1 >0
False
>>> 10 > 9 and 10 > 5
True
>>> 9 > 10 or 9 > 5
True
>>> 1 > 10 or 9 < 2
False
>>> 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 List
True
>>> b in List
False
>>> a not in List
False
>>> b not in fontList
True
>>> 

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

>>> s1 = "cloudking"
>>> s2 = "cloudking"
>>> s1 is s2
True

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

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

>>> 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 = 80

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

该数小于100

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

number = 20

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

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

number = 20

if 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

>>> total
5050
>>> 

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


注释与缩进


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

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

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

更多推荐

Python 3.0 基础知识