Python基本语法
数据类型
- 浮点数:高精度
- 10的-308次方到10的308次方之间
- 精度数量级为10的-16次方
- 可能会产生不确定尾数
- round(x, d)函数:对数据x进行四舍五入运算!d为保留位数
数据运算
- 注意两点:
- x/y 与 x//y的区别
1/3 = 0.3333333···
1//3 = 0#相当于c语言中的/号
- x**y:表示幂运算,即x的y次幂
数值运算函数
- int(x)的妙用
int('123') = 123#float(x)同理
complex(x)#可以将x变成复数
字符串的操作
- 索引和切片
- 用[::-1]来表示字符串的逆序输出
"hanbo"[::-1] == "obnah" #小技巧
- 字符串操作符
- 字符串处理函数
- 字符串使用方法
- 字符串类型的格式化
- 注意:槽中可以嵌套槽
#例如:
n = eval(input())
for i in range(1, n+2, 2):
print("{0:^{1}}".format('*'*i, n))
列表的操作函数
操作列表
- 添加:.append()
- 插入:.insert()
- 删除(运算符):del + 列表名以及pop()删除
names.insert(0,'name') #插入
del names[0] #删除
names.pop([numbers]) #可以删除并且返回其删除的值
组织列表
- 排序:永久排序(.sort())以及临时排序(.sorted())
- 倒着打印列表:reverse()
- 确定列表的长度:len()
print(sorted(names))
names.reverse()#只需要再次调用reverse即可恢复列表的顺序
len(names)
if 语句
- 注意if后面的冒号不要忘记!!!
- 检查特定元素是否位于列表中:in语句(会返回整数)。
‘name’ in names #Python会检查列表,查看是否含有name元素
- 同理:not in 语句也有类似的功能
if user not in banned_users:
print(user.title() + ", you can post a response if you wish.)
- 多个条件使用if-elif-else语句来编写代码。
- 如果有很多条件同时满足,可以用多个if语句来编写。
- 将列表名放在if语句后,当列表中含有至少一个元素时,Python会返回Ture。
字典
- 经典实例
alien_0 = {'color': 'green', 'points': 5}
print(alien_0)
alien_0['x_position'] = 0
alien_0['y_position'] = 25
print(alien_0)
操作字典
- 修改字典中的元素:
alien_0['color'] = 'yellow'
- 删除字典中的元素
del alien_0['points']
- 遍历字典中的元素
for name, language in favorite_language.items():
print(name.title() + "s favorite language is " + language.title() + ".")
- 遍历所有键(使用keys()函数),由于Python会默认输出键,所以后缀可以省略。
for name in favorite_languages.keys():
print(name.title())
- 遍历所有值,可以使用values()语句,方法与上面类似。
- 字典与列表可以相互嵌套!
- 字典之间的嵌套:
users = {#字典之间的嵌套
'aeinstein':{
'first': 'albert',
'last': 'einstein',
'location': 'prinveton';
},
'mcurie': {
'first': 'marie',
'last': 'curie',
'location': 'paris',
},
}
- 字典嵌套中内部字典应该尽量使用相同的格式。
程序控制语句
分支结构
- 异常处理
- 示例:
- 示例:
循环结构
- 遍历循环
- 可遍历结构:字符串,列表,文件,元组等
- 可遍历结构:字符串,列表,文件,元组等
- 无限循环(while)
- 循环的高级用法(与else结合使用)
for c in "Python":
if c == 't':
break
print(c, end="")
else:
print("正常退出")
用户输入和while循环
- intput()获得的值默认为字符串型,使用int()来进行强制转换
- break与continue语句控制循环的进程。
- 使用while循环来修改列表,而不是if循环。
函数部分
- 函数是可重复使用的,用来实现相关联功能的代码段。
- 定义函数的基本结构是:
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
- 定义函数以def关键词开头,后面跟着函数名、圆括号()、括号中的参数、冒号;
- 接着,在缩进块中编写函数体,函数的第一行语句一般是写文档字符串,用于存放函数说明,也可以选择不写;
- Return[expression]表示结束函数,并返回值。而不带表达式的return相当于返回空值。
- 函数返回值还可以是另一个函数,例如:
# 定义求和函数,返回的并不是求和结果,而是计算求和的函数
def lazy_plus(*args):
def plus():
s = 0
for n in args:
s = s + n
return s
return plus
# 调用函数f时,得到真正求和的结果
f = lazy_plus(1,2,3,4,5)
print(f())
- 参数的选取与分类
# 定义一个包含必选参数、默认参数、可变参数和关键字参数的函数plus
def plus(x, y, z=0, *args, **kw):
print('x=',x)
print('y=',y)
print('z=',z)
print('args=',args)
print('kw=',kw)
# 调用函数plus,输入两个参数1,2
plus(1,2)
- 输出结果
x= 1
y= 2
z= 0
args= ()
kw= {}
- 可以使必选参数为空字符串,就可以将其变为可选参数(在不知道应该输入几个参数的时候可以这样使用!)
- 可以使用for循环或者加入*号的做法来输出列表中的元素(变换格式)
a = list(range(1, 3)
print(a)#答应格式为列表
print(*a)#下面两种等价,打印格式都为元素
for i in a;
print(i)
-
可变参数传递
-
lambda函数
-
小结
- 不同类型的参数是有顺序的,依次是必选参数、默认参数、可变参数和关键字参数。
- 默认参数一定要用不可变对象,用可变对象容易产生逻辑错;
- *args表示的是可变参数,*args接收的是一个元组;
- **kw表示的是关键字参数,**kw接收的是一个字典。
标准库的使用
time库
-
时间格式化
-
程序计时
random标准库
实用技巧
print(f"Hello, {username.title()}!") # 此处的f表示双引号中有格式转换!
- 迭代器仅仅在访问到某个元素时才使用该元素,在这之前,元素可以不存在,所以迭代器很适用于迭代一些无法预先知道元素总数的巨大的集合。
注意事项
- 如果有些bug找不出来,或许是缩进的问题。(Python对缩进要求十分严格!)
- 注意常用’’(字符的标志)一面程序报错
- 输出时,+用于连接字符串与字符串,连接字符串与数字应该使用逗号。