将命令别名:
alias 新命令名='原命令'
alias rm='rm -f'
删除别名:
unalias
unalias rm
创建归档
tar -cvf filename.tar redis-5.0.0/*
解归档
tar -xvf filename.tar
> : 输出重定向
>> : 追加输出重定向
2> : 错误输出重定向
cal >> name.txt
ls -R /root 2> username
ls -R / > ok.txt 2> error.txt
vim编辑器
vim的工作模式:
1.命令模式 按i或者a进入编辑模式
2.编辑模式 按Esc进入末行模式
3.末行模式 命令模式下按:或者/或者?进入
常用命令
h、j、k、l - 移动光标
gg:首行
G:最后一行
dd:删除一行
d0:从光标位置删除至行首
d$:从光标位置删除至行尾
行数 dd: 删除光标后的指定行数
dw:删除单词
u:撤销
数字 yy : 复制指定光标后的指定行数
yy:复制一行
p:粘贴
ZZ : 保存退出
快捷键:
Ctrl + y:向上一行
Ctrl + e:向下一行
Ctrl + f:向下一页
Ctrl + b:向上一页
Ctrl + r : 重做
Ctrl + w : 切换窗口
末行模式:
set nu : 设置行号
syntax on:设置高亮语法
set ruler:显示光标位置
set ts=4:制表键4个空格
set autoindent:自动缩进
set nohls:取消高亮搜索结果
Vim 安装一个名为 YouComleteMe插件
用户主目录下创建vim配置文件:
vim .vimrc
set nu : 设置行号
syntax on:设置高亮语法
set ruler:显示光标位置
set ts=4:制表键4个空格
set autoindent:自动缩进
set nohls:取消高亮搜索结果
映射快捷键:
map <F2> gg99999dd
inoremap _main if __name__ == '__main__':
vim同时打开多个文件
ls:查看打开的多个文件
b 文件序号: 切换文件
sp: 水平分屏
vs:垂直分屏
Ctrl + w:切换窗口
qa:退出所有窗口
-rw-r--r-- 1 root root hello.py
第一个字符:
d - 文件夹
l - 软链接
- - 文件
第2 - 4个字符:文件的所有者对文件有何种操作权限
r - read - 读
w - write - 写
x - execute - 执行
第5 - 7个字符:和文件所有者同组的用户对文件有何种操作权限
第8 - 10个字符:其他用户(不是文件的所有者也不同组)的用户对文件有何种操作权限
chmod:修改文件权限
chmod u+x hello.py
chmod g+x,o+x hello.py
chown :改变文件的所有者
chown hellokitty hello.py
A、B、C、D、E五人在某天夜里合伙捕鱼 最后疲惫不堪各自睡觉
第二天A第一个醒来 他将鱼分为5份 扔掉多余的1条 拿走自己的一份
B第二个醒来 也将鱼分为5份 扔掉多余的1条 拿走自己的一份
然后C、D、E依次醒来也按同样的方式分鱼 问他们至少捕了多少条鱼
穷举法:穷尽所有可能直到找到答案
1 #!/usr/bin/python3
2
3
4 def main():
5 fish = 1
6 while True:
7 enough = True
8 total = fish
9 for _ in range(5):
10 if (total - 1) % 5 == 0:
11 total = (total - 1) // 5 * 4
12 else:
13 enough = False
14 break
15 if enough:
16 print(fish)
17 break
18 fish += 1
19
20
21 if __name__ == '__main__':
22 main()
1 #!/usr/bin/python3
2 """
3 百钱百鸡
4 """
5
6
7 def main():
8 """主函数(程序的入口)"""
9 for cock in range(0, 21):
10 for hen in range(0, 34):
11 chicken = 100 - cock - hen
12 if chicken % 3 == 0 and 5 * cock + 3 * hen + chicken // 3 == 100:
13 print(f'公鸡:{cock},母鸡:{hen},小鸡:{chicken}')
14
15
16 if __name__ == '__main__':
17 main()
Josephu环:
30个人(15个教徒和15个非教徒)坐船出海 船坏 需要把15个人扔到海里 其他人才能幸存 围成一圈从某人开始从1报数 报到9的人 扔到海里 下一个人继续从1开始报数 直到扔掉15个人 结果由于神仙的保佑 15个教徒全部幸存 问最开始怎么站的
1 #!/usr/bin/python3
2
3
4 def main():
5 persons = [True] * 30
6 index, number, counter = 0, 0, 0
7 while counter < 15:
8 if persons[index]:
9 number += 1
10 if number == 9:
11 persons[index] = False
12 counter += 1
13 number = 0
14 index += 1
15 index %= len(persons)
16 for person in persons:
17 print('基' if person else '非', end=' ')
18 print()
19
20
21 if __name__ == '__main__':
22 main()
1.JPG
工资结算系统:
部门经理 - 15000/月
程序员 - 200/小时
销售员 - 1800底薪 + 5%销售额
1 #!/usr/bin/python3
2 from abc import ABCMeta, abstractmethod
3
4
5 class Employee(object, metaclass=ABCMeta):
6
7 def __init__(self, name):
8 self.name = name
9
10 @abstractmethod
11 def get_salary(self):
12 pass
13
14
15 class Manager(Employee):
16
17 def get_salary(self):
18 return 15000
19
20
21 class Programmer(Employee):
22
23 def __init__(self, name):
24 self.working_hour = 0
25 super().__init__(name)
26
27 def get_salary(self):
28 return 200 * self.working_hour
29
30
31 class Salesman(Employee):
32
33 def __init___(self, name):
34 self.sales = 0
35 super().__init__(name)
36
37 def get_salary(self):
38 return 1800 + self.sales * 0.05
39
40
41 def main():
42 emps = [
43 Manager('曹操'),
44 Programmer('荀彧'),
45 Programmer('郭嘉'),
46 Salesman('张辽')
47 ]
48
49 for emp in emps:
50 if isinstance(emp, Programmer):
51 hour = int(input(f'请输入{emp.name}本月工作时间:'))
52 emp.working_hour = hour
53 elif isinstance(emp, Salesman):
54 sales = int(input(f'请输入{emp.name}本月销售额:'))
55 emp.sales = sales
56 print(f'{emp.name}本月工资为:{emp.get_salary()}元')
57
58
59 if __name__ == '__main__':
60 main()
1.JPG
网友评论