语法
一、常用快捷键
打开软件设置 | ctrl+alt+s |
---|---|
快速复制当前代码 | ctrl+d |
将当前代码上下移动 | ctrl+shift+上/下 |
运行当前文件 | ctrl+shift+f0 |
单行注释(# 你好) | |
多行注释(“”“你好”“”) | |
按住ctrl键,鼠标点击模块名 | 可查看模块文件 |
ctrl+f | 在模块文件中搜索模块名 |
常用ASCII码:
A-Z = 65-90
a-z = 97-122
语句 | 用途 |
---|---|
type() | 查看变量存储的数据类型 |
int(x) | 将x转换成整型 |
float(x) | 将x转换成浮点型 |
str(x) | 将x转换成字符串,且不会破坏x的内容万物皆可转字符串,但反之不一定 |
input() | 默认将键盘输入语句看作字符串 |
print(xxx, end=’ ') | 可使输出不换行 |
range(num) | 获取一个从0开始到num-1结束的数字序列 |
range(num1,num2) | 获取一个从num1开始到num2-1结束的数字序列 |
range(num1,num2,step) | 获取一个从num1开始到num2-1结束且步长为step的数字序列 |
len() | python内置的函数,统计长度 |
id(x) | 查看变量X指向的内存地址 |
max(容器) | 统计容器中最大元素 |
min(容器) | 统计容器中最小元素 |
list(容器) | 将容器转换成列表,字典转换只会留下key |
tuple(容器) | 将容器转换成元组,字典转换只会留下key |
set(容器) | 将容器转换成集合,字典转换只会留下key |
sorted(容器,[reverse=True]) | 将容器进行排序,生成列表 |
map(函数,列表) | 将序列中每个元素分别作用函数操作,得到一个新的列表并返回 |
filter(函数,列表) | 对列表中每个元素通过函数判断,筛除不符合的元素,返回剩下元素组成的列表 |
标识 | 用途 |
---|---|
\t | 制表符 |
二、标识符
编写代码时,对变量、类、方法等编写的名字,变量命名最好全用小写字母
1.只允许出现:英文、数字、中文、下划线
不推荐使用中文、数字不能开头
以单下划线开头,表示不能直接访问的类属性;
双下划线开头,表示类的私有成员;
以双下划线开头和结尾,表示python中特殊方法专用的标识符。
2.大小写敏感
3.不能使用关键字,共35个
import keyword
keyword.kwlist
# 或者
import keyword
keyword.iskeyword("and")
三、字符串
不可修改,支持元素重复且有序
- 定义形式
单引号、双引号、三引号(当使用变量接收时是字符串,否则当作注释)
-
转义字符,右斜杠\
-
字符串拼接
方法一
使用+号进行拼接,但无法与除了字符串外其他数据类型拼接;
方法二
改进——>使用字符串格式化,可直接格式化一个表达式,更加
常用占位符:%s、%d、%f
num = 20
data = 22
message = "python,%s,%s" % (num * data, data)
print(message)
精度设置:
m.n设置精度,m控制宽度,设置的宽度小于数字自身则不生效,n控制小数精度,会四舍五入;
%5d表示将整数位数控制在5位内,会从前往后用空格补足位数;%5.2f表示将宽度控制在5位,小数部分精度控制为2位,5位中包括小数点和小数部分。
方法三
f"{占位}"
name = '小米'
age = 18
print(f"我的名字叫{name},今年刚满{age}岁")
注意:该方法不理会类型、不做精度控制,适合对精度没有要求时快速使用
-
字符串本质上只能读,不可修改,除非得到一个新字符串
代码 作用 字符串.index(元素) 查找字符串中指定元素/字符串 字符串.replace(字符串1,字符串2) 将字符串中的字符串1替换为字符串2,不是修改了字符串,而是得到新的字符串 字符串.split(分隔符字符串) 按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中,字符串不变,而是得到了一个列表对象 字符串.strip() 去掉字符串的前后空格 字符串.strip(字符串1) 去掉字符串前后指定的字符串1 字符串.count(字符串1) 统计字符串1在字符串中出现的总次数 len(字符串) 统计字符串的字符个数 字符串[起始:结束:步长] 切片操作,步长为负数则表示从尾向头取 循环遍历与列表使用的方法相同。
四、循环语句
# 打印九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print(f"{j}*{i} = {j*i}\t", end='')
j += 1
i += 1
print()
2.for循环
for 临时变量x in 待处理数据集data:
五、函数
1.基础
写函数时记得写函数的说明文档,规范格式
使用global关键字可在函数内部声明变量为全局变量,在实际过程中少用
# 简单的银行ATM机
money = 5000000; name = None
name = input("please input your name:")
# 查询函数
def query(show_header):
if show_header:
print(" query your account ")
print(f"Hello{name},your account balance is:{money}yuan")
# 存钱函数
def saving(num):
global money
money += num
print(" account balance ")
print(f"Hello {name},you have successfully deposited {num}yuan")
query(False)
# 取钱函数
def withdraw(num):
global money
money -= num
print(" account balance ")
print(f"Hello {name},you have successfully withdraw {num}yuan")
query(False)
# 主菜单
def main():
print(" main menu ")
print(f"Hello {name},welcome to ATM,please select operation:")
print("check balance:\t[1]")
print("saving account:\t[2]")
print("withdraw money:\t[3]")
return input("Please select your operation:")
# 循环逻辑
while True:
keyboard_input = main()
if keyboard_input == "1":
query(True)
continue
elif keyboard_input == "2":
num = int(input("how much money do you want to saving? please input:"))
saving(num)
continue
elif keyboard_input == "3":
num = int(input("how much money do you want to select? please input:"))
withdraw(num)
else:
print("program exit!")
break
方法:如果将函数定义为class(类)的成员,则函数将称为方法。调用时,先获得方法所在的类对象,再用.使用方法。
2.进阶
函数多个返回值:
def test():
return x,y
x,y = test()
1.函数传参方法
-
位置参数:传递的参数和定义的参数顺序及个数必须一致。
-
关键字参数:函数调用时使用”键=值“的形式传参,可以不按照固定顺序,可以与位置参数混合使用,但是位置参数必须在前,且匹配参数顺序。
-
缺省参数:用于定义函数参数,所有位置参数必须出现在默认参数前,包括函数定义和调用。
-
不定长参数:
*args:位置不定长参数,作为元组存在
**kwargs:关键字不定长参数,作为字典存在,传入形参必须为”键=值“形式
# 位置参数
def info1(name, age):
print(f"{name}, {age}")
info1('xiao', 20)
# 关键字参数
info1(age=18, name='li')
info1('wang', age=16)
# 缺省参数
def info2(name, age, gender='男'):
print(f"{name}, {age}, {gender}")
info2(age=22, name='pi', )
# 位置不定长参数
def info3(*args):
print(args, type(args))
info3(1, 2, 3, 'mi')
# 关键字不定长参数
def info4(**kwargs):
print(kwargs, type(kwargs))
info4(name='ha', age=20)
2.lambda关键字
可以定义匿名函数,该函数只能临时使用一次
lambda 传入参数:函数体(一行代码)注意只能写一行
如:
test(lambda x,y:x+y)
【记录学习过程的笔记,欢迎大家一起讨论,会持续更新】