简单的总结下:
打印
print(“ ”)
print(f"hello {message}!") f是formate的简写
变量
变量不用声明类型, self.变量,可以声明全局变量
变量的命名约定为小写,下划线命名。常量约定为全大写
数据类型有:1.字符串 “ “ 或者 ‘ ’
2.整数 浮点数
3.列表 numbers = []
4.元组 numbers=() 元组是不可修改的,其他和列表一样
5.字典 maps={}
6.类 class
字符串常用的方法:
name.title() 已空格隔开的单词的一个字母大写,其他字母小写
name.upper() name.lower()
name.strip() name.lstrip() name.rstrip() 删除空格
整数
运算符 加减乘除 ±*/ 取余% 乘方**
注意:这个除/ 结果是浮点数
数中的下划线只是辅助,Python会忽略
同时给多个变量赋值 x,y,z = 1,2,3
注释
行注释 # 大段注释 “”" “”"
方法,类下面,用大段注释
列表
列表里可以存任何类型,列表长度可以任意长,数据量任意大
访问列表 numbers[0]
修改列表 numbers[0] = 1
添加元素 尾部添加 numbers.append(1) 在任何位置插入元素 numbers.insert(0,‘a’)
删除元素 del numbers[0] 弹出 numbers.pop() 弹出列表尾部的一个值,并且返回值 numbers.pop(index) 弹出任意位置的元素
根据值删除元素 numbers.remove(value) , 只删除查到的一个值
组织列表
排序
numbers.sort() 永久地修改列表的顺序,numbers.sort(reverse=True) 反向排序
numbers2 = sorted(list) 临时排序,numbers顺序不变
反转列表排列顺序,永久性的。numbers.reverse()
列表长度 len(numbers)
操作列表
for value in numbers:
Python没有大括号,所以要注意缩进
创建数值列表
for value in range(1,6):
print(value)
不包括6,所以生成的是1,2,3,4,5
numbers = list(range(1,11,2))
2是步长
简单的统计计算
min(numbers) max(numbers) sum(numbers)
列表解析
生成列表的一种写法:
squares = [values**2 for value in range(1,11)]
values**2 是表达式,for 循环为表达式提供值
列表的切片
numbers[0,3] 将返回index为0,1,2的值的列表
numbers[:3] 从开头开始算 numbers[0:] 到结尾。 numbers[0:-1] 就是倒数第一个
numbers[:] 全部
numbers[0:11:2] 第三个参数是步长,如果步长是负数,则把切片结果反过来
numbers[::-1] 其实就是把当前列表反过来的写法
更多介绍
复制列表 numbers2 = numbers[:]
条件语句
没什么好说的
if 1==1:
print()
elif 1==1:
print()
else:
print()
字典
类似于java的map,由key value 对组成。但是类型不限制
dictionary:{'key':'value','key1':'value2'}
取值 dictionary[‘key’]
添加键值对dictionary[‘key3’] = ‘value3’
删除键值对del dictionary[‘key1’]
取值可用 dictionary[‘key’]
也可用 dictionary.get(‘key’,‘default’),当key不存在时,不报错,取回一个默认值。如果默认值没有指定,返回None,表示什么也没有
遍历字典
for key,value in dictionary.items():
dictionary.keys() 返回所有键 dictionary.values() 返回所有值
可以用集合剔除重复 set(numeber)
用户输入 message = input(“Please input:”)
input()返回的是字符串,可以用int(string)来转成数字
while循环
while numbers:
注意这里numbers列表为空时,返回False
break continue 不必说
函数,在类里叫方法
def func_name(name):
print(name)
实参,形参
实参的顺序很重要,要么按形参的顺序放实参,要么指定实参对应的形参
def func(name1, name 2,name3 = ‘c')
print()
func(name1='a', name2='b')
形参如果指定了默认值,要放最后。
返回值
函数上不需声明返回值,直接在方法里return就好了
函数里对形参修改,对实参的影响,和java一样。python的字符串,整数,浮点数,就像java里的基本数据类型一样。
传递任意数量的实参
def func_name(a, *b)
b就是任意数量实参,放进去就相当于一个列表,位置必须放后面
在其他模块中使用函数
import module_name as m_name m_name.func_name()
或者
from module_name import func_name as func func()
as 指定别名
from module import * # 不推荐使用
类
class ClassName(SuperClass):
def __init__(self, name2):
super().__init__() # 调用父类的初始化方法
self.name = name2
print(self.name)
def func(self)
print(self.name)
约定的命名规则,类用驼峰命名,函数用下划线命名
SuperClass 时它继承的类,没有继承类的,可以不写(SuperClass)
__init___是初始化方法,self是指当前这个类,需要在函数声明时传入,在函数里调用,类似于java的this, self.name 定义全局变量
创建对象 classname = ClassName(‘a’)
要重写父类方法,直接方法名参数一样就好了
导入类,和导入函数一样
Python的一个标准库
from random import randint
文件
with open('path/filename','r') as f:
contents = f.read()
’r‘读,'w’写,’a‘附加,’r+‘读写,不传参数,默认时读模式。'w’模式会覆盖原来的文件内容,如果不想覆盖,可用’a’追加
异常
try: except ZeroDivisionError: else:
储存数据,可以用标准库里的json
import json
with open(filename, 'w') as f:
json.dump(numbers, f)
dump 保存数据 json.load() 加载数据
测试代码
单元测试:测试函数某个方面没有问题
测试用例:多个单元测试,验证函数在各种情况下都没有问题
import unittest
from name_function import get_formatted_name
class NamesTestCase(unittest.TestCase):
"""测试name_function.py。"""
def test_first_last_name(self):
"""能够正确地处理像Janis Joplin这样的姓名吗?"""
formatted_name = get_formatted_name('janis', 'joplin')
self.assertEqual(formatted_name, 'Janis Joplin')
if __name__ == '__main__':
unittest.main()
unittest会运行所有以test_开头函数
后面分别介绍了几个python库
pygame做2D游戏,Matplotlib,Plotly做数据可视化,requests 调用web API
至于后面的web,用java就好了,不看了。



