第一模块:开发基础 第1章·Python基础语法

编程语言介绍

编程语言分三大类:机器语言、汇编语言、高级语言

  机器语言:

    由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,机器语言属于低级语言。

    优缺点:优点是最底层,速度最快;缺点是最复杂,开发效率低。

  汇编语言:

    汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。

    优缺点:优点是比较底层,速度最快;缺点是复杂,开发效率低。

  高级语言:

    高级语言是大多数编程者的选择,和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,这样就大大简化了程序中的指令。

    高级语言主要是相对于汇编语言而言,它并不是指某一种具体的语言,而是包括了很多编程语言,如C\C++、Java、PHP、Python、GO、C#等都是属于高级语言。

    高级语言分为两类:编译型、解释型

    编译型语言如:C、C++

    解释型语言如:Python、Java

    优缺点(编译型):优点是执行速度快,不依赖语言环境运行;缺点是跨平台差。

    优缺点(解释型):优点是跨平台好,一份代码,到处使用;缺点是执行速度慢,依赖解释器运行。

 

 Python发展史

 

 

Python解释器类型 & Python2or3

我们知道Python是解释型的语言,所以要运行python程序,就必须要有Python解释器的支持,就好比一个翻译官的角色,一个美国人要想听懂中国人的话就需要有一个翻译官,计算机要能够理解人类写的程序就需要解释器来进行翻译。

Python解释器有以下几种:

CPython:最常用的python解释器,从官网下载也是CPython,因为使用C语言写的所以叫做CPython。

IPython:

PyPy:

Jython:

IronPython:

 

选择Python2还是Python3:

不废话,新项目都用Python3

 

变量

变量:用于存储数据

name = "Alex"

age = 20

 

变量的作用:

Variables are used to store information to be referenced and manipulated in a computer program. They also provide a way of labeling data with a descriptive name, so our programs can be understood more clearly by the reader and ourselves. It is helpful to think of variables as containers that hold information. Their sole purpose is to label and store data in memory. This data can then be used throughout your program.

 

变量的定义规范:

变量名只能是字母、数字、下划线的任意组合;

但是变量名的第一个字符不能是数字

python里的关键字不能设为变量名,如:and, as, pass, print 等等

 

变量命名习惯:

变量命名有2中形式:驼峰体和下划线:

驼峰体:

AgeOfOldboy = 23

NumberOfStudents = 60

单词之间是相连的,每个单词的首字母大写

 

下划线:

age_of_oldboy = 23

number_of_students = 60

单词之间使用下划线进行连接,且每个单词都是全小写。官方推荐使用下划线体。

 

变量的修改:

a = 1

b = a

a = 3

如上:最后结果为 a的值为3,b的值为1。

因为当a=1时,实际上只是将a指向了1,当b=a时,也是将b指向了1,最后当a=3时,是将a重新指向到了3,b依然指向的是1

 

不规范的变量命名方式,不要用:

变量名为中文、拼音

变量名过长

变量名词不达意

 

常量:

常量即指不变的量,如pai 3.141592653...,或在程序运行过程中不会改变的量。

在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量,如:

AGE_OF_OLDBOY = 56

 

用户交互

在程序中经常会遇到用户交互的情况,比如登录某个网站的时候。

使用 input()来实现:

name = input("please input your name:")
password = input("please input your password:")

 

运行程序后即可看到提示输入name和password

 

注释

注释也是程序中经常用到的,用来解释说明在一些重要功能点的地方描述代码的作用等。注释在程序中不会被执行。

注释有单行注释和多行注释。

单行注释:直接在要注释的行最前面加上 # 即可

多行注释:使用3个单引号,或3个双引号 即可进行多行注释

name = input("please input your name:")
# password = input("please input your password:")   # 我是单行注释

'''
代码解释:
功能:随便打印几个字
'''
print("Hello world.")

"""
代码解释:
功能:随便打印几个字
"""
print("Hello world.")

 

 

数据类型:

Python 常用的数据类型有如下:

 

这里只介绍最基本的三种数据类型:数字、字符串、布尔类型

 

数字类型:

数字类型有 int(整型)和 long(长整型)之分,但是在Python3里不在有 long类型了,全都是int。

数字类型除了 int 和 long,还有 float 浮点型,复数型,这里先不介绍。

 

int(整型)

在32位机器上,整数的位数为32位,取值范围为 -2**31 ~ 2**31-1

在64位机器上,整数的位数为64位,取值范围为 _2**63 ~ 2**63-1

 

long(长整型)

跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。

 

注意:自动python2.2起,如果整数发生溢出,python会自动将整数数据转化为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

 

字符串类型:

在Python中加了引号的都被认为是字符串。

