有过C/C++/java基础,虽然都是皮毛…开始自学python 总会顺利一些。
环境:win+R > python --version
Python 3.6.5 :: Anaconda, Inc.
环境搭建就不说了 搭好环境后
cmd控制台输入python 进入命令行交互式编程
可直接用cmd或者IDEL或者pycharm做解释器
因为想要开始快一些,暂时能上手,然后在项目中查缺补漏。
参考了此处https://www.jianshu.com/p/5e69417ed9d2
python3官方文档中文版 很不错:http://www.pythondoc.com/pythontutorial3/index.html
Awesome Python 最全的python资源,找项目练手:https://github.com/vinta/awesome-python
中文版移步:https://github.com/jobbole/awesome-python-cn
笨方法学python,最受欢迎的python入门教程。PDF地址:链接:https://pan.baidu.com/s/1i4YiHZv 密码:t5i4
廖雪峰教程:https://www.liaoxuefeng.com/wiki/1016959663602400
简明python教程:链接: https://pan.baidu.com/s/1iI9gbyNkSlrMQIslH9aahQ 提取码: nuah
晚辈暂时计划看一遍菜鸟教程的基础,再一遍官方文档,穿插做小项目。
python特点:
一种解释型、交互式、面向对象、跨平台的语言
优点:
1.易于阅读和维护
2.有一个广泛的标准库
3.python支持坏人各种主流数据库之间的交互
4.可扩展性和可移植性
5.GUI编程【图形化界面】
6.可嵌入型【可以将python程序嵌入到c++中】
缺点:
1.运行速度慢
2.代码不能加密
默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码:
# -*- coding: cp-1252 -*-
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
在 Python 3 中,非 ASCII 标识符也是允许的了。
单行注释 相当于 C/C++的 //
#!/usr/bin/python3
多行注释 相当于 /**/
'''
第三注释
第四注释
'''
"""
第五注释
第六注释
"""
变量
python变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量就会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
a,b,c = 1,2,"hello" #允许为多个变量同时赋值
width = 1080
height = 1920
name = "hello"
print(width,height,name)
#换行输出
print(width)
print(height)
print(name)
#不换行输出
print(width,height,name)
#或者 这样不换行输出
print(width,end=" ")
print(height,end=" ")
print(name,end=" ")
Python3 有六个标准数据类型中:
Python3 支持 int、float、bool、complex(复数)。
只有一种整数类型 int,表示为长整型,没有Long
可用内置type() 函数查询变量的数据类型,或者 isinstance(object,type)方法判断。
>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
name = "hello world"
flag = isinstance(name,str)
print(flag)
isinstance 和 type 的区别在于:
>>> class A:
... pass
...
>>> class B(A):
... pass
...
>>> isinstance(A(), A)
True
>>> type(A()) == A
True
>>> isinstance(B(), A)
True
>>> type(B()) == A
False
**注意:**在Python3 中,把 True 和 False 定义成关键字,但它们的值还是 1 和 0,它们还可以和数字相加。
您可以通过使用del语句删除单个或多个对象。例如:
del var
del var_a, var_b
pi = 3.1415926
del pi
print(pi) #无任何输出,pi对象已被删除
数值运算
基本的+ - * / %可以直接使用,//表示floor(),整除,**表示乘方运算
>>> 2 // 4 # 除法,得到一个整数
0
>>> 2 ** 5 # 乘方
32
复数
Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型
要理解: 索引 截取 + *
截取的语法格式和字符串一样:变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置。
line = "You're never wrong to do the right thing"
str = "you are right"
print(line[0:1]) #Y 从下标为0的元素开始 截取到下标为1的光标前
print(line[1:3]) #ou 从第2个元素开始,输出到第3个元素 或者说 从下标为1元素开始 输出到下标为3的元素之前
print(line * 2) # 重复 输出字符串两次
print(line[7:12] * 2) #nervernerver 输出截取的字符串 两次
print(line + str) #连接
string是不可变数据,line[0] = ‘1’ 错误,不能修改字符串的值
List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
列表的索引和截取的语法和字符串一样,列表被截取后返回一个包含所需元素的新列表。
截取的语法格式和字符串一样:变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置。
加号 + 是列表连接运算符,星号 * 是重复操作
以上列表的使用语法和字符串基本完全一样
区别在于
print("==================List(列表) - 可变数据===================")
#列表的使用和字符串string基本一样
List = ['abcd', 678, 1.23, 'runoob', 79.321, 0.0]
Love = ["I love U"]
print(List)
print(List[0])
print(List[1:3]) #从第2个元素开始,输出到第3个元素 #或者说 从下标为1元素开始 输出到下标为3的元素之前
print(List[2:])
print(List*2) # *是重复操作
print(List + Love) # + 是连接操作
print("与string不同 列表可以改变数据")
List[0] = 0 #直接改变某下标的数据
List[1:4] = [1,2,3] #改变截取一段的数据
print(List)
List[4:6] = [] #将对应的数据设置为[],相当于删除数据
print(List) # 0,1,2,3
List[1:2] = []
print(List[0:]) #0,2,3
print("与string的截取不同 列表截取有三个参数,第三个参数设置步长")
arrayList = [0,1,2,3,4,5,6,7]
print(arrayList[1:5:2]) #每两步长 截取一次 隔一个数截取一次
print(arrayList[1:8:2]) #1 3 5 7
print(arrayList[-1::-2]) #第三个参数步长为2 负号表示反向截取 截取的起始位置是 -1,第二个参数表示截取到末尾
简单应用List - 字符串翻转
如,list = [1,2,3,4]
其中,list[0] = 1,list[3] = 4
则list[0] = list[-1] 就是置换
list = list[-1::-1] #则逆向从尾截取到头 赋值给原list 就达到翻转的翻转的效果
#应用 翻转字符串
def reverseWords(input):
# 通过空格将字符串分隔符,把各个单词分隔为列表
inputWords = input.split(" ")
inputWords = inputWords[-1::-1] #直接赋值 逆向 相当于每个元素的头尾置换
output = ' '.join(inputWords) # ['coding', 'like', 'I']
return output
if __name__ == "__main__":
input = "I like coding"
rw = reverseWords(input)
print(rw)
输出:
coding like I