Python3入门

举报
小哈里 发表于 2022/05/10 23:07:43 2022/05/10
【摘要】 ——Life is short, you need Python, 人生苦短,我用 Python 0x00预处理 0x01路径:#!/usr/bin/python3 0x02编码:# -*- cod...

——Life is short, you need Python, 人生苦短,我用 Python

0x00预处理

0x01路径:#!/usr/bin/python3
0x02编码:# -*- coding: utf-8 -*-
0x03模块:
1. 模块导入:import
2. 调用模块:support.print_func("Runoob")
3. 引入时不运行:每个模块都有一个name属性,当其值是__main__时,表明该模块自身在运行,否则是被引入。
4. 包:管理 Python 模块命名空间的形式,包结构:__init__.py
0x04注释{ 单行#, 多行“`注释内容“`}
0x05缩进:全文要一致,代替花括号。
0x06语句{ 一行多句用”;“分隔; 多行一句用反斜杠”\“ }
0x07代码组{以’:”结束}
0x08标识符+保留字?

0x10数据类型

0x10综述
1. 变量不需要声明。
2. 变量没有类型,所以一个变量可以通过赋值指向不同类型的对象。
3. 允许同时为多个变量赋值。a, b, c = 1, 2, “runoob”
0x11Number
1. Python3 支持 bool、int、float。
2. 数值的除法(/)总是返回一个浮点数,要获取整数使用//操作。在混合计算时,Python会把整型转换成为浮点数。
3. 2**5 #乘方 32
0x12String
1. 字符串用单引号(‘)或双引号(“)括起来。
2. 使用反斜杠()转义特殊字符,如果你不想让转义发生,可以在字符串前面添加一个 r,表示原始字符串
3. 字符串可以被索引,切片,拼接。(索引值以 0 为开始值,-1 为从末尾的开始位置。)

#!/usr/bin/python3
str = 'Runoob'
print (str)          # 输出字符串
print (str[0])       # 输出字符串第一个字符
print (str[2:4])     # 输出从第三个开始到第四个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str[:4])      # 输出第一个到第四个的所有字符
print (str[2:-1])    # 输出从第三个开始到倒数第二个的字符
print (str * 2)      # 输出字符串两次
print (str + "TEST") # 连接字符串
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

0x13Tuples
1. 元组写在小括号()里,元素之间用逗号隔开。tinytuple = (123, ‘runoob’)
2. 注意构造包含0或1个元素的元组的特殊语法规则。tup1 = (); tup2 = (20,) # 空元组和一个元素,需要在元素后添加逗号
3. 元组可以被索引,切片,拼接,详见字符串代码,不再赘述。
0x14List
1. 元素可以为不同类型:list = [ ‘abcd’, 786 , 2.23, ‘runoob’, 70.2 ]
2. String, Tuples,List都是序列。List和Tuples的区别是List可以更改元素Tuples不能。
3. 列表可以被索引,切片,拼接,详见字符串代码,不再赘述。(序列都可以)
4. 添加方法可以作为栈{将x添加到末尾append(x);指定删除索引默认最后一个pop();}队列{删左边的popleft()}链表等数据结构。
0x15set
1. 基本功能是进行成员关系测试和删除重复元素(默认完成)。print(a - b); ‘Rose’ in student; #a和b的差集; 成员测试
2. 可以使用大括号 { } 或者 set() 函数创建集合。(创建一个空集合必须用 set()):student = {‘Tom’, ‘Jim’, ‘Mary’, ‘Tom’, ‘Jack’, ‘Rose’}
0x16dict
1. 无序的对象集合(区别于列表的有序对象),字典当中的元素是通过键来存取的,而不是通过偏移存取。(创建一个空字典用{}):tinydict = {‘name’: ‘runoob’,’code’:1, ‘site’: ‘www.runoob.com’}
2. 键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
补充:
1. strings, tuples, 和numbers 是不可更改的对象,而 list, dict, set则是可以修改的对象。
2. 类型转换用:int(); float(); str(); dict();list();set();chr(); 函数。、
3. del语句可以删除对象或者列表的切割。

0x20逻辑控制

0x21 条件控制:

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

0x22 循环语句:

while 判断条件:
    语句
  
 
  • 1
  • 2

或者(遍历序列用for):

for <variable> in <sequence>:
    <statements>
else:
    <statements>
  
 
  • 1
  • 2
  • 3
  • 4

0x23 迭代器和生成器:
1. 迭代器遍历集合。迭代器只能往前不会后退。
2. 迭代器两个基本方法it=iter(list); print(next(it)) #创建迭代器对象、输出下一个对象
3. 生成器是一个返回迭代器的函数。生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回yield的值,作为迭代器集合的下一个元素。

#!/usr/bin/python3
import sys
def fibonacci(n): # 生成器函数 - 斐波那契
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n): 
            return
        yield a
        a, b = b, a + b
        counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
while True:
    try:
        print (next(f), end=" ")
    except StopIteration:
        sys.exit()
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

0x24 函数:
1. 函数定义:def printme( str ): #没有结束标志;return就返回;
2. 函数调用:printme(“我要调用用户自定义函数!”);
3. 参数传递:不可变类型传值(拷贝),可变类型传引用(指针)。
4. 参数类型:def printinfo(name,age=35,*vartuple): #必要参数, 默认参数, 和不定长参数。
5. 匿名函数:sum = lambda arg1, arg2: arg1 + arg2; #可写函数说明,调用方式与正常函数一样。

0x30内置函数

0x31 print(): print(‘{name}网址: {site}’.format(name=’菜鸟教程’, site=’www.runoob.com’))
0x32 range():range(x,y),生成一个[x,y)的迭代器
0x33 repr():产生一个解释器易读的表达形式repr(x).rjust(2)
0x34 input():从标准输入读入一行文本
0x40面向对象
0x41类的属性:name = ”; __weight = 0 #基本属性和私有属性
0x42构造函数:def init(self,n,a,w):
0x43类的方法:不再赘述。。。实例化:t = Test(); t.prt()
0x44继承和多态
0x45运算符重载:def add(self,other):return Vector(self.a + other.a, self.b + other.b)
0x50玩得开心
0x51正则表达式:检查一个字符串是否与某种模式匹配
0x52常用库介绍:

参考资料:
RUNOOB:http://www.runoob.com/python3/python3-tutorial.html
cyaron:https://github.com/luogu-dev/cyaron/wiki/Python-30%E5%88%86%E9%92%9F%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97
一张图看懂:http://blog.csdn.net/guomutian911/article/details/53571552

说明:2018.2.3的时候弄的,第一遍写的时候没有用markdown,所以排版可能有点,,凉。

文章来源: gwj1314.blog.csdn.net,作者:小哈里,版权归原作者所有,如需转载,请联系作者。

原文链接:gwj1314.blog.csdn.net/article/details/79718572

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。