pycharm 是基于Python的第三方开发工具,其处理效果更加优良

P001_add_two_number

Print(f””,)

P002_number_jiecheng

定义def函数(返回值return)

Print(“你想显示出来的话”,)

P003__area_of_circle

Math模块——math.pi

Round函数(计算式,保留小数的位数)

P004_print_primes 打印素数列表

Range函数(a,b)——返回a,b-1的范围列表

Range不包含结尾数字

冒号+return:相当于C语言中{ }的作用

从结果一步步向前倒退,从解决问题的角度出发,层层递进

True不能是true

P006_sum_of_list

List本身是Python中的一个变量类型

编程错误:

If、for在C语言中都有{ },但是在Python中,:和空格是编译的标准

P007_get_even_numbers

Append   v.附加

result.append(item)

item表示元素

列表推导式

[item for item in range() if]

[item元素+for循环+条件]

data = [item for item in range(begin,end) if item % 2 == 0]
#列表推导式  形式:列表元素+for循环+判断
print(f"begin ={begin},end ={end},even numbers:", data )

p009_get_unique_list

好神奇,不能输入01,但1就可以

set是集合的数据类型,而list是矩阵、列表的数据类型,两者的区别

因为set是集合的数据类型,所以可以用来去重,即达到我们的get_unique_list 函数的功能

p010对简单列表元素排序

concept:

1、简单列表  :item不为列表、元组、字典

2、原地排序、改变排序后生成一个新的list

3、如何piont升序or降序

我的一些想法:

lista = [20,40,30,50,10]
listb = lista.sort()
print(f"lista is {listb}")

得到结果:

lista = [20,40,30,50,10]
#lista.sort()
listb = sorted(lista)
#listb是升序排列,即我们的reverse默认=False
listc = sorted(lista, reverse=True)#sorted是Python中自带的函数,会在保存原有list的基础上,创造一个新的list
print(f"lista is {lista}")
print(f"listb is {listb}")
print(f"listc is {listc}")

p011_sort_students_list

关键点:key的参数:传了一个函数进来

哈哈哈,按名字排序,不知道他是怎么排的


students = [{"sno":101, "sname":"小张", "sgrade":88},{"sno":102, "sname":"小马", "sgrade":99},{"sno":103, "sname":"小宋", "sgrade":80},{"sno":104, "sname":"小红", "sgrade":100},]students_sort = sorted(students,key=lambda x: x["sname"],reverse=True)
#key是指定怎样比较两两之间的元素,因为我们的list students不是数字or字符串列表#print(f"sort {students},sort result: {students_sort} ")
print(f"sort {students}")
print(f"sort result: {students_sort} ")#也可以这样打印
print(students)
print(students_sort)

主动学习与Input

绝对路径和相对路径

1、绝对路径就是文件的真正存在的路径,是指从硬盘的根目录(盘符)开始,进行一级级目录指向文件。
2、相对路径就是以当前文件为基准进行一级级目录指向被引用的资源文件。
3、以下是常用的表示当前目录和当前目录的父级目录的标识符
…/ 表示当前文件所在的目录的上一级目录
./ 表示当前文件所在的目录(可以省略)
/ 表示当前站点的根目录(域名映射的硬盘目录)
————————————————
版权声明:本文为CSDN博主「镹黎同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40913890/article/details/106993433

亲身实践才能发现错误多多:

啊啊啊,我是刚刚还在摆烂之焦头烂额,然后胡乱实验,居然真的试出来了,我真的很激动。

这是文本的内容,我发现我的粗心大意的错误,Sname与sgrade之间的逗号是中文字符的逗号,而snumber与sname之间的逗号是英文逗号导致下图结果

103,小例,99
104,小求,55
105,小哈,66
106,小被,22

我们读取到的复杂结构的list是识别的是英文逗号,毕竟他的发明者是外国人,哈哈哈

常用编码之间的关系如下:

·GBK
全称为 Chinese Internal Code Specification,即汉字内码扩展规范,于 1995 年制定。它主要是扩展了 GB2312,在它的基础上又加了更多的汉字,它一共收录了 21003 个汉字


def read_file():result = []with open(r"student_grade_input.txt",encoding="utf-8") as fin:for line in fin:line = line[:-1]#去掉每行末尾的换行符,而除去换行符的其他都复制给lineresult.append(line.split(","))return resultdef sort_grades(datas):return sorted(datas,key=lambda x : int(x[2]),reverse = True)def write_file(datas):with open("./student_grade_output.txt","w") as fout:       #"w"代表写出for data in datas:fout.write(",".join(data) + "\n")#读取文件
datas = read_file()
print("read_file datas:", datas)
#排序数据
#我们现在读取的sgrade是字符串的形式,我们先要将其转为数字
datas = sort_grades(datas)#把读取的文件datas传进去,返回一个排序后的数据
print("sort_grades datas:", datas)#写出文件
write_file(datas)#不需要返回值

