跟不少前端工做者同样,我也经常打听。做为前端,在要懂js的前提下,还要能够学什么其余语言来增长本身的竞争力。
我看到最多的是node,不少人说前端真正的学好node。已经能够胜任不少工做了。假如想学后端java是需求最大的。
不过目前来讲java的学习成本很高,相对python是一门很好入门的语言,最近也是很火。
因此我想用一小段时间,快速了解一下python。(本文用的是python3.x)前端
先看数据类型(看咱们能够pyhton中写什么。)java
乍一看基本类型和js的差很少。
在学习过程当中咱们会屡次用到print();相似于js的console,就是打印输出。node
python的声明没有关键字,声明和赋值写法同样。python
counter = 100 # 整型变量 miles = 1000.0 # 浮点型变量 name = "John" # 字符串变量 flag = True # 布尔类型变量 print(counter) //100 print(miles) //1000.0 print(name) //"John" print(flag) //True
这种经常使用的是动态语言,与之相反的是静态语言。在声明时规定变量的类型。后端
int a = 123; // a是整数类型变量 a = "ABC"; // 会报错,不能把字符串赋给整型变量
至关于占位符,用%符号调用。python3.x
`'Hello, %s' % 'world' // 'Hello, world'
各类占位符数组
其中当用到%时,须要转义一下。%%app
>>> 'growth rate: %d %%' % 7 'growth rate: 7 %'
list很像js中的数组。这里叫列表。其实也差很少,就是一个有序的存放数据的表。dom
>>> classmates = ['Michael', 'Bob', 'Tracy'] print(classmates) //['Michael', 'Bob', 'Tracy']
用len()能够查看list的长度(同时也能看字符的长度)学习
classmates = ['Michael', 'Bob', 'Tracy'] name = 'Michael' print(len(classmates)) //3 print(len(name)) //7
由于是有序的,list中的数据都有本身的索引。索引从0开始。超出后会报错。
>>> classmates[0] 'Michael' >>> classmates[1] 'Bob' >>> classmates[2] 'Tracy' >>> classmates[3] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range
!!比js方便的是list能够调用索引-1直接访问最后一位。
>>> classmates[-1] 'Tracy' >>> classmates[-2] 'Bob' >>> classmates[-3] 'Michael' >>> classmates[-4] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range
append在list最后添加数据
>>> classmates.append('Adam') >>> classmates ['Michael', 'Bob', 'Tracy', 'Adam']
insert能够在list指定位置插入数据
>>> classmates.insert(1, 'Jack') >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
pop直接使用删除list最后一位。带上索引删除指定位置。
>>> classmates.pop() 'Adam' >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy'] >>> classmates.pop(1) 'Jack' >>> classmates ['Michael', 'Bob', 'Tracy']
tuple是相似list的,但是一旦定义了就不能修改。定义写法用的是()。
>>> classmates = ('Michael', 'Bob', 'Tracy') >>> classmates ('Michael', 'Bob', 'Adam')
一旦尝试经过classmates[1]="tom"。修改tuple,会报错。tuple能够保证一些不须要修改的数据被无心修改。
dict相似于js的对象。也就是key-value对的形式存数据。能够用名字快速地找到数据内容。
写法
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} # js的是用. python用[] >>> d['Michael'] 95
当数据多了以后list的查找速度会变慢,而dict几乎不受影响。但是dict会占用大量空间,是用空间来换取时间的一种方法。
若是key不存在,dict就会报错:
>>> d['Thomas'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'Thomas'
这时能够用in或者get()来判断该key是否存在。
# in >>> 'Thomas' in d False # get() >>> d.get('Thomas') >>> d.get('Thomas', -1) -1
用pop()能够删除dict中一项包括key和value
>>> d.pop('Bob') 75 >>> d {'Michael': 95, 'Tracy': 85}
set与dict类型类似,但是set只存key。能够用add(),remove()来增减。
# 经过list来传入 >>> s = set([1, 2, 3]) >>> s {1, 2, 3} # add() >>> s.add(4) >>> s {1, 2, 3, 4} >>> s.add(4) >>> s {1, 2, 3, 4} # remove() >>> s.remove(4) >>> s {1, 2, 3}
来到了逻辑判断了,if。条件判断。首先于js不一样python的分块不用{}而是用缩进和:(这个要注意)
age = 20 if age >= 18: print('your age is', age) print('adult') # 加入else age = 3 if age >= 18: # 符合条件走这里 print('your age is', age) print('adult') else: # 不符合条件走这里 print('your age is', age) print('teenager')
对于else if,python有它的专用缩写
age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid')
变量判断
if x: print('True')
只要x是非零数值、非空字符串、非空list等,就判断为True,不然为False。
终于出现了第一个交互功能--input。用input()程序会让用户输入文本并存放在对应位置,继续完成代码。
birth = int(input('birth: ')) # input()参入的字符,为输入时的提醒文本 # 输入的值会被定义为birth的值,参与if判断。 if birth < 2000: print('00前') else: print('00后')
注意input输入的文本类型是字符,字符不能直接用<,>对比。必需要先转成数字。用int()能够把字符转成整数。
只要知足white的条件,即为true。就会一直跑循环里的代码。
sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print(sum)
在循环内部变量n不断自减,直到变为-1时,再也不知足while条件,循环退出。
break
break能够提早结束循环。
n = 1 while n <= 100: if n > 10: # 当n = 11时,条件知足,执行break语句 break # break语句会结束当前循环 print(n) n = n + 1 print('END')
continue
continue是跳过某次的代码直接进入下一次循环。
n = 0 while n < 10: n = n + 1 if n % 2 == 0: # 若是n是偶数,执行continue语句 continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行 print(n)
for in 能够枚举list或tuple里的数据.
names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name) #顺序输出'Michael', 'Bob', 'Tracy'
某些场景,python是有提供基本方法的,不须要循环生成。list()可让有序数据转换为list。range()能够生成一个整数序列
>>> list(range(5)) [0, 1, 2, 3, 4]
咱们能够利用目前了解到的python语法作一款弱智的游戏。猜数字
import random # 用一个dict存放须要的数据 config = {'maxNum': 100,'minNum': 0,'count':0} # 用模块生成随机数,模块是python中很重要的一环 target = random.randint(config['minNum'],config['maxNum']) # 让循环持续发生 while True: config['count'] += 1 num = int(input('请输入 %d 至 %d 的整数:' % (config['minNum'],config['maxNum']))) if num == target: # 当猜对时break跳出循环 break elif num < target: config['minNum'] = num print('不对,猜小了') elif num > target: config['maxNum'] = num print('不对,猜大了') print('猜对了答案是 %d。一共猜了 %d 次' % (target,config['count']))