集美大学 计算机 郑如滨

教学博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

自建课程与资源

《Python程序设计与应用》课程使用说明
Python不完全入门指南

一.专题

1.绘图

如何开始使用Python来画图
Python画图总结

2.科学计算与数据分析

图解NumPy | Numpy入门教程
你们要的Pandas教程,终于出炉啦

3.可视化

seaborn教程-by zhrb

4.网络爬虫

5. 做笔记

Python-Jupyter Notebook使用技巧

二. 常见问题

1. 介绍

Python能做些什么
Python安装常见问题

2.技术

Python 3.3.2 round函数并非"四舍五入"
Unicode 和 UTF-8 有何区别?,针对汉字到底占几个字节的问题。结论:UTF-8中英文占1个字节,常用汉字占3个字节,少数汉字占4个字节。
怎么调用另外一个.py文件中的定义的函数或者代码?

有什么好文章可在评论中补充

三.教学

PTA中提交Python3程序的一些套路
Python3中字符串格式化format
Python注释规范
Python:操作dict时避免出现KeyError的几种方法
如何排序,Sorting Mini-HOW TO

Python中的取整、求余操作,包含负数怎么处理?

取整

7 // 3 == 2
-7 // -3 == 2
-7 // 3 == -3
7 // -3 == -3
-3 // 26 == -1
26 // -3 == -9

取整规律?根据Python官方文档,a//b取整的规则为math.floor(a/b)。即,先用a除以b,然后向下取整。

求余

7 % 3    == 1
-7 % -3  == -1
-7 % 3   == 2
7 % -3   == -2

求余规律:余数应与除数(分母)同号。即,a%b求余的规则为a - math.floor(a/b)*b
求余验证:

import math
def test(a,b):
    print(a - math.floor(a/b)*b)

test(7,3) == 1
test(-7,-3) == -1
test(-7,3) == 2
test(7,-3) == -2
test(-3,7) == 4
test(3,-7) == -4

怎么在Python的列表中删除指定元素

  1. 从后往前扫
    原地删除,最佳解决方案。
  2. 使用filter与map
    新建了列表,空间复杂度O(n)
    In [21]: x
    Out[21]: [10, 10, 10, 20, 20, 20, 10, 10, 20]
    In [22]: y = list(filter(lambda x:x!=10,x))
    In [23]: y
    Out[23]: [20, 20, 20, 20]
    
  3. 使用列表推导式
    新建了列表,空间复杂度O(n)
    In [36]: x = [10, 10, 10, 20, 20, 20, 10, 10, 20]
    In [37]: z = [e for e in x if e!=10]
    
  4. 使用while删除
    时间复杂度O(n^2)
    x =  [10, 10, 10, 20, 20, 20, 10, 10, 20]
    while 10 in x:
        x.remove(10)
    print(x)
    

统计一段代码运行的时间

import datetime
def foo():#待测试函数
    #函数代码
  
def calcTime(cmd):
    begin = datetime.datetime.now()
    eval(cmd)
    end = datetime.datetime.now()
    print(end-begin)

calcTime("foo()")

四. 其他

Python挑战-一系列关于编程与Python的小问题
编程原来是这样-Python教程
Win下必备神器之Cmder
Python3英文文档
Python3.75中文文档
在Windows下使用Python编程
Why is the order in dictionaries and sets arbitrary?

posted on 2017-10-13 11:10  zhrb  阅读(476)  评论(0编辑  收藏  举报