【Python】Python基础
python基础
常见数据类型
数据类型 | 例子 |
---|---|
整型 | -2,-1,0,1,2,3,4,5 |
浮点型 | -1.25,-1.0,- -0.5,0.0,1.0 |
字符串 | ‘a’,’aa’,’Hello!’,’11cats’ |
注
如果看到错误信息
SyntaxError:EOL while scanning string literal
可能是忘记了字符串末尾的单引号,就像下面例子↓
>>>'Hello world!
SyntaxError:EOL while scanning string literal
字符串的连接和复制
在python中,根据操作符之后的值的数据类型,操作符的含义可能改变。
+运算符
在用于两个整型或浮点型值时,+是相加操作符
在用于两个字符串时,+是“字符串连接”操作符
看看效果
1 | print('Alice'+'Bob') |
运行↓
AliceBob
注
+不能用于一个字符串和一个整型值相加,否则会报错
*运算符
当用于两个整型或浮点型值时,*表示乘法操作符
当用于一个字符串和一个整型值时,*表示“字符串复制”操作符
看看效果
1 | print('Alice'*5) |
运行↓
AliceAliceAliceAliceAlice
赋值语句
python的赋值语句包含一个变量名、一个等号(赋值操作符),以及要存储的值
1 | spam=42 #spam变量被赋整型值42(就这么简单) |
附
有效和无效的变量名
有效的变量名 | 无效的变量名 |
---|---|
balance | current-balance(不允许中划线) |
currentBalance | current balance(不允许空格) |
current_balance | 4account(不允许数字开头) |
_spam | 51(不允许数字开头) |
SPAM | total_$sum(不允许这样的特殊字符) |
account4 | ‘hello’(不允许 ‘ 这样的特殊字符) |
常用基础函数
print()函数
print()函数将括号内的内容显示到屏幕上
1 | print('Hello,world!') # '#'后面是一行注释,也能用于临时删除一行代码 |
运行↓
Hello,world!
print()函数与变量名的结合:使用+运算符触发链接两字符串功能即可1
print('Nice to meet you, '+myName+'!') #myName是一个变量名
加入myName中存储字符串’Seth’,运行后↓
Nice to meet you, Seth!
input()函数
函数等待用户再见哦按上输入一些文本,并按下回车键
使用↓
1 | myName=input() #变量名=input() |
input函数求值为一个字符串,也就是说总是返回一个字符串(即使用户输入51返回的也是’51’)
len()函数
可以向len函数传递一个字符串(或包含字符串的变量),然后该函数求职为一个整型值1
2print(len('Hello '))
print(len(' '))
运行↓
5
0
str()、int()和float()函数
str()函数求值为传入值的字符串形式
int()函数求值为传入值的整数形式
float()函数求值为传入值的浮点数形式
1 | print(str(3.14)) #浮点型转化为字符串型 |
输出↓
'3.14'
1
1
3.14
3.0
注
将一个不能求值为整数的值传递给int(),将会报错1
2print(int('3.14')) #错误
print(int(float('3,14'))) #正确
文本和数字相等判断
整型和浮点型的值永远也不会与字符串相等
整型值可与浮点型值相等1
2
342=='42' #False
42==42.00 #True
42.0==0042.000 #True
python控制流
布尔值
“布尔”数据类型只有两种值:True,False(首字母必须大写)
布尔值可用在表达式中,也可保存在变量中1
2spam=True
print(spam)
运行↓
True
比较操作符
“比较操作符”比较两个值,求值为一个布尔值
操作符 | 含义 |
---|---|
== | 等于 |
!= | 不等于 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
布尔操作符
and:一否则否
表达式 | 求值为 |
---|---|
True and True | True |
True and False | Fasle |
False and True | False |
False and False | False |
or:一真则真
表达式 | 求值为 |
---|---|
True or True | True |
True or False | True |
False or True | True |
False or False | False |
not:相反
表达式 | 求值为 |
---|---|
not True | False |
not False | True |
控制流语句
if语句
若条件为真,则执行子句中的代码
包含以下部分;
- if关键字
- 条件
- 冒号:
- 在下一行开始,缩进的代码块(成为if子句)
一个小栗子↓1
2if name=='SYolin':
print('Hi!,SYolin!')
else语句
跟在if语句之后,若if条件为False,则执行else子句
包含以下部分:
- else关键字
- 冒号:
- 在下一行开始,缩进的代码块(称为if子句)
再来个小栗子↓1
2
3
4if name=='SYolin':
print('Hi!,SYolin!')
else:
print('Hi,stranger!')
elif语句
表达“否则如果”的含义,提供另一个条件,尽在前面的条件为False时才检查该条件
包含以下部分:
- elif关键字
- 条件
- 冒号:
- 在下一行开始,缩进的代码块(称为elif子句)
elif语句的次序很重要,一旦找到一个True的条件,剩余的子句就会自动跳过
所以应使使下面的elif条件是上面的范围更小的条件
while循环语句
可以让一个代码块在条件的为True前提下,一遍又一遍地执行
包含以下部分:
- 关键字
- 条件
- 冒号:
- 在下一行开始,缩进的代码块(称为while子句)
break语句
跳出当前循环
for循环和range函数
用于让一个代码块执行固定的次数
附:“类真”和“类假”
在用于条件时,0、0.0和’ ‘(空字符串)被认为是False,其他值被认为是True。
先来个for语句栗子
1 | for i in range(5): |
运行↓
Hello,world
Hello,world
Hello,world
Hello,world
Hello,world
像for i in range(5)这样,总是包含以下部分:
- for关键字
- 一个变量名
- in 关键字
- 调用range()的方法,最多传入3个参数
- 冒号
- 从下一行开始,缩进的代码块(称为for子句)
等价的while循环1
2
3while i<5:
print('Hello,world!')
i+=1
range函数
可最多传三个参数
range(开始,停止,步长参数)
举个栗子↓
1 | for i in range(0,10,2): |
运行↓
0
2
4
6
8
导入模块
python程序可以调用一组基本的函数,称为“内建函数”
python也包括一组模块,称为“标准库”每个模块都是一个python程序,包含一组相关的函数。
例如:
math模块有数学相关的函数
random模块有随机数相关的函数
在开始使用一个模块函数之前,必须用import语句导入该模块
import语句包含以下部分:
- import关键字
- 模块的名称
- 可选的更多模块名称,之间用逗号隔开
在导入一个函数后,可以使用该模块中所有函数
格式
模块名.函数名() # 表示在模块中寻找该函数
举个栗子↓
1 | import random |
运行↓
4
1
8
4
1
用sys.exit()提前结束程序
必须先导入sys模块
import sys
通过调用
sys.exit()
使程序提前终止
函数
函数
1 | def fun(): |
运行↓
Hello,world!
Hello,world!
Hello,world!
一个自定义函数包含以下部分:
- def语句和参数(定义函数)
- 冒号
- 下一行缩进的函数体
- 可能有return关键字+表达式
- 函数调用
注:
表达式是值和操作符的组合。函数调用可以用在表达式中,因为他求值为它的返回值
全局变量可以在局部作用域中读取
先举个栗子↓
1 | def fun(): |
运行↓
42
42
在fun函数中没有变量名eggs,也没有代码为eggs赋值
因此调用fun函数时,默认对全局变量eggs的引用
global语句
如果需要在一个函数内修改全局变量,就使用global语句
global eggs
异常处理
考虑下面一种情况
1 | def fun(num): |
运行结果是这样的
21.0
3.5
*报错balabalabala*
原因显而易见,当函数试图除以0时,就会触发ZeroDivisionError
错误可以由try和except语句来处理。
把那些可能出错的语句放在try子句中,如果错误发生,程序执行就转到下面的except子句开始处,可以提醒用户。
(和if、else条件句原理有点像)
改善上面的代码
1 | def fun(num): |
运行如下
21.0
3.5
Error:Invalid argument
None
42.0
关于None的输出:
先执行fun(0)时,触发了except子句,打印出Error:Invalid argument,而后执行print(fun(0))时就等价于print(print(‘Error:Invalid argument’)),而print函数的返回值是None,因此主函数打印出None。
注
在函数调用的try语句块中,发生的所有错误都会被捕捉,而一旦跳到except子句的代码,就不会回到try子句中,它会照常继续向下进行
来个栗子↓
1 | def fun(num): |
运行就是这样了↓
21.0
3.5
Error:Invalid argument #print函数内部的的函数错误也能被try捕捉到