前言:最近新作了一个管理系统,前端已经基本完成,php
可是后端人手不足没人给我写接口,自力更生丰衣足食,html
因此决定自学python本身给本身写接口哈哈哈哈~前端
先从hello world开始java
输出语法:print()node
新建一个文件python
hello.pyweb
//填写内容 print("hello , world")
运行该文件后端
这一点与Node很类似,Node运行文件的时候是node xx.js 数组
python运行是python xx.py安全
若是没有这个文件你就运行的话会报错
//报错意思是该文件不存在 python: can't open file 'hello.py': [Errno 2] No such file or directory
输入和输出
刚刚已经提到了输出print()
print()在括号中加上字符串,就能够向屏幕上输出指定的文字
//好比hello,world print("hello,world")
print()也能够接受多个字符串,须要用逗号“,”进行隔开,而后一串输出
print("薛小白","是","最可爱的","小前端")
//会依次打印每一个字符串,遇到逗号“,”会输出一个空格,所以,输出的结果是:
//薛小白 是 最可爱的 小前端
print()也能够打印整数或者计算结果
//打印整数 print(300) //300 //计算结果 print(100 + 200) //300 //小小一组合 print('100 + 200 =', 100 + 200) //100 + 200 = 300 //前半部分当成字符串解析,后半部分计算结果
那若是咱们想让用户输入一些东西怎么办
c语言的输入是 scanf(),能够规定输入的是整数%d仍是字符串等
像前端可能用的比较多的就是input框获取用户输入的内容
python的输入是input()
name = input() print('hello,', name) //此时的name是一个变量, //第一句话是让你输出一个内容(此处最好的一个名字,好比:薛小白) //第二句话是进行一个输出,同时输出你刚刚填写的内容 //输入完你想输入的内容后,记得按回车键
这样就能够输入输出了,可是用户体验是有点差的,用户怎么知道何时输东西已经输入什么东西呢,咱们须要给他们一点提示!
name = input('please enter your name: ') print('hello,', name)
这样再运行这个程序的时候,你会发现先打印出 please enter your name:
数据类型和变量
整数、浮点数、字符串
字符串用单引号‘’或者双引号“”包起来,
若是字符串内部包含‘’或者“”须要使用转义字符\
//一句话的正常写法以下 I'm ok! //由于出现了’因此须要转义字符 'I\'m ok!'
转义字符能够转译不少字符,\n表示换行,\\表示字符\,\t
表示制表符(就是tab)
python容许使用r‘’表示‘’内部的字符串默认不转义
print('\\\t\\') //输出结果:\ \ print(r'\\\t\\') //输出结果:\\\t\\
python容许'''内容'''来表示多行内容
print('''line1 line2 line3''') line1 line2 line3
python里有一个特殊的值,空值None,不可理解为0
除法
//一种除法/结果是浮点数,不管是否整除结果都是浮点数 10 / 3 3.3333333333333335 9 / 3 3.0 //还有一种除法是//,称为地板除,两个整数的除法仍然是整数 10 // 3 3 //取余% 10 % 3 1
字符串和编码
对于单个字符的编码,python提供了ord()获取字符的整数表示,chr()把编码转换为对应的字符
ord('A') 65 ord('中') 20013 chr(66) 'B' chr(25991) '文' //若是知道字符的整数编码,还能够用十六禁止这么写str '\u4e2d\u6587' '中文'
在python中采用的格式化的方式和c语言是同样的,用%实现格式化
Hello, %s' % 'world' 'Hello, world' 'Hi, %s, you have $%d.' % ('Michael', 1000000) 'Hi, Michael, you have $1000000.'
%d整数、%f浮点数、%s字符串、%x十六进制整数
'Age: %s. Gender: %s' % (25, True) 'Age: 25. Gender: True' //有些时候,字符串里面的%是一个普通字符怎么办?这个时候就须要转义,用%%来表示一个%: 'growth rate: %d %%' % 7 'growth rate: 7 %'
另外一种格式化字符串的方法是使用字符串的format()
方法,它会用传入的参数依次替换字符串内的占位符{0}
、{1}
……,不过这种方式写起来比%要麻烦得多:
'Hello, {0}, 成绩提高了 {1:.1f}%'.format('小明', 17.125) 'Hello, 小明, 成绩提高了 17.1%'
使用list和tuple
python内置的一种数据类型是列表list,list是一种有序的集合,能够随时添加和删除其中的元素。其实就是js的数组
classmates = ['Michael', 'Bob', 'Tracy'] classmates ['Michael', 'Bob', 'Tracy'] classmates[0] 'Michael' classmates[1] 'Bob' classmates[2] 'Tracy'
前端获取一个数组的长度是arr.length, python使用len()函数获取数组个数,最后一个元素的索引是 len(classmates) - 1
若是要获取最后一个元素,除了使用索引外,还可使用-1做为索引,直接获取到最后一个元素
classmates[-1] 'Tracy'
以此类推,能够获取倒数第二个、倒数第三个
classmates[-2] 'Bob' classmates[-3] 'Michael'
给数组添加元素append()
classmates.append('Adam') classmates ['Michael', 'Bob', 'Tracy', 'Adam']
把元素插入到指定位置insert()索引值为i
classmates.insert(i, 'Jack') classmates ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
删除指定位置的元素pop(),索引值为i
classmates.pop(1) 'Jack' classmates ['Michael', 'Bob', 'Tracy']
把某个元素替换直接赋值便可
classmates[1] = 'Sarah' classmates ['Michael', 'Sarah', 'Tracy']
数组里的数据类型能够不同,好比[ 'apple' , 1 , true ]
数组里能够包着数组
s = ['python', 'java', ['asp', 'php'], 'scheme'] len(s) 4
tuple称为有序元素,与list相似,可是一旦初始化没法修改,没有append()、insert()这样的方法,可使用索引获取元素但不能够赋值成另外的元素
那么他不可改变存在的意义是什么呢?
由于他不可变,因此代码更安全,能用tuple代替list就尽可能使用tuple
当你定义一个tuple时,在定义的时候,tuple的元素就必须被肯定下来
t = (1, 2) t (1, 2)
若是要定义一个空的tuple,能够写成()
t = () t ()
若是要定义一个只有一个元素的tuple,若是你写成 t = (1) 表明
定义的不是tuple,是1
这个数!这是由于括号()
既能够表示tuple,又能够表示数学公式中的小括号,这就产生了歧义,所以,Python规定,这种状况下,按小括号进行计算,计算结果天然是1
。
因此,只有1个元素的tuple定义时必须加一个逗号,
,来消除歧义:
t = (1,) t (1,)
//python在显示只有1个元素的tuple时,也会加一个逗号,以避免你误解成数学计算意义上的括号。,
最后看一个“可变”的tuple
t = ('a', 'b', ['A', 'B']) t[2][0] = 'X' t[2][1] = 'Y' t ('a', 'b', ['X', 'Y'])
//对于tuple而言是没有改变的,改变的是list
条件判断
//记住写法就能够了,不像前端有(){} //记住加:
age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid')
结合input
birth = input('birth: ') if birth < 2000: print('00前') else: print('00后') //此时会报错,由于input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数 s = input('birth: ') birth = int(s)//转换成整数 if birth < 2000: print('00前') else: print('00后')
循环
两种循环,一种是for in,依次把list或tuple中的每一个元素迭代出来
names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name)
//执行这段代码,会依次打印names的每个元素
Michael
Bob
Tracy
计算整数之和
sum = 0 for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: sum = sum + x print(sum)
若是要计算1-100怎么办呢,python提供一个range()函数,能够生成一个整数序列,再经过list()转换为list
//range(5)生成的序列是从0开始小于5的整数 list(range(5)) [0, 1, 2, 3, 4]
第二种循环是while循环,条件知足不断循环条件不知足退出循环
//计算100之内的奇数的和 sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print(sum)
break和continue跟js同样,此处不讲
使用dict和set
dict其实就是对象
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} d['Michael']
若是key不存在,会报错,避免key不存在的错误,经过in判断key是否存在
'Thomas' in d False
也能够经过get()判断key是否存在
d.get('Thomas') d.get('Thomas', -1) -1
//能够返回none或者本身指定的value,返回none时python的交互环境不显示结果
dict占用大量内存,内存浪费多,查找和插入速度快,list占用内存小,查找和插入速度随着元素增长而增长,因此dict是用空间换取时间的一种方法。
dict的key必须是不可变对象
set与dict相似,是key的集合,但不存储value,因为key不能重复,因此set中没有重复的key,相似于js的Set()函数
s = set([1, 1, 2, 2, 3, 3]) s {1, 2, 3}
set添加元素add(),能够重复添加,但不会有效果:
>>> s.add(4) >>> s {1, 2, 3, 4} >>> s.add(4) >>> s {1, 2, 3, 4}
set删除元素remove()
>>> s.remove(4) >>> s {1, 2, 3}
set能够看做数学意义上的无序和无重复元素的集合,两个set能够作数学意义上的交集、并集等操做:
>>> s1 = set([1, 2, 3]) >>> s2 = set([2, 3, 4]) >>> s1 & s2 {2, 3} >>> s1 | s2 {1, 2, 3, 4}
不可变对象
str是不可变对象,list是可变对象
//可变对象 >>> a = ['c', 'b', 'a'] >>> a.sort() >>> a ['a', 'b', 'c'] //不可变对象 >>> a = 'abc' >>> a.replace('a', 'A') 'Abc' >>> a 'abc'
>>> a = 'abc' >>> b = a.replace('a', 'A') >>> b 'Abc' >>> a 'abc'
未完。
原文出处:https://www.cnblogs.com/yangyangxxb/p/10412154.html