Python基础

输入输出 I/O

输入

>>> name = input("input your name:")
input your name:focksor
>>> name
'focksor'

输出

>>> variables_int = 1
>>> variables_str = "str"
>>> print("output:", variables_str, "v=%s" % variables_int)
output: str v=1

print中可以以,分隔,传入多个参数,这些参数要可以强制转换为str类型,这些参数在输出时会自动在中间插入一个空格。

不管是什么类型,%s就完事了

内建数据类型

整数

进制表示

整数在不同进制下的表示:

二进制0b100,八进制0o100,十进制100,十六进制0x100

>>> 0b100
4
>>> 0o100
64
>>> 100
100
>>> 0x100
256

进制转换

转二进制:

>>> bin(100)
'0b1100100'
>>> bin(0o100)
'0b1000000'
>>> bin(0x100)
'0b100000000'

转八进制:

>>> oct(0b100)
'0o4'
>>> oct(100)
'0o144'
>>> oct(0x100)
'0o400'

转十进制:

>>> int("100", 2)
4
>>> int("100", 8)
64
>>> int("100", 16)
256
>>> int("100", 66)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: int() base must be >= 2 and <= 36, or 0
    
>>> int(0b100)
4
>>> int(0o100)
64
>>> int(0x100)
256

转十六进制:

>>> hex(0b100)
'0x4'
>>> hex(0o100)
'0x40'
>>> hex(100)
'0x64'

浮点数

>>> 123.456789
123.456789
>>> 123.456789e6 # 科学计数法
123456789.0

布尔型

>>> True and False # 与
False
>>> True or False # 或
True
>>> not False # 否
True
>>> not True or True and False # 优先级
False

andornot的优先级:or < and < not,同一优先级从左往右计算。

not True or True and False运算过程:

-> False or True and False

-> False or False

-> False

字符串

>>> "hello world!"
'hello world!'

字符串拼接

>>> "hello %s!"%"god_fish"
'hello god_fish!'
>>> "{0} and {1} are {2}.".format("XiaoMing", "XiaoHong", "friends")
'XiaoMing and XiaoHong are friends.'

编码转换

单字符转换:

>>> ord("中")
20013
>>> ord("A")
65
>>> chr(20013)
'中'
>>> chr(65)
'A'

字符串转换:

>>> "中文".encode("utf8")
b'xe4xb8xadxe6x96x87'
>>> b'xe4xb8xadxe6x96x87'.decode("utf8")
'中文'
>>> "ABC".encode("utf8")
b'ABC'
>>> b'ABC'.decode("utf8")
'ABC'
>>> b'ABC'.decode("ascii")
'ABC'

列表/list

下标索引:

>>> l = ['a', 'b', 'c', 1, 2, False]
>>> l
['a', 'b', 'c', 1, 2, False]
>>> l[0]
'a'
>>> l[1]
'b'
>>> l[-1]
False

追加元素:

>>> l
['a', 'b', 'c', 1, 2, False]
>>> l.append(True)
>>> l
['a', 'b', 'c', 1, 2, False, True]

插入元素:

>>> l
['a', 'b', 'c', 1, 2, False, True]
>>> l.insert(3, 'd')
>>> l
['a', 'b', 'c', 'd', 1, 2, False, True]

推出元素:

>>> l
['a', 'b', 'c', 'd', 1, 2, False, True]
>>> l.pop(3)
'd'
>>> l
['a', 'b', 'c', 1, 2, False, True]

列表中的各个元素类型可以不一样。

列表切片

l = list(range(10))

print("原始列表:")
print(l)

print("取列表的[start, 3)部分, 即l[0],l[1],l[2],不包括l[3]")
print(l[:3])

print("取列表的[5, end]部分")
print(l[5:])

print("取列表的[3,5)部分")
print(l[3:5])

print("取列表的[-3, end]部分,这里的索引-3是指倒数第三个")
print(l[-3:])

print("取列表的[start, -3)部分")
print(l[:-3])

print("取列表的[3,8)部分,每两位取一次")
print(l[3:8:2])

print("取整个列表,每两位取一次")
print(l[::2])

原始列表:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
取列表的[start, 3)部分, 即l[0],l[1],l[2],不包括l[3]
[0, 1, 2]
取列表的[5, end]部分
[5, 6, 7, 8, 9]
取列表的[3,5)部分
[3, 4]
取列表的[-3, end]部分,这里的索引-3是指倒数第三个
[7, 8, 9]
取列表的[start, -3)部分
[0, 1, 2, 3, 4, 5, 6]
取列表的[3,8)部分,每两位取一次
[3, 5, 7]
取整个列表,每两位取一次
[0, 2, 4, 6, 8]

列表迭代

l = list(range(10))

print("迭代列表中的所有元素")
for i in l:
    print(i)

print("以【索引+元素】方式迭代列表")
for i,v in enumerate(l):
    print("索引为%s的元素是%s" % (i, v))

迭代列表中的所有元素
0
1
2
3
4
5
6
7
8
9
以【索引+元素】方式迭代列表
索引为0的元素是0
索引为1的元素是1
索引为2的元素是2
索引为3的元素是3
索引为4的元素是4
索引为5的元素是5
索引为6的元素是6
索引为7的元素是7
索引为8的元素是8
索引为9的元素是9

元组/tuple

元组可以看作是不可变的列表,相比列表,tuple一经初始化便不能修改,相比list来说,更节省运行资源。

>>> t = (1, 2, 3, "a", "b", "c")
>>> t[0]
1
>>> t[1]
2
>>> t[-1]
'c'
>>> t[-2]
'b'

字典/dict

字典是通过哈希计算获得值的,存取速度与字典大小无关。

>>> d={"a":70, "b":80, "c":90}
>>> d["a"]
70
>>> d["a"]=71
>>> d
{'a': 71, 'b': 80, 'c': 90}

以安全方式获取值:

>>> d
{'a': 71, 'b': 80, 'c': 90}
>>> d.get("a", 100)
71
>>> d.get("d", 100)
100

弹出键值对:

>>> d.pop("a")
71
>>> d
{'b': 80, 'c': 90}

字典迭代

print("迭代字典中的所有元素")
for i in d.keys():
    print(i, "->", d[i])

for k,v in d.items():
    print(k, "->", v)

集合/set

集合可看作没有的字典,其内部的元素是不可重复的。

创建集合:

>>> s = set([1,2,3,3,4])
>>> s
{1, 2, 3, 4}

添加元素:

>>> s
{1, 2, 3, 4}
>>> s.add(5)
>>> s
{1, 2, 3, 4, 5}

删除元素:

>>> s
{1, 2, 3, 4, 5}
>>> s.remove(5)
>>> s
{1, 2, 3, 4}

判断

>>> if a<b:
...     printf(a, "<", b)
... elif a==b:
...     print(a, "=", b)
... else:
...     print(a, ">", b)
...

循环

>>> sum=0
>>> for i in range(100+1):
...     sum += i
...
>>> sum
5050
原文地址:https://www.cnblogs.com/focksor/p/python-basis.html