Table of Contents |
- 参考 - 快速输入 ????- 输入字符串 ????- 输入整数 ????- 输入小数 ????- 创建空对象 ????- Attention ????????- OJ Python的答题结果:"返回非零" ????????- Python中没有 i++ 或者 i-- - 数据类型 ????- bool ????- 整型 ????- 浮点型 ????- 除法 ????- 查看类与类的关系:type()函数和isinstance()函数 - 基本数据结构 ????- 字符串str ????????- 编码与字符的转换 ????????- 查看当前python(py文件)使用的字符编码 ????- ????- 列表list ????????- 预分配与初始化 ????????- 增删查改 ????????- (一维)列表的反转 ????????- 列表的排序 ????????- 列表list与字符串str的转换 ????- 元组tuple ????- 字典dict ????????- 预分配与初始化 ????????- 增删查改 ????????- 视图 ????- 集合set ????????- 预分配与初始化 ????????- 增删查改 ????????- 集合的运算 - 运算和控制结构 ????- 运算符 ????????- bool() 函数的特殊用法 ????????- 比较运算符的连用 ????????- [表达式1, 表达式2][表达式3] ????- if ????- while循环 ????????- while 循环可使用 else 语句 ????- 推导式/解析式 ????????- 列表推导式 ????????- 字典推导式 ?? |
Python 3教程 | |
runoob PDF下载地址 | https://github.com/gagayuan/runoob-PDF-/tree/master/runoob/%E6%9C%8D%E5%8A%A1%E7%AB%AF |
? ?
input()函数接受整行字符串,并返回所得字符串。 | ||||||
str.split():字符串分割函数 通过指定分隔符对字符串进行切片,并返回分割后的字符串列表。 ? ? 语法: str.split(sep = None, maxsplit = -1)[n] ? ? 参数说明:
|
? ?
输入整行字符串 | s = input(‘prompt‘) | ||
以空格分割字符串 |
| ||
以"/"分割字符串 |
|
? ?
? ?
map() 函数:根据提供的函数对指定序列做映射。 ? ? map(function, iterable, ...) 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
? demo:
|
? ?
输入一个整数 | 用int()函数将input()所得字符串转换为整数 a = int(input()) |
在一行中输入多个以空格分开的整数到指定变量 | 先用split()函数将input()所得字符串按空格分割,得到子串列表。 然后用int()函数将子串转换为整数。 最后用map()函数返回相应的迭代器以赋值。 n, p = map(int, input().split()) |
在一行中输入多个以","分开的整数到指定变量 | n, p = eval(input()) |
将一行中的整数输入到列表中 | 用list()函数将map()所得的迭代器转换为列表 ar = list(map(int, input().split())) |
? ?
? ?
string.atof()函数 |
? ?
输入一个小数 |
| |
输入一行小数,存在列表中 |
|
? ?
python中的所有类型(包括整数和浮点数)均会装箱,故可创建相应类型的空对象,值为默认值。
数字型的类会返回0,其他类型的返回空。
整数 | |
浮点数 | |
高精度decimal | |
分数fractions | |
字符串 | |
列表list | |
元组tuple | |
字典dict |
? ?
如果是python2提交,就要用raw_input();
如果是python3提交,就要用input()。
? ?
Python规定,数值对象是不可改变的。 因此,Python中没有自增和自减。 i = i + 1 相当于重新创建了一个变量 i ,而不是改变了 i 中的数值。 可如下代替自增自减: i = i + 1 或者 i += 1 |
? ?
? ?
? ?
真 | True |
假 | False |
PS:Python中的布尔值首字母大写
? ?
bool()?函数:将参数转换为布尔类型。如果没有参数,则返回?False。 bool?是?int?的子类。 |
class bool([x]) # x?--?要进行转换的参数。? # 返回?True?或?False。 |
? ?
? ?
? ?
positive_inf = float("inf") # ?正无穷 negative_inf = float("-inf") # ?负无穷 not_number = float("nan") # ?非数 |
? ?
python查看float的最值 |
import sys float_max = sys.float_info.max float_min = sys.float_info.min print(str(float_max) + " " + str(float_min)) |
float的最大值:1.7976931348623157e+308 大于0时float的最小值:2.2250738585072014e-308 小于0时float的最大值:-2.2250738585072014e-308 float的最小值:-1.7976931348623157e+308 |
? ?
? ?
默认是小数除法 | |
地板除 | |
四舍五入 | round( x [, n] ) 保留n位小数(四舍五入,浮点数可能会受计算机表示的精度影响从而影响四舍五入)。 默认保留整数。 |
? ?
? ?
参考 | |||
type() | 如果只有第一个参数则返回对象的类型,三个参数返回新的类型对象。
|
? ?
? ?
? ?
?? |
? ?
import sys sys.getdefaultencoding() |
? ?
string模块提供了许多常用功能,如
string.digits | 数字 |
string.ascii_lowercase | 小写字母 |
string.ascii_uppercase | 大写字母 |
? ?
? ?
? ?
创建空列表 |
| ||||
预分配长度为n的空列表 |
| ||||
可迭代对象转换为列表 |
? ? demo 用可迭代的初值初始化列表:
? ? demo 用列表推导式剔除不需要的数据,以初始化列表:
|
? ?
增 |
? ?
| |||||||
删 |
| |||||||
查 |
| |||||||
改 | list1[下标] list1[切片] list1[-1] # list1的最后一个元素
|
? ?
(一维)列表的反转
|
? ?
列表的排序 | ||||||
? ? demo 2:
|
? ?
| ||||||
|
? ?
? ?
tuple不可修改其中的元素,而list可以,其余操作与list相同。
tuple( iterable ) |
iterable -- 要转换为元组的可迭代序列 |
? ?
当创建只有一个元素的元组时,tuple1 = (1)会被视为整型而非元组。
解决方法:加一个逗号
tuple1 = (1, ) |
? ?
? ?
创建空字典 |
| |||
逐对键值对初始化字典 |
| |||
(序列,默认值)初始化字典 | dict.fromkeys(seq[, val]) 返回一个新字典,以序列 seq 中的元素作为字典的键,val 为字典所有键值对应的初始值 | |||
(序列,序列)初始化字典 |
| |||
合并字典 |
|
? ?
增 |
| |||||||
删 |
| |||||||
查 |
| |||||||
改 | dict1[value1] |
? ?
对dict本身的修改会影响到"视图"
dict.keys() | key |
dict.values() | value |
dict.items() | key-value |
? ?
demo 使用"视图"访问dict中的key-value:
lang_dict = {1: ‘C++‘, 2: ‘Java‘, 3: ‘Python‘} for idx, val in lang_dict.items(): print(str(idx), val) |
输出: 1 C++ 2 Java 3 Python |
? ?
? ?
demo:
# 用dict.update()方法更新字典 import string ???????????????? ? dicts = dict.fromkeys(string.digits, False) dicts.update(dict.fromkeys(string.ascii_lowercase, False)) dicts[‘_‘] = False |
或者
# 用{**, **}的形式合并字典 import string ???????????????? ? dict_digits = dict.fromkeys(string.digits, False) dict_alphabet = dict.fromkeys(string.ascii_lowercase, False) dicts={**dict_digits, **dict_alphabet} dicts[‘_‘] = False |
? ?
x = int(input("Enter the 1st number: ")) y = int(input("Enter the 2nd number: ")) ? ? def operator(o): dict_oper ={ ‘+‘: lambda x, y: x + y, ‘-‘: lambda x, y: x - y, ‘*‘: lambda x, y: x * y, ‘/‘: lambda x, y: x / y } return dict_oper.get(o)(x, y) ? ? if __name__ == ‘__main__‘: o = input("Enter operation here(+ - * /): ") print(operator(o)) |
? ?
? ?
set中的对象不变且可哈希 |
frozenset(冻结的集合),不可增删元素 |
? ?
创建空集合 | set1 = set() | ||
由序列seq初始化集合 |
|
? ?
增 |
|
删 |
|
查 | ?? |
改 | ?? |
? ?
判断是否没有公共元素 |
| |||
判断子集 |
| |||
判断超集 |
| |||
并集 |
| |||
交集 |
| |||
差集 |
| |||
对称差 |
|
? ?
demo 求两个字典的相同的键值(即求键值的交集):
d1_keys = set(d1.keys()) d2_keys = set(d2.keys()) set1 = d1_keys.intersection(d2_keys) |
? ?
? ?
? ?
False None 0 "" () [] {} | False |
Python中,False、None、0和空的数据结构经bool() 函数转换后均为False。
非零非空的数据结构经bool() 函数转换后为True。
? ?
记比较运算符为 op,
若 a op1 b op2 c,
则 (a op1 b) and (b op2 c)
? ?
若表达式3为True,则执行表达式2;
若表达式3为False,则执行表达式1。
相当于C++中的三元运算符 ? : 。
[False, True][4 > 3] |
>>> True |
要在列表表达式后加 () 表示函数。
def false(): print("判断错误") ? ? ? ? def true(): print("判断正确") ? ? ? ? [false, true][1 > 9]() |
>>> ‘判断错误‘ |
? ?
if <expr>: <statement(s)> elif <expr>: ????????<statement(s)> else: ????????<statement(s)> |
? ?
while … else 在条件语句为 false 时执行 else 的语句块。
while <expr>: ????<statement(s)> else: ????<additional_statement(s)> |
? ?
? ?
enumerate(sequence, [start = 0]) |
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列, |
|
? ?
demo 产生10个100以内的随机数:
from random import randint list1 = [randint(1, 100) for i in range(10)] |
? ?
demo 为列表中的元素标号,存入字典中:
lang_list = ["C++", "Java", "Python"] lang_dict = {idx: lang for idx, lang in enumerate(lang_list, 1)} # 值:{1: ‘C++‘, 2: ‘Java‘, 3: ‘Python‘} |
? ?
demo 计算两个列表对应元素之和:
原数据 | a = [1,2,3,4] b = [9,8,7,6] |
列表推导式 | c = [a[i] + b[i] for i in range(len(a))] |
map() 函数 | c = list(map(lambda x, y: x + y, a, b)) |
? ?
demo 统计列表元素出现的次数,结果存入字典中:
原数据 | lang_list = ["C++", "Java", "Python", "C++"] |
使用 dict.get() | lang_dict = {} for item in lang_list: lang_dict[item] = lang_dict.get(item, 0) + 1 |
字典推导式 | lang_dict = {elem: lang_list.count(elem) for elem in set(lang_list)} |
结果 | {‘C++‘: 2, ‘Python‘: 1, ‘Java‘: 1} |
? ?
原文:https://www.cnblogs.com/audacious/p/12393367.html