目录
1989年圣诞节期间,荷兰人吉多范罗苏姆为了打发无趣的圣诞节而创造了Python,但Python的真正诞生是在1991年。Python的名字取自英国20世纪70年代首播的电视喜剧《蒙提派森的飞行马戏团》。现在已经更新到Python 3.0版本了。
1. Python是一门跨平台的计算机编程语言。
(即Python可以在Windows、评估操作系统中进行运行)
2. Python中是一种解释型语言,开发过程中是没有编译这个环节,与Java不一样。
3. Python是一种交互是语言,可以在>>>后直接执行代码。
(即可以在本机当中直接搜索Python,打开Python 3.9,在>>>后面就可以直接写代码啦)
Python环境安装包下载
https://www.python.org/
https://www.python.org/downloads/windows/Python开发工具PyCharm下载
https://www.jetbrains.com.cn/en-us/
https://www.jetbrains.com.cn/en-us/pycharm/插件安装
#软件汉化
Chinese (Simplified) Language Pack/中文语音包
#英文翻译
Translation

Python是面向对象语言,万物皆对象。Python是一门动态的(dynamic)且强类型(strong)语言。

- #JavaScript 以下代码不会报错,数据类型可以变化
- let a = 1;
- a = "abc";
- #java 以下代码会报错,数据类型不能变化
- int a = 1;
- a = "abc";
- #JavaScript 以下代码不会报错,数据类型可以进行计算
- <script type="text/javascript">
- function abc(){
- let a = "1" * 2;
- alert(a);
- }
- </script>
-
- <body>
- <button type="button" onclick="abc()">测试</button>
- </body>
- #计算字符串叠加效果
- print("1")
- print("1"*2)
- print(1*2)
- print('1'*3)
java八大基本数据类型 Python四大基本数据类型
- #数字类型
- byte/short/int/long 整数 int int
- #浮点型
- float/double 浮点型 double float
- #文本
- char 字符串 string string
- #布尔类型
- boolean 布尔 boolean bool
# 单行注释 Ctrl + Alt + L 代码格式化
"""
多行注释
"""'''
多行注释
'''
# 整数 int int
a1 = 1000 # 十进制
a2 = 0x1000 # 16进制
a3 = 0o1000 # 8进制
a4 = 0b1000 # 2进制
print(a1)
print(a2)
print(a3)
print(a4)
# 浮点型 double float
f1 = 0.6
f2 = 0.2
print(f1 - f2)
d1 = decimal.Decimal(0.6)
d2 = decimal.Decimal(0.2)
print(d1-d2)
d1 = decimal.Decimal('0.6')
d2 = decimal.Decimal('0.2')
print(d1-d2)
#问题
所有和小数相关的运算全部是不准确的
#java中避免精度不准确
1.所有的货币单位全部下调
1毛: 0.1元 10分 100厘
2.使用对应的类型 BigDecimal -> Decimal
3.数据库使用decimal(9,2)
# 字符串 string string
name = "hello world"
print(name)
name = "hello 'world'"
print(name)
name = "hello \"wor\"ld"
print(name)
name = "hello \t world"
print(name)
name = "hello \n world"
print(name)
name = 'hello world'
print(name)
# 布尔 boolean bool
b1 = True
b2 = False
print(b1,b2)
# python中为false的情况
# 0 , '' , [], {}, () , None , False
print(1 and 2 and 3 and 4)
print(1 and 2 and 0 and 4)
print(1 and 2 and '' and 4)
print(1 and 2 and [] and 4)
print(1 and 2 and None and 4)
print(1 and 2 and False and 4)
print(1 and 2 and {} and 4)
print(1 and 2 and () and 4)
print(1 and 2 and 'axs' and 4)
类型 java Python
列表 ArrayList list
集合 set set
字典 map dict
数组 Array tuple
# 添加内容 stack栈: push放 pop拿
# 列表的定义,有值无值的分别定义方式
# pop 拿元素(删除元素)
# extend 追加
# copy 复制新的引用
# append 追加
# l1.sort() 排序
# l1.sort(reverse=True) 倒序
# remove 删除某个元素
# insert 插入
# clear 清空
# l1[开始:结束:步长]
- # 列表 ArrayList -> list
- l1 = list()
- l1 = []
- l1 = [1, 3, 4, 2, 5]
- print(type(l1))
-
- # 添加内容 stack栈: push放 pop拿
- # pop 拿元素(删除元素)
- print(l1.pop())
- print(l1)
-
- # extend 追加
- l1.extend([9,8])
- print(l1)
-
- # copy 复制新的引用
- l2 = l1.copy()
- l3 = l2
- print(l2)
-
- # append 追加
- l2.append({7,6})
- print(l1)
- print(l2)
- print(l3)
-
- # l1.sort() 排序
- # l1.sort(reverse=True) 倒序
- l1.sort()
- print(l1)
- l1.sort(reverse=True)
- print(l1)
-
- # remove 删除某个元素
- l1.remove(8)
- print(l1)
-
- # insert 插入
- l1.insert(1,33)
- print(l1)
-
- # 反转数组中的元素
- l1.reverse()
- print(l1)
- l1.reverse()
- print(l1)
-
- # 查找字符出现的次数
- l1.append(4)
- print(l1.count(4))
- print(len(l1))
-
- # clear 清空
- l1.clear()
- print(l1)
-
- print('========================================')
- # 切片
- l1 = [1, 2, 3, 4, 5, 6, 7]
- # 拿到 【2, 3, 4】
- print(l1[1:4])
- # 删掉【2, 3, 4】
- l1[1:4] = [] # 1,5,6,7
- print(l1)
- # 添加 【2, 3, 4】
- l1[1:1] = [2, 3, 4]
- print(l1)
-
- # l1[开始:结束:步长]
- print(l1[-1::-1])
- print(l1[::2])
# 集合 Set -> set
# 元素唯一且无序
# 如果是新建空的set集合 需要使用set()
s1 = {}
print(type(s1))
s1 = set() # s1={}方法建出来的是一个dict对象
print(type(s1))
s1 = {1, 2, 3, 4, 5, 6, 1, 1, 1}
print(type(s1))'''增删改查'''
# s1.clear()
# s1.copy()
# s1.remove()
# s1.pop()
# s1.add()

