《Python快速上手》学习笔记
1.数学操作符
** 指数 例子:2**3 = 8
// 整除/商数取证 例子:23//4 = 5 23/7 = 3
(向下取整)
/ 得出是float型 例子: 2/1 = 2.0 1010/5 = 202.0
2.字符串连接和复制
"Alice" + 42
>>>TypeError:Can't convert "int" object to str implicity
Python认为你视图将一个整数连接到字符串”Alice”。代码必须显示地将整数转换为字符串,因为Python不能完成自动转换。
可以改成 "Alice"+str(42)
就可以了。
操作符只能用于两个数字(作为乘法),或一个字符串和一个整型(作为字符串复制操作符)。
(2+3)*6
>>>30
"Alice" * 5
>>>"AliceAliceAliceAliceAlice"
"Alice" * 5.0
>>>TypeError:can't multiply sequence by non-int of type "float"
3.len函数
len() 方法返回对象(字符、列表、元组等)长度或项目个数。
str = "runoob"
len(str)
Out[3]: 6
str1 = "run oob"
len(str1)
Out[5]: 7
str1 = " run oob"
len(str1)
Out[7]: 8
str1 = " run obb "
len(str1)
Out[9]: 9
str1 = " run oob."
len(str1)
Out[11]: 9
len("")
Out[12]: 0
len(" ")
Out[13]: 1
总结:” “中地空格或者 . 都算入长度值内,”“长度值是0,” “长度值是1。
4.str()、int()和float()函数
int() 函数用于将一个字符串或数字转换为整型。
int(x, base=10) 其中x – 字符串或数字。base – 进制数,默认十进制。
>>>int() # 不传入参数时,得到结果0
0
>>> int(3)
3
>>> int(3.6)
3
>>> int('12',16) # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
18
>>> int('0xa',16)
10
>>> int('10',8)
8
>>> int(99.99)
99
>>>int("99.99")
ValueError: invalid literal for int() with base 10: '99.99'
float() 函数用于将整数和字符串转换成浮点数。
>>>float(1)
1.0
>>> float(112)
112.0
>>> float(-123.6)
-123.6
>>> float('123') # 字符串
123.0
str() 返回一个对象的string格式。
>>>s = 'RUNOOB'
>>> str(s)
'RUNOOB'
>>> dict = {'runoob': 'runoob.com', 'google': 'google.com'};
>>> str(dict)
"{'google': 'google.com', 'runoob': 'runoob.com'}"
>>>
附注:int()函数总是返回一个字符串,即便用户输入的是一个数字。
>> spam = input()
101
>> spam
'101'
5.Python变量类型
Python有五个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元祖)
- Dictionary(字典)
数据类型分为:数字型和非数字型。
数字型包括int(整型),long(长整型),float(浮点型),complex(复数型);
非数字型包括string(字符串),list(列表),tuple(元组)和dictionary(字典) ;
非数字型的不同点:列表 可以直接赋值,元组不可以赋值,字典按照 dict[k]=v 的方式赋值。
Python列表:
列表用 [ ] 标识,是 python 最通用的复合数据类型。
它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list # 输出完整列表
print list[0] # 输出列表的第一个元素
print list[1:3] # 输出第二个至第三个元素
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2 # 输出列表两次
print list + tinylist # 打印组合的列表
Python元祖
元组是另一个数据类型,类似于List(列表)。
元组用”()”标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print tuple # 输出完整元组
print tuple[0] # 输出元组的第一个元素
print tuple[1:3] # 输出第二个至第三个的元素
print tuple[2:] # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2 # 输出元组两次
print tuple + tinytuple # 打印组合的元组
#以下是元组无效的,因为元组是不允许更新的。而列表是允许更新的:
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # 元组中是非法应用
list[2] = 1000 # 列表中是合法应用
Python字典
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用”{ }”标识。字典由索引(key)和它对应的值value组成。
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # 输出键为'one' 的值
print dict[2] # 输出键为 2 的值
print tinydict # 输出完整的字典
print tinydict.keys() # 输出所有键
print tinydict.values() # 输出所有值
6.文本和字符串相等判断
虽然数字的字符串被认为与整型值和浮点型值完全不同,但整型值可以与浮点值相等。
>>> 42 == "42"
False
>>> 42 ==42.0
True
>>> 42.0 == 0042.000
True
7.布尔值和布尔操作符
布尔值:True False
布尔操作符:and or not
8.Python条件语句
if else、if elif、while、for都属于控制流语句
条件语句if使用:
1.if基本用法
if 判断条件:
执行语句……
else:
执行语句……
2.当判断条件为多个值时,可以使用以下形式:
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
num = 5
if num == 3: # 判断num的值
print 'boss'
elif num == 2:
print 'user'
elif num == 1:
print 'worker'
elif num < 0: # 值小于零时输出
print 'error'
else:
print 'roadman' # 条件均不成立时输出
简单的语句组:
你也可以在同一行的位置上使用if条件判断语句,如下实例:
var = 100
if ( var == 100 ) : print "变量 var 的值为100"
print "Good bye!"
9.Python循环语句
Python提供了for循环和while循环(在Python中没有do..while循环),还有嵌套循环( 你可以在while循环体中嵌套for循环)。
Python循环控制语句:break、continue和pass,循环控制语句可以更改语句执行的顺序。
实际上,只能咋while和for循环内部使用continue和break语句,如果试图在别处使用这些语句,Python将报错。
#if语句
spam = 0
if spam < 5:
print("Hello World")
spam = spam+1
#while语句
spam = 0
while spam < 5:
print("Hello World")
spam = spam+1
对于if条件语句只执行1次。
对于while循环语句执行5次。
在while循环中,条件总是在每次“迭代”开始时检查,如果条件为True,子句就会执行,然后,再次检查条件。当条件第一次为False时,while子句就跳过。
break语句:
#程序可能持续运行下去
name = " "
while name != "your name":
print("Please type you name.")
name =input()
print("Thank you!")
#break语句
while True:
print("Please type you name.")
name = input()
if name == "your name":
break
print("Thank you!")
continue语句:
while True:
print("Who are you?")
name = input()
if name != "Joe":
continue
print("Hello Joe. What is the password")
password = input()
if password == "swordfish":
break
print("Access granted")
10.Python的for循环和嵌套循环
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串,常用的还有for和range()函数联合使用。
for letter in 'Python': # 第一个实例
print '当前字母 :', letter
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 第二个实例
print '当前水果 :', fruit
通过序列索引迭代循环:
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print '当前水果 :', fruits[index]
print "Good bye!"
在条件为True时,while循环就会继续循环。但如果你想让一个代码块执行固定次数,可以通过for循环语句和range()函数来实现。
##python中的内置函数range(),其中参数'5'代表:从0到10的一个序列,即生成长度为5的一个序列
for i in range(5):
print("现在输出的数字是:" + i)
#当然,我们可以自定义我们需要的起始点和结束点
#我们定义了一个从5开始的起始点,到100结束的结束点
print('range(5,100)表示:',range(5,100))
listB = [i for i in range(5,100)]
print(listB)
#定义了这些后,我们还可以定义步长
下面我们定义一个从1开始到30结束,步长为3的列表
print('range(1,30,3)表示:',range(1,30,3))
listC = [i for i in range(1,30,3)]
print(listC)
Python嵌套循环:
#Python for 循环嵌套语法:
for iterating_var in sequence:
for iterating_var in sequence:
statements(s)
statements(s)
#Python while 循环嵌套语法:
while expression:
while expression:
statement(s)
statement(s)
Python pass语句:
Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 输出 Python 的每个字母
for letter in 'Python':
if letter == 'h':
pass
print '这是 pass 块'
print '当前字母 :', letter
print "Good bye!"