Python 学习从入门到放弃(三)–变量与函数基础、基础控制语句
从文件执行
从现在开始,代码块开始,使用解释器来调试代码就显得比较麻烦了。
因此先介绍一下最简单的从文件开始执行 Python 的用法。
例如创建文件 hello.py,并在 hello.py 中写入以下代码
x = 1
y = 2
x
print(x + y) # print为打印指令,能将结果打印出来
print('hello world')
打开 terminal 或操作系统中的命令行工具,进入该文件的目录,输入指令
python hello.py
你将获得以下结果
3
hello world
可见通过python 文件名
的方式可以执行文件中的代码。
和解释器不同,直接输入一个变量并不会显示结果( x 没有打印出来),而是需要通过 print() 函数来打印。
变量基础
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。
变量的命名当然要符合标识符的规范,例如以下的变量是合法的:
xi_ying_19_da
your_age
familyBalance
Python 是一个弱变量类型的语言,意味着不需要明确变量的类型,变量的类型也可以随时改变。
内置的普通变量类型不需要初始化即可使用,例如整数、实数、字符串等。
变量的赋值和大部分编程语言类似,但是有一些特殊的语法,参考下列代码。
x = 'Nice to meet you' #x 被赋值为字符串
x = 1 #x 的值被覆盖并被赋值为一个整数
#没有类似 int x 这样的语法
#简单的赋值
a = 1
b = 2
#多变量赋值
a, b = 1, 2
a, b = b, a #可以通过多变量赋值完成变量交换
#自变赋值,等号前有一个数学运算符
a *= b #等价于 a = a * b
a += b #等价与 a = a + b
函数基础
Python 中对函数的基础格式如下
def function_name(arg1, arg2[, ...]):
statement
[return value]
function_name 就是函数名;arg1、arg2 等就是形式参数,当然支持任意数量的变量数量;statement 是函数中的语句;函数执行到 return 语句的时候就会停止执行,并把 return 后的 value 作为函数执行后的数值返回。例如:
#一个计算平方差的函数
def differenceOfTwoSquares(a, b): #千万别忘了“:”
square_of_a = a ** 2 #注意缩进保持一致
square_of_b = b * b
result = square_of_a - square_of_b
return result
#从这一行开始已经不是函数定义的部分了
c = differenceOfTwoSquares(3, 2) #此时 c 的值变为 5
控制语句
判断语句
if EXPRESSION1:
STATEMENT1
[elif EXPRESSION2:
STATEMENT2]
[else:
STATEMENT3]
判断 EXPRESSION1 为真时执行 STATEMENT1,[否则判断 EXPRESSION2 为真时执行 STATEMENT2,][否则执行 STATEMENT3]。
举个例子
if age <= 3:
age_range = 'young babies'
elif age > 3 and age <18:
age_range = 'children'
elif age >= 18 and age < 100:
age_range = 'adults'
else:
age_range = 'old man'
Python 中没有提供 switch、case 的语法,官方认为这违反了 Python 语言简单、慵懒的原则。
在某些简单情况下可以通过字典的方式进行实现,例如
#这是一个字典,你可能还不熟悉,类似json
#用花括号包裹,用 k:v 的形式存储
languageName = {
'简体中文': 'zh-CN',
'繁体中文': 'zh-TW',
'英语': 'en',
'西班牙语': 'es',
'法语': 'fr',
'阿拉伯语': 'ar',
'日语': 'ja',
'德语': 'de',
'意大利语': 'it',
'荷兰语': 'nl',
'俄语': 'ru'
}
language = languageName.get('简体中文') #结果为'zh-CN'
language = languageName.get('阿拉伯语') #结果为'ar'
循环及循环控制语句
while 循环
while EXPRESSION:
STATEMENT1
[else:
STATEMENT2]
如果 EXPRESSION 返回“真”则循环体 STATEMENT1 执行,并重复这个过程[;否则执行 STATEMENT2]。
例如
age = 0
while age <18:
age += 1
print('Happy birthday my boy')
else:
print('I am very happy you are growing up now')
for 循环
for TARGET in OBJECTS:
STATEMENT1
[else:
STATEMENT2]
这里介绍一下 in
运算符,这个叫做“成员运算符”,及判断“如果在指定的序列中找到值返回 True,否则返回 False”。
但在 for 语句中,情况会有些许不同,TARGET 是形式参数,在循环体中代替 OBJECTS 的成员
例如:
family_members = {
'father',
'mother',
'brother',
'sister'
}
'father' in family_members #表达式返回 True
'li a yi' in family_members #表达式返回 False
for member in family_members:
print(member + 'loves the family')
#结果为
#father loves the family
#mother loves the family
#brother loves the family
#sister loves the family
循环控制语句-break、continue、pass
此处还需要介绍几个额外的循环控制语句
break
#终止当前循环,直接执行循环语句后的第一条指令
#注意:此时 else 语句不会被执行
continue
#跳过本次循环,及跳过循环体中下方的语句,直接判断 判断式是否还满足循环条件
pass
#占位专用,不完全算循环控制语句
#因为 Python 是根据缩进来判断代码块的
#所以函数体、循环体等是不能为空的
#当你想好了函数名或者想好了判断条件时,可以先写上 pass 来防止程序报错
#例如
i = 0
if i < 3:
pass #什么都不做,单纯占位
print(i) #结果为0
#以下代码会报错
'''
i = 0
if i < 3:
print(i)