- s1 = {1, 2, 3}
- s2 = {3, 4, 5}
-
- # s1.difference(s2) 取差集
- s3 = s1.difference(s2)
- print(s1)
- print(s2)
- print(s3)
-
-
- # s1.discard() 删除元素
- print(s1.discard(4)) # 删除不报错
- print(s1)
- # print(s1.remove(4)) #删除报错
- print(s1)
-
- # s1.intersection() 取交集
- s3 = s1.intersection(s2)
- print(s1)
- print(s2)
- print(s3)
-
- print('=================')
- m1 = {1, 2, 3}
- m2 = {3, 4, 5}
-
- # 并集
- print(m1 | m2)
- # 交集
- print(m1 & m2)
- # 差集
- print(m1 - m2)
- # 平均差集
- print(m1 ^ m2)
-
- # 再xx里面是否存在
- print(1 in m2)
- print(1 not in m2)
1.公司抽奖
2.黑名单用户取差集# 抽奖
users = {'zs', 'ls', 'ww', 'zl', 'tq'}
print(users.pop())
# 黑名单去重
black = {'ls', 'zl'}
print(users - black)
- person = {
- "name": "root",
- "pwd": "123"
- }
- # 拿值
- print(person['name'])
- # 改值
- person['pwd'] = 123
- # 给一个新的值
- person['age'] = 456
- print(person)
- person[1] = 'aa'
- print(person)
- person[(1, 2)] = '黑'
- # 定义一个空的dict
- dog = {}
- print(type(dog))
- # 元组 array -> tuple
- # 性质和list一致,不能做增删改
- # list:[] set:{} 元组:() 字典dict:{}
- t1 = (1, 2, 3)
- print(t1)
- t2 = 1, 2, 3, 4, 5
- print(t2)
- # 写一个只具备一个元素的元组
- t3 = 1,
- print(type(t3)) # <class 'tuple'>
- t3 = 1
- print(type(t3)) # <class 'int'>
- print(t3)
# 操作运算符
# + - * /
print(5 + 2)
print(5 - 2)
# print("a"+2) # 报错,强类型
print("a" * 2)
print(5 * 2)
print(5 / 3)
print(5 // 3)
print(5 % 3)
print(5 ** 3)l1 = [1, 2, 3]
l2 = [3, 4, 5]
print(l1 + l2)
print(l1 * 2)print('hello' * 20)
name = 'sa'
age = 18
# print('学生姓名为:' + name + ',年龄为:'+age)
print(f'学生姓名为:{name},年龄为:{age}')
使用变量存储:姓名,性别,年龄,薪资,建议
使用控制台完成学生信息的CURD
- students = {}
-
-
- def show_menu():
- print("欢迎光临学生管理系统v1.1:")
- print("1、添加学生")
- print("2、查找学生")
- print("3、展示所有")
- print("4、删除学生")
- print("5、修改学生")
- print("6、退出系统")
-
-
- def add_stu():
- # 添加学生逻辑
- name = input("学生姓名")
- score = input("学生分数")
- student = {'name': name, 'score': score}
- students[name] = student
- print("添加成功")
-
-
- def search_stu():
- # 输入要查找的学生姓名
- search_name = input("请输入你要查找的学生姓名")
- all_keys = students.keys()
- if search_name not in all_keys:
- print("没有你要查找的学生")
- else:
- student_dict = students[search_name]
- # print("name:%s score:%d" % (student_dict['name'], student_dict['score'])) #python2.x的写法
- print(f"name:{student_dict['name']} score:{student_dict['score']}") #python3.x的写法
-
-
- def all_stus():
- print("所有学生信息如下", end=":")
- # print(students)
- for key, stu_dic in students.items():
- print("key:%s" % key)
- print("name:%s score:%s" % (stu_dic['name'], stu_dic['score']))
-
-
- def del_stu():
- del_name = input("请输入要删除的学生姓名")
- all_keys = students.keys()
- if del_name in all_keys:
- del students[del_name]
- print("删除成功")
- else:
- print("没有该学生或者已经删除")
-
-
- def update_stu():
- # 修改逻辑
- update_name = input('请输入你要修改的学生的姓名:\n')
- all_keys = students.keys()
- if update_name not in all_keys:
- print("没有该学生")
- else:
- new_name = input("请输入新名字")
- new_score = int(input("请输入新分数"))
- new_stu = {'name': new_name, 'score': new_score}
- # 将旧学生删除
- del students[update_name]
- students[new_name] = new_stu
- print("修改成功")
-
-
- def exit_sys():
- print("退出系统,欢迎再次使用")
- # 调用系统的结束函数
- exit(0)
-
-
- while True:
- show_menu()
- choose = input("请选择1-6:")
- if choose == '1':
- add_stu()
-
- elif choose == '2':
- search_stu()
-
- elif choose == '3':
- all_stus()
-
- elif choose == '4':
- del_stu()
-
- elif choose == '5':
- update_stu()
-
- elif choose == '6':
- exit_sys()
-
- else:
- print("输入有误,请重新输入!!!")