笔记1 python入门学习笔记

时间:2022-04-07 06:15:50

目录


官方手册

https://docs.python.org/3.7/tutorial/index.html

菜鸟站手册地址:

https://www.runoob.com/python3/python3-basic-operators.html

python的运行方法

  1. Sublime编辑器执行python代码,用Ctrl+b
  2. cmd黑窗口里 D:\phpStudy\PHPTutorial\WWW\python>python test.py

注释

确保对模块, 函数, 方法和行内注释使用正确的风格

Python中的注释有单行注释和多行注释:

Python中单行注释以 # 开头,例如:

三个单引号,或者三个双引号

    '''这是一个区块连的函数,
        money:交易的金额
        last_value 获取到数组的最后一个单元(默认值为[1])
        Docstring'''

参考手册:

https://www.runoob.com/python3/python3-comment.html

变量

  1. 变量可以理解为一个空盒子,向变量赋值可以理解为向空盒子子里存东西,向变量重新赋值可以理解为把盒子里原有的东西拿出来,放入新的东西
  2. 声明变量前不需加任何声明.php前需要加$,JavaScript前需要加var,python不需要
  3. 变量分为局部变量全局变量,局部变量可以通过global转为全局变量
name = 'lisi'
def get_name():
    global name
    name = input('please input your are name:')
    
get_name() #运行函数局部变量就会通过global转为全局变量

print(name) #输出的是input里您输入的值

字符串

字符串的拼接

a= 'hello'
b='word'
c = a + b
print ("值为:", c) # 'helloword'

字符串的换行

用三个单引号或者三个双引号

str= '''asdfasdfasdf
asdfasdfasdfdfasdf
asdfasdfasdfdfasdf
'''
print (str)

列表 (相当于PHP里的索引数组)

参考菜鸟手册
https://www.runoob.com/python3/python3-list.html

  • 相当里php里的数组
  • 序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
 
print ("list1[0]: ", list1[0]) #list1[0]:  Google 
print ("list2[1:5]: ", list2[1:5]) #list2[1:5]:  [2, 3, 4, 5]

列表的添加

列表相当于php中的一维数组,里面元素是有序的,可以重复的.

  1. 向列表的最后面追加单元数据

列表的追加(向数组的右边追加) append()方法

list1 = ['Google', 'Runoob', 'Taobao']
list1.append('Baidu')
print ("更新后的列表 : ", list1) #['Google', 'Runoob', 'Taobao', 'Baidu']
  1. 向数组后面拼接元素
list1 = ['Google', 'Runoob', 'Taobao']
n = ['a','b','c']
list1 += n
print(list1) #['Google', 'Runoob', 'Taobao', 'a', 'b', 'c']
  1. insert() 函数用于向列表指点任意列表的插入值。

    insert()方法 list.insert(index, obj)

list1 = ['Google', 'Runoob', 'Taobao']
list1.insert(1, 'Baidu')
print ('列表插入元素后为 : ', list1) #['Google', 'baidu', 'Runoob', 'Taobao']
  1. extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。

extend()方法语法:

list.extend(seq)

list1 = ['Google', 'Runoob', 'Taobao']
list2=list(range(5)) # 创建 0-4 的列表
list1.extend(list2)  # 扩展列表
print ("扩展后的列表:", list1) # ['Google', 'Runoob', 'Taobao', 0, 1, 2, 3, 4]

5.extend 与 append 的区别

  • extend 与 append 方法的相似之处在于都是将新接收到参数放置到已有列表的后面。
  • 而 extend 方法只能接收 list,且把这个 list 中的每个元素添加到原 list 中。
  • 而 append 方法可以接收任意数据类型的参数,并且简单地追加到 list 尾部。
list1 = ['Google', 'Runoob', 'Taobao']
list1.extend(['a','b'])  # 扩展列表
print (list1) # ['Google', 'Runoob', 'Taobao', 'a', 'b']

list2 = ['Google', 'Runoob', 'Taobao']
list2.append(['a','b'])  # 扩展列表
print (list2) # ['Google', 'Runoob', 'Taobao', ['a', 'b']]

https://www.runoob.com/python3/python3-att-list-extend.html

列表的删除

方法一:可以使用 del 语句来删除列表的指定元素,如下实例:

list = ['Google', 'Runoob', 1997, 2000]
print ("原始列表 : ", list) #原始列表 :  ['Google', 'Runoob', 1997, 2000]
del list[2]
print ("删除第三个元素 : ", list) #删除第三个元素 :  ['Google', 'Runoob', 2000]

方法二:remove()

描述

remove() 函数用于移除列表中某个值的第一个匹配项。

语法

remove()方法语法:
list.remove(obj)