name = "Alex"  # 双引号
age = "22"  # 数字加上引号也是字符串
age = 22  # 数字 int
msg = ''' My name is Alex '''  # 多引号也是字符串
hometown = 'Sichuan'  # 单引号

 

 

单双引号的区别:单双引号没有区别,只有在这种情况下才需要注意使用:

msg = "My name is Alex, I'm 22 years old."   # I'm中间有单引号出现

 

 

多引号的作用:当有多行字符串的时候就需要用到多引号。

msg = '''
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
'''

 

 

字符串拼接:

数字可以进行加减乘除运算,字符串也能进行“相加”和“相乘”运算。

>>> name = "Alex"
>>> age = "22"
>>> name + age
'Alex22'
>>> name * 10
'AlexAlexAlexAlexAlexAlexAlexAlexAlexAlex'
>>>

 

注意:字符串拼接必须是双方都是字符串才能进行拼接。

 

布尔类型

布尔类型就两个值,一个 True(真),一个 False(假),主要用于逻辑判断。

>>> a = 3
>>> b = 5
>>> a > b
False
>>> a < b
True
>>>

 

 

运用在逻辑判断:

a = 3
b = 5
if a > b:
    print("a is bigger than b.")
else:
    print("a is smaller than b.")

 

 

格式化输出:

name = input("Name:")
age = input("Age:")
job = input("Job:")
hometown = input("Hometown:")

info = '''
--------------- info of %s -------------------
Name:          %s
Age:           %s
Job:           %s
Hometown:      %s
-------------------end-----------------------
''' % (name, name, age, job, hometown)
print(info)

 

输出:

Name:Alex
Age:23
Job:Works
Hometown:Sichaun

--------------- info of Alex -------------------
Name:          Alex
Age:           23
Job:           Works
Hometown:      Sichaun
-------------------end-----------------------

 

 

%s 表示string

%d 表示digit

%f 表示float

 

数据类型转换:

age = int("22")    # 将字符串22转换为数字的22

 

 

运算符

计算机可以运行的运算有很多种,可不止加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算。

这里只介绍算数运算、比较运算、逻辑运算、赋值运算。

 

算数运算:

以下假设变量:a=10, b=20

 

% 取模,可以用来判断奇偶数,比如上面这个表格。

 

比较运算:

以下假设变量:a=10, b=20

python2里 != 和 <> 是一样的,python3里没有 <>

 

赋值运算:

以下假设变量:a=10, b=20

 

 逻辑运算:

 

 流程控制

单分支:

语法结构:

if 条件:
    满足条件后要执行的代码

 

例子:

age = 56
if age > 50:
    print("你的年龄大于了50岁.")

 

 

双分支:

语法机构:

if 条件:
    满足条件执行代码
else:
    if条件不满足就执行这段代码

 

例子:

age = 30
if age > 50:
    print("你的年龄大于了50岁.")
else:
    print("可以,你还可以折腾几年.")

 


练习1:

输入姓名、性别、判断如果是女生,打印我喜欢女生,否则,打印一起来搞基!

name = input("Name:")
sex = input("Sex:")
if sex == "female":
    print("我喜欢女生")
else:
    print("一起来搞基")

 

练习2:

输入姓名、性别、年龄,判断如果是女生且年龄小于28岁,打印我喜欢女生,否则,打印姐弟恋也很好噢!

name = input("Name:")
sex = input("Sex:")
age = int(input("Age:"))
if sex == "f":
    if age < 28:
        print("我喜欢女生")
    else:
        print("姐弟恋也挺好哦")

 

练习3:

输入姓名、性别、年龄,判断如果是女生且年龄小于28岁,打印我喜欢女生,否则,打印姐弟恋也很好噢!如果是男生,打印一起来搞基!

name = input("Name:")
sex = input("Sex:")
age = int(input("Age:"))
if sex == "f":
    if age < 28:
        print("我喜欢女生")
    else:
        print("姐弟恋也挺好哦")
else:
    print("一起来搞基")

 

 

多分支:

语法结构:

if 条件:
    满足条件执行代码
elif:
    上面的条件不满足就走这个
elif:
    上面的条件不满足就走这个
elif:
    上面的条件不满足就走这个
else:
    上面所有的条件不满足就走这个

 

 练习1:猜年龄

age = 25
guess_age = int(input("please inpout guess age:"))
if guess_age > age:
    print("please try smaller.")
elif guess_age < age:
    print("please try bigger.")
else:
    print("good, you got it.")

 

 

练习2:打印成绩

再来个匹配成绩的小程序吧,成绩有ABCDE 5个登记,与分数的对应关系如下:

A  90-100

B  80-89

C  60-79

D  40-59

E  0-39

要求用户输入0-100的数字后,你能正确打印他的对应成绩