p013_compye_max_min_avg

啊啊啊,老眼昏花的我,score一直打错,程序调了老半天,但是过程还是很有趣,解决了问题所以更加有趣了


def compute_score():scores = []with open(r"student_grade_input.txt",encoding="utf-8") as fin:for line in fin:line = line[:-1]fields = line.split(",")scores.append(int(fields[-1]))max_score = max(scores)    #max()min()都是python中现成的函数min_score = min(scores)mean_score = round(sum(scores) / len(scores), 2)return max_score, min_score, mean_scoremax_score, min_score, mean_score = compute_score()
print(f"max_score={max_score}, min_socre={min_score}, mean_score={mean_score}")

p014_count_word_in_article

1.对文章中单词个数进行计数

2.得到文章中出现次数最多的单词

重点:欺骗语法

word_count = {}    #建立一个字典
with open(r"p014_article.txt") as fin:for line in fin:line = line[:-1]words = line.split()for word in words:if word not in word_count:word_count[word] = 0word_count[word]  += 1print(sorted(word_count.items(),key = lambda x: x[1],    #比较的是出现的次数reverse = True)[:10]     #我只想看排序次数多的前十个元素——欺骗语法
)

我想用此方法统计新闻中出现的字数,不可行

p015_size_of_file

关键词:os.path.getsize      os.listdir        os.path.isfile

import os
print(os.path.getsize("student_grade_input.txt"))    #getsize默认返回的是字节
#os.path.getsize可以得到文件的大小#计算出此文件下所有目录的大小
#step1 列出文件夹下所有文件sum_size = 0  #初始化变量=0for file in os.listdir("."):#os.listdir 可以列出目录下所有文件,但是返回的可能也有目录if os.path.isfile(file):   #isfile 函数判断此文件是一个普通文件还是目录,我们的venv就是目录#os.path.isfilesum_size += os.path.getsize(file)   #将其sum的结果传入fileprint("all size of dir:",sum_size / 1000,"KB")

p016_arrange_file_by_ext

关键词:os    shutil

os.listdir 列出文件   os.path.splitext()
os.mkdir   
shutil.move

一、os模块概述

Python os模块包含普遍的操作系统功能。

二、os模块的作用

可以处理文件和目录这些我们日常手动需要做的操作。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。

三、什么是shutil

shutil可以简单地理解为sh + util,shell工具的意思。shutil模块是对os模块的补充,主要针对文件的拷贝、删除、移动、压缩和解压操作。


import os
import shutil  #sh+util shell工具模块dir = "./arrange"for file in os.listdir(dir):   #os.listdir 列出文件——列出当前目录下的文件ext = os.path.splitext(file)[1]  #os.path.splitext()返回的是一个元组,可以得到文件后缀#ext 表示后缀名ext = ext[1:]   #去掉点号.if not os.path.isdir(f"{dir}/{ext}"):os.mkdir( f"{dir}/{ext}")   #创建目录source_path = f"{dir}/{file}"  #需要自己拼接一下目录target_path = f"{dir}/{ext}/{file}"shutil.move(source_path,target_path)

p017_search_of_dict

关键词:

os.walk递归搜索目录
#可以用来清理磁盘的文件import ossearch_dir = "D:/plc实训设计"result_files = []for roots, dirs, files in os.walk(search_dir):    #os.walk递归搜索目录# root 代表当前目录# dirs 代表当前目录下的子目录# files 代表当前目录下普通文件for file in files:if file.endswith(".txt"):file_path = f"{root}/{file}"  #绝对路径result_files.append((file_path,os.path.getsize(file_path) / 1000))print(sorted(result_files,key=lambda x : x[1],reverse=True)[:10]         #降序排列
)

 p018_course_grade_maxminavg

数据结构——字典{}

Python中常见的数据结构可以统称为容器。

序列(如列表list[]和元组)、映射(如字典{})以及集合(set)是三类主要的容器。

一、序列(列表、元组和字符串),序列中的每个元素都有自己的编号。Python中有6种内建的序列。其中列表和元组是最常见的类型。其他包括字符串、Unicode字符串、buffer对象和xrange对象。
二、映射(字典),映射中的每个元素都有一个名字,如你所知,这个名字专业的名称叫键。字典(也叫散列表)是Python中唯一内建的映射类型。
字典的键可以是数字、字符串或者是元组,键必须唯一。在Python中,数字、字符串和元组都被设计成不可变类型,而常见的列表以及集合(set)都是可变的,所以列表和集合不能作为字典的键。
三、集合,集合(Set)在Python 2.3引入,通常使用较新版Python可直接创建,如下所示:
strs=set(['jeff','wong','cnblogs'])
nums=set(range(10))

且set具有不重复性

Python自带的数据结构可分为可变和不可变的。
可变的有:数组、集合、字典;
不可变的有:字符串、元组、数。


