一.python基础
1.1 数学操作符
操作符 | 操作 | 例子 | 求值为 |
** | 指数 | 2**3 | 8 |
% | 取余数 | 22%8 | 6 |
// | 取整数 | 22//8 | 2 |
/ | 除法 | 22/8 | 2.75 |
* | 乘法 | 3*5 | 15 |
- | 减法 | 5-3 | 2 |
+ | 加法 | 5+3 | 8 |
其优先级为**,接下来是*,/,//,%,从左至右。最后是+,-。
可用括号改变其优先级,如下交互式环境:
>>>2+3*6
20
>>>(2+3)*6
30
>>>(5-1)*((7+1)/(3-1))
16.0
1.2 整型,浮点型和字符串数据类型
常见的数据类型有三种
数据类型 | 例子 |
整型 | -2,-1,0,1 ,2 |
浮点型 | -1.1 ,-0.2, 2.1, 2.9 |
字符串 | 'a' ,'aa', '!' |
甚至可以有没有字符的空字符串,称为“空字符串”。
1.3 字符串的连接和复制
操作两个整型或浮点型时,‘+’是相加操作符,但是用于两个字符串时,它连接两个字符串。
>>>'alice'+'bob'
'alicebob'
但是,对一个字符串和整型值使用相加符,就会出现错误。不过,使用 ‘ * ’符合操作于字符串和一个整型值时,就相当于“字符串复制”操作符。
>>>'alice'*5
'alicealicealicealicealice'
但使用浮点型与字符串就会出现错误。
1.4 在变量中保存值
1.4.1赋值语句
>>>spam=40
>>>spam
40
>>>eggs=2
>>>egggs+spam
42
>>>spam=spam+2
>>>spam
42
同时也可以覆写一个字符串
>>>spam='hello'
>>>spam
'hello'
1.4.3 变量名
取变量的三条规则
1.只能是一个词
2.只能包含字母,数字和下划线
3.不能以数字开头(下划线开头也可以被允许)
有效的变量名 | 无效的变量名 |
blankspace | blank-space(不允许中划线) |
blank_space | 6blank_space(不允许数字开头) |
BLANKSPACE | BLANK SPACE(不允许空格) |
Blankspace | blank&space(不允许特殊字符) |
一般情况下,用小写字母作为变量名开头。
1.5 程序刨析
1.5.1 print()函数
print()函数将括号内的字符串显示在屏幕上
print('Hello,world')
代码运行打印出字符串‘Hello,world'的文本。
1.5.2 input()函数
函数等待用户在键盘上输入一些文本
myName=input()
用户输入的文本将这个字符串赋给变量myName。
1.5.3 len()函数
向len()函数传递一个字符串(或包含字符串的变量),任何求值为一个整型值,即字符串中字符的个数。
>>>len('helo')
5
>>>len('My love')
6
>>>len('')
0
1.5.4 str()函数
如果需要连接一个整数(如29)和一个字符串,再传递给print(),就需要获得‘29’。str()函数可以传入一个整型值,并求得其字符串形式。
>>>str(29)
'29'
>>>print('I am '+str(29)+'years old.')
I am 29 years old.
1.5.5 int()函数
int()函数进行取整操作,如下
>>>int('42')
42
>>>int(1.25)
1
>>>int(-99.9)
-99
假如字符串是一个浮点型的字符串,比如‘99.99’用int()函数就会报错,首先要把字符串转为浮点型(下一个float()函数)。
s='3.14'
num=int(float('s'))
>>>num
1.5.6 float()函数
将字符串或数值转为浮点型
>>>float('3.14')
3.14
>>>float('10')
10.0
应用以上函数,假如今年你七岁,输出明年你多少岁。
print('what is your age?')
myAge=input()
print('You will be'+str(int(myAge)+1)+'years old.')
str(),input()函数传出的都是一个字符串,所以需要转为整型再加减。
二.控制流
2.1布尔值
布尔类型的数据只有两种值:True和False。布尔值的首字母必须大写,他们总是以大写字母T和F开头,后面的字母小写,两边没有引号。
>>>spam=True
>>>spam
True
以下两种情况会出现错误
>>>true
>>>True=2+2
2.2比较操作符
比较操作符,求值为一个布尔值
操作符 | 含义 |
= | 等于 |
!= | 不等于 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
>>>42==42
True
>>>2!=2
False
>>>2!=2
True
>>>42==99
False
注意,整型或浮点型的值不会与字符串相等
>>>'hello'='Hello'
False
>>>42==42.0
True
>>>42=='42'
False
>>>True!=False
True
2.3布尔操作符
3个布尔操作符(and,or和not)用于比较布尔值,他们将表达式求值为布尔值。
2.3.1二元布尔操作符
and和or总是接受两个布尔值(或表达式),以下是真值表
表达式 | 求值为 |
True and True | True |
True and False | False |
False and True | False |
False and False | False |
表达式 | 求值为 |
True or True | True |
True or False | True |
False or True | True |
False or False | False |
2.3.2 not操作符
not操作符只作用于一个布尔值,not操作符求值为相反的布尔值。
表达式 | 求值为 |
not True | False |
not False | True |
2.4 控制流语句
2.4.1 if语句
if语句包含以下部分:
1.if关键字
2.条件
3.冒号:
4.在下一行开始,缩进的代码块(if子句)
如果条件为True,则进行,条件为False,则跳过。
if name==('Alice'):
print('Hi,Alice.')
2.4.2 else语句
只有if语句条件为False时,else子句才会执行。else语句包含下列部分:
1.else关键词
2.冒号
3.在下一行开始,缩进的代码块(else子句)。
if name==('Alice'):
print('Hi,Alice.')
else:
print('stranger')
2.4.3 elif语句
elif语句是否则如果,总是跟在if或另一条elif语句的后面。仅在前面的条件为False时才检查该条件。elif总是包含以下部分:
1.elif关键字
2.条件
3.冒号
4.在下一行开始,缩进的代码块(elif子句)
if name=='Alice':
print('Hi,Alice')
elif age<12:
print('You are not Alice')
如果age<12为True且name=='Alice'为False,elif语句就会执行。如果两个条件均为False,那么两个语句都会跳过。
2.4.4 while循环语句
利用while语句,让代码块一遍又一遍的循环。只要while语句的条件为True,while子句中的代码就会执行。while语句总是包含下面部分
1.关键字
2.条件
3.冒号
4.在下一行开始,缩进的代码块(while子句)
比较if与while语句
spam=0
if spam<5:
print('Hello')
spam=spam+1
下面是while语句
spam=0
while spam<5:
print('Hello')
spam=spam+1
对于if语句,只输出‘Hello’一遍, 但是对于while语句则输出五遍‘Hello。
name==''#首先名字为空
while name!='your name':
print('Please type your name')
name=input()
print('Thank you')
首先将变量设置为一个空字符串,这样条件name!='your name'就会求值为真,开始while循环,直到用户输入your name,循环的条件为False,则终止循环。
2.4.5 break continue语句
让循环提前终止,可运用break语句;
while True:
print('Please type your name.')
name=input()
if name=='your name':
break
print('Thanks')
第一行创建了一个‘无限循环’,它是一个条件总为True的while循环。程序总是进行无限循环,只有遇见break语句才会退出。与break语句不一样的是,continue退出后又跳回开始循环的地方。
2.4.6 for循环和range()函数
for语句看起来像for i in range(5):这样,总是包含以下部分:
1.for关键词
2.一个变量名
3.in关键词
4.调用range()方法,最多传入三个参数
5.冒号
print('My name is')
for i in range(5):
print('Jimmy Five Times('+str(i)+')')
for循环的子句被循环了五遍。第一次变量i为0,经过五次循环,i分别被设置为0,1,2,3,4。y以下为运行结果:
My name is
Jimmy Five Times(0)
Jimmy Five Times(1)
Jimmy Five Times(2)
Jimmy Five Times(3)
Jimmy Five Times(4)
利用for循环求0一直加100的结果
total=0
for num in range(101):#num从0开始增长,所以加到100要101次
total=total+num
print (total)
程序刚开始,total变量为0,然后执行100次total=total+num,当循环100次,0到100的整数都加给了total。
2.4.7 range()函数的开始,停止,参数
for i in range(12,16):
print(i)
第一个参数是for循环变量的开始,第二个是上限但不包含他,故运行结果为
12
13
14
15
range()也可以有第三个参数,第三个参数是“步长”
for i in range(0,10,2):
print(i)
所以从0数到8,间隔为2。
0
2
4
6
8