目录
前景
官方下载
基本数据类型
动态语言的体现
静态语言的体现
弱语言的体现
强语言的体现
注释
整数
浮点型
浮点型计算方案
字符串
布尔
引用数据类型
列表 [ ]
列表方法
集合Set{}
基本方法
特殊需求方法
应用场景
字典{}
常见操作
元组
操作符
练习
前景
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集合 需要使用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("输入有误,请重新输入!!!")