list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list1.remove('Taobao')
print ("列表现在为 : ", list1) #列表现在为 :  ['Google', 'Runoob', 'Baidu']
list1.remove('Baidu')
print ("列表现在为 : ", list1) #列表现在为 :  ['Google', 'Runoob']

方法三:pop(列表索引)

描述
pop(列表索引) 函数用于移除列表中某索引的值

不列索引,默认删除最后一个元素

list = ['Google', 'Runoob', 1997, 2000]
list.pop(2) 
print(list) #['Google', 'Runoob', 2000]

列表的更新 指定列表里元素的索引下标重新赋值

你可以对列表的数据项进行修改或更新,如下所示:
指定列表里元素的索引下标重新赋值

list = ['Google', 'Runoob', 1997, 2000]
print ("第三个元素为 : ", list[2]) #第三个元素为 :  1997
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2]) #更新后的第三个元素为 :  2001

列表截取与拼接

Python的列表截取与字符串操作类型.

如下所示:

L=['Google', 'Runoob', 'Taobao']

Python 表达式 结果 描述
L[2] 'Taobao' 读取第三个元素
L[-2] Runoob' 从右侧开始读取倒数第二个元素: count from the right
L[1:] ['Runoob', 'Taobao'] 输出从第二个元素开始后的所有元素

拼接

list1 = ['Google', 'Runoob', 'Taobao']
n = ['a','b','c']
list1 += n
print(list1) #['Google', 'Runoob', 'Taobao', 'a', 'b', 'c']

嵌套列表

把两个一维列表嵌套成一个两维列表

a = ['Google', 'Runoob', 'Taobao']
b = ['a','b','c']
c = [a,b]
print(c) #[['Google', 'Runoob', 'Taobao'], ['a', 'b', 'c']]

列表的赋值

copy()和直接=赋值的区别:

  1. 使用=直接赋值,是引用赋值,更改一个,另一个同样会变
  2. copy() 则顾名思义,复制一个副本,原值和新复制的变量互不影响

例子:
https://www.runoob.com/python3/python3-att-list-copy.html

元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

相同之处,它们的元素都是有序的,可以重复的

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

手册:
https://www.runoob.com/python3/python3-tuple.html


字典

可以理解为键值对形式的json格式字符串形式

  1. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,

    格式如下所示:

    d = {key1 : value1, key2 : value2 }

  2. 字典是另一种可变容器模型,且可存储任意类型对象。
  3. 键必须是唯一的,但值则重复。
  4. 值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
  5. 元素是无序的

一个简单的字典实例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此创建字典:

dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };

手册:
https://www.runoob.com/python3/python3-dictionary.html


列表 集合 元组 字典 的特性

# animal = ['pig','dog','cat','dog','pig'] #列表
# animal = {'pig','dog','cat','dog','pig'} #集合
# animal = ('pig','dog','cat','dog','pig') #元组
# animal = {'name':'lisi','age':28,'weight':120} #字典
类型 特性 符号
数组 可编辑 有序 允许重复 []
集合 可编辑 无序 不可重复 {}
元组 不可编辑 有序 可重复 ()
字典 无序 可编辑 值:可重复 键:不可重复 键值对形式 {}

函数

def 自定义一函数

def test():
    print('My name is haima')
test() #My name is haima

循环

for循环

blockchian = [[[1], 12.0], [[[1], 12.0], 13.0], [[[[1], 12.0], 13.0], 14.0]]
for block in blockchian:
    '''这是一个区块连的函数,
        money:交易的金额
        last_value 获取到数组的最后一个单元(默认值为[1])
        Docstring'''
    print(block)

while循环

while True:
    print('请输入数字:')
    print('1:继续交易')
    print('2:打印当前区块链')
    print('q:退出当前操作')
    userChoice_num = get_userChoice_num()
    if userChoice_num == '1':
        money = get_input_money()
        add_value(money,get_last_value())
    elif userChoice_num == '2':
        print_blockchian()
    elif userChoice_num == 'q':
        break #continue
    else:
        print('请输入列表里的数字!')

range()函数循环列表

也可以使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做'步长'):

for i in range(0, 10, 3) :
    print(i)

打印结果:

0
3
6
9

手册参考

https://www.runoob.com/python3/python3-loop.html

判断if..elif..else

if userChoice_num == '1':
    money = get_input_money()
    add_value(money,get_last_value())
elif userChoice_num == '2':
    print_blockchian()
elif userChoice_num == 'q':
    break #continue
else:
    print('请输入列表里的数字!')

手册参考

https://www.runoob.com/python3/python3-conditional-statements.html

breakcontinue的区别

break终止本次循环
continue跳过当前操作,执行下一次循环