赞
踩
目录
(1)使用记事本(sublime)书写一个 python 代码
计算机想要运行程序,需要将软件(指令,数据)加载到内存中.
CPU 只能和内存进行交互.
计算机只认识 0 和 1.
编程语言: 就是计算机和人类沟通交流的语言.
常见的编程语言: python , C 语言 C++.
python: python 解释器, 将 python 代码解释成计算机认识的语言.
pycharm: IDE(集成开发环境), 写代码的一个软件, 集成了写代码, 运行代码,代码调试等功能
写代码的软件除了使用 pycharm 之外,还可以使用 记事本, sublime, vscode ....
pycharm 软件的基本设置
file 菜单
setting - 背景色
setting - 设置字体颜色和大小
setting -- 设置解释器
在编译器中可以用Tab,但最好用空格
使用ctrl+/
数据类型: int(整型) float(浮点型) str(字符串类型) bool(布尔类型, True False) list(列表) tuple(元组) dict(字典)
type() 函数可以查看变量的数据类型
输入: input() --> str 类型转换
输出: print() %s--字符串 %d -- int %f--float %--%%
f-string {变量}
不需要刻意的记忆,后续课程中会逐渐学习
(1)input
(2)print()的参数里 ”+“和”,“ 的区别
【1】print()内的“+”前后数据类型保持一致
print("aa"+"bb")
【2】print()内”,“ 用于间隔多个对象
print("请输入公里数,系统会自动转为海里数")
sea_kilometer=input("请输入公里")
nautical_mile=(float(sea_kilometer)/1.852)
print("转换后的海里数为:",nautical_mile)
*可变数据类型:list(列表)、dict(字典)、set(集合,不常用)
*不可变数据类型:数值类型(int、float、bool)、string(字符串)、tuple(元组)
*总结:1可变数据类型更改值后,内存地址不发生改变。(列表:地址只与创建有关,内容与增改无关)
2不可变数据类型更改值后,内存地址发生改变。
+ - * /
// 整除(求商)
% 取余数
** 指数,幂运算
() 可以改变优先级
= 将等号右边的结果赋值给等号左边的变量
等号左边,必须是变量,不能是具体的数字
+= c+=a ===> c = c + a
-= c-=a==è c=c-a
比较运算符的结果是 bool 类型, 即 True,或者是 False
== 判断是否相等, 相等是 True. 不相等是 False
!= 判断是否不相等, 不相等是 True, 相等 False
>
<
>=
<=
逻辑运算符可以连接连个表达式, 两个表达式共同的结果决定最终的结果是 True,还是 False
and 逻辑与, 连接的两个条件都必须为 True,结果为 True, 一假为假
如果第一个条件为 False,就不会再判断第二个条件
or 逻辑或, 连接的两个条件都为 False,结果为 False, 一真为真
如果第一个条件为 True,第二个条件就不会再判断了
not 逻辑非, 取反,原来是 True,变为 False,原来是 False,变为 True
步骤:
- 1:带引号的内容就是字符串.
-
- 2:定义
- Str=’1,2,3”
-
- 在 python 中,字符串可以乘上一个整数,
- 字符串 * num
- (1)使用字符串中的replace()方法模拟敏感词过滤,将含有敏感词的语句使用“*”符号进行替换。
- 本实例要求编写程序,实现替换语句中敏感词功能。(例如:设置敏感词:“糟糕”“哇靠”)
- str1=input("输入一段文字,本系统会自动过滤敏感词")
- str2=str1.replace("糟糕","***").replace("哇靠","***")
- print("过滤后的文字:"+str2)
-
- (2)fromat()格式化输出
- name="李倩"
- age=12
- print("你好,我的名字是:{},我今年{}岁".format(name,age))这种常用
- print("你好,我的名字是:{1},我今年{0}岁".format(name,age))
-
- 保留n位小数
- num1=3.1415926
- print("保留2为小数:{:.2f}".format(num1))
- 补0,要001
- num2=1
- print("{:0>3d}".format(num2))
- 百分比 {:.0%}:就是百分位的百分比,0.1=10%,0.01=1% 0.001=0%
- num3=0.01
- num4=0.001
- print("{:.0%}".format(num3))
- print("{:.0%}".format(num4))
- print("{:.1%}".format(num4))
-
- (3)字符串分割 split()默空格分割
- word="1,2,3,4"
- str=word.split(",")
- print("word:",str)
-
- Split:获取分割后的其中某一个字符
- str="abc,123 efg,567"
-
- #以','分割2次后输出
-
- print str.split(',',2);---》['abc', '123 efg', '567']
-
- #以','分割2次后输出地2个参数,1是从0开始,代表第二个参数
-
- print str.split(',',2)[1];-->123 efg
-
- (4)去字符串的2边 strip()
- word=" 1string1 "
- str=word.strip()
- print("word:",str)
-
- (5)字符串的索引
- str_p="python"
- ---》 "012345"
- print("[0]",str_p[0])
- print("[0:4:1]",str_p[0:4:1])
- print("[0:4:2]",str_p[0:4:2])
- ---《 -1 -2 -3 -4 -5 -6
- (1) 输入 input()
-
- input() 函数得到的内容就是字符串
-
-
-
- (2)输出 print() 函数 %s
-
- *[1]f-string
- Address=”河北”
- Print(f ’欢饮来到{address}’)
- [2]fromat()格式化输出
-
- name="李倩"
-
- age=12
-
- print("你好,我的名字是:{},我今年{}岁".format(name,age))这种常用
-
- print("你好,我的名字是:{1},我今年{0}岁".format(name,age))
- 【1】随机数的andom.randint(0, 2)#随机生成0-2之间的数
-
- import random随机数包
- list=[[],[],[] ]教室
- name_list=["a","b","c","d","e","f","t","y"]
- for i in name_list:
- num = random.randint(0, 2)
- list[num].append(i)
- print(list)
- for t in list:
- print(t.leng)
-
-
- 【2】random.random()
-
- 功能:随机生成一个 [0,1) 的浮点数
-
- 用法:
-
- import random
-
- number = random.random()
-
- # 输出:0.7178886135325596
-
- 【3】random.uniform(a,b)
-
- 功能:随机生成一个 [a,b) 的浮点数
-
- 用法:
-
- number = random.uniform(2,4)
-
- # 输出:2.070517705689751
-
- 【4】random.choice(sequence)
-
- 功能:从一个已有的sequence中随机选择一个元素
-
- 用法:
-
- number = random.choice(range(2,10))
-
- # 输出:6
-
- number = random.choice('anbegvdje')
-
- # 输出:g
-
- 【5】random.sample(sequence,k)
-
- 功能:从某一序列中获取指定长度的片段
-
- 用法:
-
- a = ['香蕉','苹果','橘子','眼影','眼线']
-
- b = random.sample(a,2)
-
- # 输出:['橘子', '苹果']
-
- 【6】random.shuffle(列表)
-
- 功能:打乱一个列表的元素顺序
-
- 用法:
-
- a = ['香蕉','苹果','橘子','眼影','眼线']
-
- random.shuffle(a) # 打乱这个操作不需要重新定义对象,它作用的是对象本身
-
- # 输出:['眼线', '苹果', '眼影', '橘子', '香蕉']
-
- 【7】import secrets#安全机密的随机数
-
- set_jihe={'1','2','3'}
-
- set_list=[]
-
- #集合是无序的
-
- for item in set_jihe:
-
- set_list.append(item)
-
- print(secrets.choice(set_list))#随机输出数组
网站:
python中在文件中读取与写入的json的strjson与字典转换_stundent的博客-CSDN博客- 【1】只写--存字符串
-
- # w 只能操作写入 r 只能读取 a 向文件追加
-
- # w+ 可读可写 r+可读可写 a+可读可追加
-
- # wb+写入进制数据
-
- # w模式打开文件,如果而文件中有数据,再次写入内容,会把原来的覆盖掉
-
- file_handle = open('card_417.txt', mode="w")
-
- # \n 换行符
-
- file_handle.write(“字符串内容”)
-
- file_handle.close()#注意:文件一定要关闭,否则不能存盘
- 【1】将字典类型的--转—string
-
- import json
-
- import os
-
- file_init=open("admin.txt",mode="w",encoding="utf-8")
-
- admin_dict={}
-
- admin_dict["name"]=name
-
- admin_dict["pwd"]=pwd
-
- # print("字典",admin_dict)
-
- # print("josn:",json.dumps(admin_dict))#json.dumps()用于将dict类型的数据转成str
-
- file_init.write(json.dumps(admin_dict)) # json.dumps()用于将dict类型的数据转成str
-
-
-
- 【2】将jsonStr—转—字典
-
- user_login_file = open("user.txt", mode="r", encoding="utf-8")
-
- file_data=user_login_file.read()
-
- user_read_dict = json.loads(file_data) #将jsonStr—转—字典
-
-
-
- 【3】答案的快速写法(考试写,速度比较快)
-
- Eval():1将字符串当成有效的表达式来求值并返回计算结果
-
- 2简单理解就是直接里面的代码直接运行(没有防止恶意代码的注入)
-
- user_login_file = open("user.txt", mode="r", encoding="utf-8")
-
- file_data=user_login_file.read()
-
- # {2}和我的写法不同处
-
- user_read_dict = eval(file_data)
- if 判断条件:
-
- 判断条件为 True,会执行的代码
-
- 判断条件为 True,会执行的代码
-
- ...
-
- if num1>0:
- print("num1>0")
- if 判断条件:
-
- 判断条件为 True,会执行的代码
-
- 判断条件为 True,会执行的代码
-
- ...
-
- else:
-
- 判断条件为 False, 会执行的代码
-
- 判断条件为 False, 会执行的代码
-
- .....
-
-
-
-
-
- if 和 else 只会执行其中的一个,
(4)if elif 结构
- if 判断条件1:
- 判断条件1成立,执行的代码
- elif 判断条件2:
- 判断条件1不成立,判断条件2 成立,会执行的代码
- else:
- 判断条件1和判断条件2都不成立,执行的代码
-
- --------
- if num1>0:
- print("num1>0")
- elif num1>2:
- print("num1>2")
- if 判断条件1:
- 判断条件1 成立,会执行的代码
- if 判断条件2:
- 判断条件1成立, 判断条件2成立执行的代码
- else:
- 判断条件1成立, 判断条件2不成立执行的代码
- else:
- 判断条件1不成立,会执行的代码
- if else 结构变形
- if 判断条件1:
- 表达式1
- else:
- 表达式2
-
- 判断条件成立,执行表达式 1, 条件不成立,执行表达式 2
-
- 变量 = 表达式1 if 判断条件 else 表达式2 推荐使用扁平化代码
-
- 变量最终存储的结构是:
- 判断条件成立,表达式1的值,
- 条件不成立,表达式2的值
-
- ---jva中
- Flag=a>b?True:False
- while 判断条件:
- 判断条件成立,执行的代码
- 判断条件成立,执行的代码
-
- while True: 无限循环
- 代码
-
-
- 死循环: 相当于是代码的 bug,错误
- 无限循环: 人为书写的,故意这样写的
- i=1
- while i<3:
- print("while:",i)
- i += 1
(2)循环嵌套
- while 判断条件1:
- 代码1
- while 判断条件2:
- 代码2
-
- ======
- 代码 1 执行一次,代码会执行多次
- for 变量 in 字符串:
- 代码
- for 循环也称为 for 遍历,会将字符串中的字符全部取到
-
- (1)普通for
- range(2)循环的次数
- for i in range(2):
- print("dwdwdw")
-
- (2)forech
- str1="zjx"
- for i in str1:
- print(i)
- 1. break 和 continue 是 python 两个关键字
- 2. break 和 continue 只能用在循环中
- 3. break 是终止循环的执行, 即循环代码遇到 break,就不再循环了
- continue 是结束本次循环,继续下一次循环, 即本次循环剩下的代码不再执行,但会进行下一次循环
- for x in xx:
- if xxx:
- xx if 判断条件成立会执行
- else:
- xxx if 判断条件不成立,会执行
- else:
- xxx for 循环代码运行结束,但是不是被 break 终止的时候会执行
-
- 需求:
- 有一个字符串 'hello python', 想要判断这个字符串中有没有包含 p 这个字符,如果包含,就输出, 包含 p, 如果没有 p ,就输出,不包含
- num = 76
- 使用代码的方法,求出这个数字的个位数和十位数
- 个位数: num % 10
- 十位数: num // 10
-
-
- 判断 if elif else
-
- if 判断条件:
- pass 占位,空代码 让代码不报错
- elif 判断条件:
- pass
- else:
- pass
-
-
- 循环: 重复做一件事 while for
- while 判断条件:
- pass
-
- for i in xxx:
- pass
-
- break 和 continue,
List=[“1”,”2”]
列表的基本方法
- 【1】定义
- list=[1,2,3]
- list1=[10,20,30]
- 【2】方法:
- 1insert(0,4) 功能:insert(位置,内容)
- list.insert(0,4)
- print("insert(0,4):",list)
-
- 2append(内容) 功能:在末尾添加
- list.append(5)
- print("append(5):",list)
-
- 3sort()排序 功能:升序:小--大
- list.sort()
- print("sort():",list)
-
- 4extend() 功能:在列表添加另一个列表中的所有元素
- list.extend(list1)
- print("extend():",list)
-
- 5del() 功能:删除元素
- del list[0]
- print("del:",list)
-
- 6remove(1)功能:移除与1相同的元素
- list.remove(1)
- print("remove:",list)
-
- 7pop() 功能:移除索引位置的元素,没有写默认末尾
- list.pop(0)
- print("pop();",list)
-
- 8数组赋值修改
- list[0]=4
- print("list[0]=4:",list)
-
- 遍历(foreach)
- for i in list:
- print(i)
- import random
-
- # 定义一个列表用来保存3个办公室
- offices = [[], [], []]
- # 定义一个列表用来存储8位老师的名字
- names = ['张老师', '李老师', '赵老师', '高老师',
- '刘老师', '周老师', '王老师', '吴老师']
- for name in names:
- # 将8位老师按照索引为0、1、2进行分组
- index = random.randint(0, 2)
- # print(index)
- # 将8位老师放在不同列表中
- offices[index].append(name)
- flag = 1
- for tempNames in offices:
- print('办公室%d的人数为:%d' % (flag, len(tempNames)))
- flag += 1
- for name in tempNames:
- print("%s" % name, end=' ')
- print(" ")
- num1=[]
- num2=[]
- 1数组的存入
- for i in range(4):
- num2.append(i)
- num1.append(num2)
- print(num1)
- print(num1)
- 2数组的便利
- for i in range(4):
- for t in range(4):
- print(num1[i][t])
- 3数组的删除
- for i in range(4):
- for t in range(4):
- if num1[i][t]==3:
- num1[i][t]=
- print(num1)
'运行
(3)元组
元组的练习
- (1)元组的定义
- yunzu = (1, 'p')
- yunzu1 = ('1', '2')
- print(yunzu)
- print(yunzu1)
- 不推荐,tuple(里的参数不能加,)
- list1=['1','2','3']
- tup_2=tuple(list1)
- print(tup_2)
- tup_3=tuple('abc')
- print(tup_3)
- tup_4=tuple('abc[12]')
- print(tup_4)
-
- (2)元组是不可修改的
- yuanzu2=('hello','100','python')
- yuanzu2[0]='hi'
- print("sout:",yuanzu2[0])
- 报错:
- File "C:/Users/DELL/PycharmProjects/dom01/venv/dom/dom06.py", line 9, in <module>
- yuanzu2[0]='hi'
- TypeError: 'tuple' object does not support item assignment
-
- (3)元组里的列表是可以修改的,只要保证地址不变就行
- yuanzu3=('hello','100',['1','2','3'])
- yuanzu3[2][0]='4'
- print("修改元组里的数组内容:",yuanzu3)
-
- (4)遍历
- yuanzu4=('1','2','3')
- for i in yuanzu4:
- print(i)
- #(1)元组的定义
- yunzu = (1, 'p')
- yunzu1 = ('1', '2')
- Yuanzhu2=(‘1’,)#元组只有一个元素时,参数的后面必须带“,”
- print(yunzu)
- print(yunzu1)
- #不推荐,tuple(里的参数不能加,)
- list1=['1','2','3']
- tup_2=tuple(list1)
- print(tup_2)
- tup_3=tuple('abc')
- print(tup_3)
- tup_4=tuple('abc[12]')
- print(tup_4)
-
- #(2)元组是不可修改的
- # yuanzu2=('hello','100','python')
- # yuanzu2[0]='hi'
- # print("sout:",yuanzu2[0])
- #File "C:/Users/DELL/PycharmProjects/dom01/venv/dom/dom06.py", line 9, in <module>
- # yuanzu2[0]='hi'
- # TypeError: 'tuple' object does not support item assignment
-
- #(3)元组里的列表是可以修改的,只要保证地址不变就行
- # yuanzu3=('hello','100',['1','2','3'])
- # yuanzu3[2][0]='4'
- # print("修改元组里的数组内容:",yuanzu3)
-
- #(4)遍历
- yuanzu4=('1','2','3')
- for i in yuanzu4:
- print(i)
- #字典/json
- #(1)字典的定义
- # info_fact={'name':'herry','age':20,'address':'北京'}
- # print("字典的定义",info_fact)
- #
- # info_dict=dict(name='harry',age='21',address='北京')
- # print("dicr:",info_dict)
-
- #(2)key---访问字典
- # info_fact1={'name':'herry','age':20,'address':'北京'}
- # print("字典的定义",info_fact1['name'])
-
- #(3)字典的方法
- #[1]添加update
- # info_fact2={'st1':'1'}
- # info_fact2.update(st2='2')
- # info_fact2['st3']='3' #通过键添加
- # print("添加:",info_fact2)
-
- #[2]修改update
- # info_fact3={'st1':'1','str2':'2','str3':'3'}
- # info_fact3.update(str2=2.2)
- # info_fact3['str3']='3.3' #通过键添加
- # print("添加:",info_fact3)
-
- #[3]删除
- # pop() 通过键来删除
- # info_fact4={'str1':'1','str2':'2','str3':'3'}
- # info_fact4.pop('str1')
- # print(info_fact4)
- #popitem() 随机删除字典中的元素
- # info_fact5={'str1':'1','str2':'2','str3':'3'}
- # print(info_fact5)
- # info_fact5.popitem()
- # print(info_fact5)
- #clear() 清除字典里的全部元素
- # info_fact6={'str1':'1','str2':'2','str3':'3'}
- # info_fact6.clear()
- # print(info_fact6)
-
- #[4]字典元素的查询
- #1 items()查询字典里所有的元素
- # info_fact7={'str1':'1','str2':'2','str3':'3'}
- # print( info_fact7.items() )
- #2 keys() 查询字典里所有的键
- # info_fact7={'str1':'1','str2':'2','str3':'3'}
- # print( info_fact7.keys() )
- #3 values() 获取字典里所有的元素
- # info_fact7={'str1':'1','str2':'2','str3':'3'}
- # print( info_fact7.values() )
- #4 values()的输出可以用forech输出
- # info_fact7={'str1':'1','str2':'2','str3':'3'}
- # for i in info_fact7.values():
- # print(i)
- #5 get():通过key,获取单个value()
- print(info_fact7.get("str1"))
- [5]自带遍历的判断字典键值是否存在
- info_fact8={'str1':'1','str2':'2','str3':'3'}
- if 'str4' in info_fact8:
- print(info_fact8['str4'])
- else:
- print("键值不存在")
- #[6]利用items和for循环来获取字典的key和value(最好用的遍历)
- for key,value in id_dict.items():
- if key==address:
- print(value)
- #[7]字典与json的区别
- import json
- admin_dict={}
- admin_dict["name"]="root"
- admin_dict["pwd"]="a123123"
- print("字典",admin_dict)
- admin_json=json.dumps(admin_dict)
- print("利用dumps将字典--sjonstr:",admin_json)#json.dumps()用于将dict类型的数据转成str
- admin_loads=json.loads(admin_json)
- print("利用loads将jsonstr---字典:",admin_loads)#json.loads()用于将str类型的数据转成dict。
运行截图:
[7]字典与json的区别
1.2:集合
- #5.3集合
- # set()集合中的元素:可以增删改
- # frozenset()集合中的元素:不可以增删改
- 注意:1集合里只能添加不可变数据类型(数值类型(int、float、bool)、string(字符串)、tuple(元组))
- 2不能添加可变数据类型(list(列表)、dict(字典)、set(集合,不常用))
-
-
- #(1)set()的创建
- # set_one=set( [1,2,3] )#存入数组
- # set_two=set( (1,2,3) )#存入元组
- # set_three={1,2,3}#使用花括号,创建可变的集合
- # print( set_one )
- # print( set_two )
- # print( set_three )
- #frozenset()
- # frozenset_one=frozenset( [1,2,3] )#存入数组
- # frozenset_twe=frozenset( (1,2,3) )#存入元组
- # print( frozenset_one )
- # print( frozenset_twe )
-
- #(2)集合的方法
- #[1]添加
- #add()
- # demo_set=set()#创建一个set集合
- # demo_set.add('py')
- # print(demo_set)
- # demo_set1=set()#创建一个set集合
- # demo_set1.update('thon')
- # print(demo_set1)
- demo_set2=set([1,2])#创建一个列表的set集合(set(里面要是一个可迭代对象))
- demo_set2.add(3)#只能添加不变数据类型,不能添加列表等可变数据类型
- print(demo_set2)#在set(列表和元组)--结果都是集合
- demo_set3=set((1,2,3))#创建一个元组的set集合(set(里面要是一个可迭代对象))
- demo_set3.add(4)#只能添加数字和字母,不能添加元组和列表
- print(demo_set3)#在set(列表和元组)--结果都是集合
-
- #[2]删除
- # #remove() 删除可变集合中,指定的元素
- # #注意:若指定元素不存在,会KeyError报错
- # remove_one={'1','2','3'}#存入数组
- # remove_one.remove('1')
- # print("remove():",remove_one)
- #
- # #discard() 删除指定元素,若指定元素不存在,不执行
- # discard_one={'1','2','3'}
- # discard_one.discard('1')
- # print("discard():",discard_one)
- # discard_twe={'1','2','3'}
- # discard_twe.discard('4')
- # print("discard():",discard_twe)
- #
- # #pop() 用于删除可变集合中的随机元素
- # pop_set={'1','2','3'}
- # pop_set.pop()#随机删除
- # print(pop_set)
- #
- # #clear() 用于删除可变集合set里的全部元素
- # clear_one={'1','2','3'}
- # clear_one.clear()
- # print(clear_one)
-
- #【3】遍历
- set_list={'1','2','3'}
- #集合是无序的
- for item in set_list:
- print(item)
- 【4】集合—列表进行随机去一个值输出
- import secrets#安全机密的随机数
- set_jihe={'1','2','3'}
- set_list=[]
- #集合是无序的
- for item in set_jihe:
- set_list.append(item)
- print(secrets.choice(set_list))#随机输出数组
-
- #(3)集合类型的操作符
- # &交集 |并集 -差集 ^对称
- #交集 &
- set_a={'a','c'}
- set_b={'b','c'}
- print(set_a & set_b )# c
- #并集 |
- set_a={'a','c'}
- set_b={'b','c'}
- print(set_a | set_b )#a,b,c
- #差集 - (谁减谁,谁就缺一角)
- set_a={'a','c'}
- set_b={'b','c'}
- print(set_a - set_b )# a
- #对称 ^ (获取只属于set_a和set_b集合里的元素)
- set_a={'a','c'}
- set_b={'b','c'}
- print(set_a ^ set_b )# a,b
第7章:类与面向对象------第9章:错误与异常的笔记在
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。