BIF == Built-in functions (内置函数)
用冒号:
而不是分号;
001作业
0、Python是一种面向对象的脚本语言。
1、IDLE是python的一个shell。
2、输出。
3、*
4、两个数字才能相加,才有意义,字符串和数字相加无意义
5、print(‘“’)
6、python3与之前的python2不兼容
动手:
0、一个使用了内置函数,一个直接计算
1、31536000
2、
变量名不能以数字开头。
变量名的大小写是不同的,例如,FishC和fishc这两个变量是不一样的。
003作业
0、C
1、小甲鱼
2、小甲鱼
3、520
4、print(r“let‘s go”)
5、
6、把first打成了fisrt。
动动手:
0、
daysperyear = 365
hoursperday = 24
minutesperhour = 60
secondsperminute = 60
print(daysperyearhoursperdayminutesperhour*secondsperminute)
1、三重引号更方便
str="""我爱鱼C,
正如我爱小甲鱼,
他那呱唧呱唧
呱唧呱唧
呱唧呱唧的声音,
总缠绕于我的脑海,
久久不肯散去……"""
print(str)
2、变量名的格式、在python中变量与C语言有些不同,python是把名字贴在值上,名字的值随值改变而改变。三重引号的使用、
if 左边!=右边 意思是 如果左边 不等于 右边。
randint():返回一个随机整数
import random
temp = random.randint(x,y)
while i: 相当于 while i!=0:
短路逻辑(short-circuit logic):
编程语言常用的逻辑
if a and b:#如果a是false,那么跳过b的判断,结果直接false
Python 的做法是如果 a 为True,它就会返回 b 的值。
if a or b:#如果a为true,那么跳过b的判断,直接true
Python 的做法是如果 a 为True,它就会返回 b 的值。
请问Python的 and 操作符 和C语言的 && 操作符 有何不同?
答:都是逻辑运算,都是短路求值,不同在于C中返回的始终是逻辑值(0 或 1),而python中返回的是实际的对象(ture or flase).
第四讲动动手最后一题未做。
python数据类型
整型(int),浮点型(float,具小数点的)、布尔类型(True:1 False:0)
Ture+True=2 字符串(str) str(15e10)='15e+10'
str(15e-10)='15e-10'
e记法(属于float)
15e10 即科学记数法 15×10的10次方
end='' 不换行
not True == Flase not 将布尔类型反转
Python3 可以给变量命名中文名
若s为字符串
s.isalnum() 所有字符都是数字或者字母,为真返回 Ture,否则返回 False。
s.isalpha() 所有字符都是字母,为真返回 Ture,否则返回 False。
s.isdigit() 所有字符都是数字,为真返回 Ture,否则返回 False。
s.islower() 所有字符都是小写,为真返回 Ture,否则返回 False。
s.isupper() 所有字符都是大写,为真返回 Ture,否则返回 False。
s.istitle() 所有单词都是首字母大写,为真返回 Ture,否则返回 False。
s.isspace() 所有字符都是空白字符,为真返回 Ture,否则返回 False。
python3 的除法很自由,/
// floor除法(地板除)结果向下取整,原来为浮点型,则输出浮点型。
原来为整型,则输出整型。
3.1//2
1.0
3//2
1
% 取余
11 % 2
1
** 幂运算 ** 幂运算操作符比其左侧的一元操作符优先级高,比其右侧的一元操作符优先级低。
>>> - 3 ** 2 # = - (3 ** 2)
>>> - 9
>>> 3 ** - 2 # = 3 ** (-2)
>>>0.11111111111
3 ** 2 # 3的2次幂
9
优先级
先乘除,后加减,括号里的先运算。(负数加括号)
not or and 的优先级是不同的:not > and > or
在 Python 看来,
以下内容会被看作假(注意冒号括号里边啥都没有,连空格都不要有!):
False、None、0、 "" 、''、 ()、 []、 {}
Python3 中,一行可以书写多个语句,语句之间用分号隔开即可,不妨试试:
print('I love fishc');print('very much!')
I lobe fishc
very much!
Python3 中,一个语句可以分成多行书写,
一行过长的语句可以使用反斜杠或者括号分解成几行,不妨试试:
3 > 4 and
1 < 2
Flase
( 3 > 4 and
1 < 2 )
False
三元操作符
x if 条件 else y
python三元操作符
比较大小更简单了
x,y=3987,24361
small=(x if x
print(small)
方法一:比较三个数的大小找出较小的一个
x,y,z=8,1,13
if x
small=x
else:
small=y
if small
print(small)
else:
small=z
print(small)
方法二:比较三个数的大小找出较小的一个
x,y,z=8,9,1
small=(x if x
small=(small if small
print(small)
方法三:比较三个数的大小找出较小的一个
x,y,z=8,4,11
small=x if (x < y and x < z) else (y if y < z else z)
print(small)
assert 条件
条件为假的时候,程序自动崩溃,用于检查程序。
断言
假设有 x = 1,y = 2,z = 3,请问如何快速将三个变量的值互相交换?
(x, y, z) =(z, y, x) 无需中间变量,直接交换。
成员运算符:in 用于判断一个值是否在某序列中,是返回True ,否返回False。
break 终止循环,执行循环后的代码
continue 终止本轮循环,返回判断循环条件是否成立,然后执行循环(True)或跳出循环(False)。
加号 + 和 逗号, 都可以用来拼接print的输出内容,但是两者也是有区别的。
加号 + :两边只能是 同类型 的相加,
逗号,:两边可以是 不同类型 的,甚至是运算
加号更多的理解为加号的运算,逗号更大程度上就是连接,将内容连接起来
list1.append()在列表尾部添加一个元素
list1.extend([])在列表尾部加入多个元素
list1.insert(,)在列表的某个索引处插入一个元素。例:insert(0,‘小甲鱼’)
list1.remove(数据)
del list1[索引值index] 也可以删除整个列表 del list1
list1.pop(索引值index) *不输入索引值,默认移除该列表的最后一个数据,并返回该数据值
list1.reverse() 反转列表 (注意! .reverse()无返回值)
list1.sort() 将列表的数据正序排列
list1.sort(reverse=True) 将列表数据倒序排列
list1[:] 列表切片,相当于复制
list1.copy() 复制列表
list1.clear() 清空列表
列表推导式(List comprehensions)也叫列表解析,Ta 是一个非常有用和灵活的工具,可以用来动态的创建列表,语法如:
[有关A的表达式 for A in B]
list(tuple)将某元组转化为列表
元组(tuple)
可进行比较操作符,逻辑操作符,连接操作符,重复操作符和成员关系操作符的运算。
Python的序列切片地址可以写成
list1[start:end:step]
使用min() max() sum() 要保证序列中的数据类型是相同的。字符串不支持sum()
sorted() 正向排序
reversed() 逆转,返回迭代对象,利用list() tuple() str()
list(enumerate()) 返回(a,b)组成的list,a为index值,b为数据值。
zip()
举个栗子:
a = ( 1, 2, 3, 4, 5 )
b = ( 9, 2, 3, 'a', 1, 2, 3)
zip(a,b)
list(zip(a,b))
[(1, 9), (2, 2), (3, 3), (4, 'a'), (5, 1)]
所谓迭代,是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
def 函数定义
没有return 默认返回None
形参
实参
关键字参数
默认参数
收集参数 *
Nonetype
None
局部变量(local variable)
全局变量(global variable)
0、我在next()函数里...
我在pre()函数里...
1、Hello FishC!
无返回值None
2、可以,用逗号(,)隔开或列表[]
3、1314
520
4、 小甲鱼
Baby I love you