score = int(input("please inout your score:"))
if score > 100:
    print("分数最多只有100分。")
elif score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 60:
    print("C")
elif score >= 40:
    print("D")
elif score >= 0:
    print("E")
else:
    print("分数没有负数")

 

 

While循环

想一想,上面猜年龄的小程序每次猜了之后程序就退出了,要想多次猜的话很不方便,能不能让他一直猜呢?有一种办法就是将代码copy几遍就可以一直猜了,但是这样就LOW到爆了,如果要修改代码那任务量就是成倍的增加,所以写重复的代码是程序员最不耻的行为。

要想做到不写重复代码,循环语句就派上用场啦。

语法结构:

while 条件:
    执行代码...

 

写个程序从0打印到100,每循环一次就+1

count = 0
while count <= 100:
    print("loop", count)
    count += 1

 

 

练习1:

如果我想打印1到100的偶数怎么办呢?

count = 0
while count <= 100:
    if count % 2 == 0:
        print("loop", count)
    count += 1

 

 

练习2:

循环打印1-100,第50次不打印,第60-80次,打印对应值的平方。

count = 0
while count <= 100:
    if count == 50:
        pass
    elif count >= 60 and count <= 80:
        print(count * count)
    else:
        print("loop " , count)
    count += 1

 

 

练习3:

猜年龄优化,可以允许猜3次。

age = 25
count = 0
while count < 3:
    guess_age = int(input("please guess age:"))
    if guess_age > age:
        print("please try smaller.")
    elif guess_age < age:
        print("please try bigger.")
    else:
        print("good, you got it.")
    count += 1

 

 

Dead Loop 死循环:

有一种循环叫死循环,一经触发,就一直运行,直到天荒地老、海枯石烂。

while是只要后边条件成立(也就是条件结果为真)就一直执行,怎么让条件一直成立呢?

count = 0
while True:
    print("你是风儿我是沙,缠缠绵绵到天涯...", count)
    count += 1

 

 

continue vs break

如果再循环的过程中,因为某些原因,你不想继续循环了,怎么把它终止掉呢?可以用到 break 或 continue 语句。

break 用于完全结束一个循环,跳出循环体执行循环后面的语句

continue 和 break 有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。

 

break:

count = 0
while count <= 100:
    print("loop", count)
    if count == 5:
        break
    count += 1
print("---- out of loop ----")

 

输出:

loop 0
loop 1
loop 2
loop 3
loop 4
loop 5
---- out of loop ----

 

 

continue语句:

count = 0
while count <= 100:
    count += 1
    if count > 3 and count < 97:
        continue
    print("loop", count)
print("---- out of loop ----")

 

输出:

loop 1
loop 2
loop 3
loop 97
loop 98
loop 99
loop 100
loop 101
---- out of loop ----

 

练习1:

优化猜年龄游戏,允许用户最多猜3次,中间猜对了,直接跳出循环。

age = 25
count = 0
while count < 3:
    guess_age = int(input("please guess age:"))
    if guess_age > age:
        print("please try smaller.")
    elif guess_age < age:
        print("please try bigger.")
    else:
        print("good, you got it.")
        break
    count += 1

 

 

练习2:

优化猜年龄游戏,允许用户最多猜3次,猜了3次后,再问是否还想玩,如果用户选y,再允许猜3次,以此往复...

count = 0
age = 26
while count < 3:
    user_guess = int(input("your guess:"))
    if user_guess == age:
        print("恭喜你答对了。")
        break
    elif user_guess < age:
        print("please try bigger")
    else:
        print("please try smaller")
    count += 1
    if count == 3:
        choice = input("还想继续吗?(y/n)")
        if choice == "y":
            count = 0

 

age = 25
count = 0
while True:
    if count == 3:
        res = input("do you want to continue? (y/n):")
        if res == "y":
            count = 0
            continue
        else:
            print("bye bye.")
            break
    guess_age = int(input("please guess age:"))
    if guess_age > age:
        print("please try smaller.")
    elif guess_age < age:
        print("please try bigger.")
    else:
        print("good, you got it.")
        break
    count += 1

 

 

while ... else 

与其它语言else一般只与 if 搭配不同,在Python中还有个while...else语句

while后面的else作用是指,当while循环正常执行完,中间没有break中止的话,就会执行else后面的语句

count = 0
while count <= 5:
    count += 1
    print("loop", count)
else:
    print("循环已经正常执行完毕。")
print("----  out of while loop ----")

 

输出:

loop 1
loop 2
loop 3
loop 4
loop 5
loop 6
循环已经正常执行完毕。
----  out of while loop ----

 

posted @ 2018-04-28 12:14 alexchenx 阅读(...) 评论(...) 编辑 收藏