#借助数字结构——字典来解决
course_grades = {}
# key: course, value: grade list
course_grades = {}#读取文件
with open(r"course_student_grade_input.txt",encoding="utf-8") as fin:for line in fin:line=line[:-1]course, sno, sname, sgrade = line.split(",")#fields可以拆成单个变量if course not in course_grades:course_grades[course] = []course_grades[course].append(int(sgrade))
#fields得到的是一个元组,我们要先将sgrade的字符串类型的变量transfer数字类型#scores.append(int(fields x[2]))#现在我们得到的scores是数字类型的sgrade列表list
print(course_grades)

with open(r"course_student_grade_input.txt",encoding="utf-8") as fin:for line in fin:line=line[:-1]course, sno, sname, sgrade = line.split(",")#fields可以拆成单个变量if course not in course_grades:course_grades[course] = []course_grades[course].append(int(sgrade))

关于对比两个输出结果,可清楚得知并且理解Python中的《空格编译原则》

现在我们一个字典{}三个键

以这样的一个键为例,解读:

‘语文’是一个字符串,好像

会自动加上“  :”,    [88, 23, 45, 78, 67, 75]是一个元组

pycharm100例相关推荐

  1. 一个小兔子的大数据见解2

    Big Data 阿里的大数据解决方案 MAXCOMPUTE DATAWORKS QUICKBI 1.Vmware增强 2. 1.1.VMware 虚拟网络设备 1.1.1.虚拟网卡.虚拟交换机 虚拟 ...

  2. 《Java150道面试题全集》

    本文转载他人,自留作笔记用,请尊重原创作者. 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两 ...

  3. YOLOv4 资源环境配置和测试样例效果

    YOLOv4 资源环境配置和测试样例效果 基本环境:cuda=10.0,cudnn>=7.0, opencv>=2.4 一.下载yolov4 git clone https://githu ...

  4. 2021年大数据常用语言Scala(三十二):scala高级用法 样例类

    目录 样例类 定义样例类 样例类方法 样例对象 样例类 样例类是一种特殊类,它可以用来快速定义一个用于保存数据的类(类似于Java POJO类),而且它会自动生成apply方法,允许我们快速地创建样例 ...

  5. 2021年大数据常用语言Scala(二十九):scala面向对象 单例对象

    目录 单例对象 定义object - 掌握 伴生对象 - 掌握 apply方法 - 掌握 main方法 单例对象 Scala中没有static关键字,但是它支持静态 如果要定义静态的东西,统统定义到o ...

  6. Android/Java 单例使用总结

    学而时习之,温故而知新. 什么是单例? 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例 单例模式特点 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3. ...

  7. 在Ubuntu下构建Bullet以及执行Bullet的样例程序

    在Ubuntu下构建Bullet以及执行Bullet的样例程序 1.找到Bullet的下载页,地址是:https://code.google.com/p/bullet/downloads/list 2 ...

  8. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  9. java字节对齐 32 64_【C语言】字节对齐问题(以32位系统为例)

    1. 什么是对齐? 现代计算机中内存空间都是按照字节(byte)划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型 ...

最新文章

  1. 02HTML标签(上)
  2. Redis的常用命令——hash的常用命令
  3. boost::mp11::mp_transform_third相关用法的测试程序
  4. RabbitMQ使用guest登录报错:User can only log in via localhost
  5. mysql_num_fielfs_mysql_num_fields
  6. Java学习笔记10(面向对象三:接口)
  7. 批处理定时执行任务_[Abaqus tips ] 分析任务的定时执行
  8. 宽字节UTF-8、多字节互转
  9. js Math对象属性和方法
  10. 重新安装Linux自带的JDK
  11. android viewflipper 动画,Android自定义ViewFlipper实现滚动效果
  12. (三)云计算技术学习--OpenStack之KeyStone
  13. android rxbus github,RxBus for Android
  14. 二级域名原理以及程序代码
  15. MarkDown学习随笔
  16. Thinkpad T420 安装 mSATA SSD 固态硬盘
  17. 翻译HoudiniEngine官方文档:PDG
  18. 程序员童鞋们,眼睛疲劳了有没有,缓解下有没有,一起来做吧
  19. 前端js和python后端的结合
  20. php中注册数字插不进去,进php数字

热门文章

  1. hbase数据库连接池 未设置最大链接数导致数据库操作异常频发
  2. 铁通用户,宽带测速很快,可是上网很慢的解决办法
  3. C#接入PLC(FX2N(C))全过程(二)
  4. python暴力破解wifi密码原理
  5. 11月最新编程排行榜出炉,这个语言超过了C蝉联榜首~
  6. java 栈和队列实现迷宫代码_算法图解:如何用两个栈实现一个队列?
  7. 快速获取颜色的RGB或十六进制码(取色技巧)
  8. 常用的遥感植被指数介绍
  9. day017:Java进制转换、原码反码补码、位运算、位移运算符
  10. jenkins扫码安装iOS ipa包实现关键技术点