web前端学习python之第一章_基础语法(一)

前言:最近新做了一个管理系统,前端已经基本完成,

但是后端人手不足没人给我写接口,自力更生丰衣足食,

所以决定自学python自己给自己写接口哈哈哈哈~

先从hello world开始

输出语法:print()

新建一个文件

hello.py

//填写内容
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'

 

未完。

web前端学习python之第一章_基础语法(一)的更多相关文章

  1. web前端学习python之第一章_基础语法(二)

    web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈 ...

  2. 第一章 –– Java基础语法

    第一章 –– Java基础语法 span::selection, .CodeMirror-line > span > span::selection { background: #d7d4 ...

  3. 《零成本实现Web自动化测试--基于Selenium》第一章 自动化测试基础

    第一篇 Selenium 和WebDriver工具篇 第一章 自动化测试基础 1.1    初识自动化测试 自动化测试有两种常见方式 1.1.1 代码驱动测试,又叫测试驱动开发(TDD) 1.1.2 ...

  4. apue学习笔记(第一章UNIX基础知识)

    总所周知,UNIX环境高级编程是一本很经典的书,之前我粗略的看了一遍,感觉理解得不够深入. 听说写博客可以提高自己的水平,因此趁着这个机会我想把它重新看一遍,并把每一章的笔记写在博客里面. 我学习的时 ...

  5. go基础系列 第一章 go基础语法

    0.前言 1. go定义变量的几种方式 2. go内建变量类型 3. 常量的定义 4. go枚举 5. go的if语句 零. go语言的换行 go语言对换行很有讲究, 如果想换行,必须有一个逗号, 否 ...

  6. 第一章JSP基础语法

    jsp页面元素构成 jsp页面组成部分有:指令,注释,静态内容,表达式,小脚本,声明. jsp指令 page指令:通常位于jsp页面的顶端,同一个页面可以有多个page指令 include指令:将一个 ...

  7. 【前端】Web前端学习笔记【2】

    [2016.02.22至今]的学习笔记. 相关博客: Web前端学习笔记[1] 1. this在 JavaScript 中主要有以下五种使用场景 在全局函数调用中,this 绑定全局对象,浏览器环境全 ...

  8. 【前端】Web前端学习笔记【1】

    ... [2015.12.02-2016.02.22]期间的学习笔记. 相关博客: Web前端学习笔记[2] 1. JS中的: (1)continue 语句 (带有或不带标签引用)只能用在循环中. ( ...

  9. Web前端学习笔记(001)

    ....编号    ........类别    ............条目  ................明细....................时间 一.Web前端学习笔记         ...

随机推荐

  1. 清北学堂北京大学冯哲神仙讲课day2

    今天讲基础数据结构 首先讲(二叉搜索树) 保证左儿子小于右儿子,那么对于根节点来说.大于根节点的放到右子树递归,小于根节点的放在左子树 相等的呢?某大佬(老师)这么说: 删除的前提是找这个点在哪: 如 ...

  2. 创建作业(JOB)

    在SQL Server日常需求处理中,会遇到定时执行或统计数据的需求,这时我们可以通过作业(JOB)来处理,从而通过代理的方式来实现数据的自动处理.一下为SQL Server中创建作业的脚本,供大家参 ...

  3. mysql 数据备份和还原

    使用mysqldump命令备份 使用root用户备份test数据库下的person表 mysqldump -u root -p test person > D:\backup.sql 备份多个数 ...

  4. 王之泰201771010131《面向对象程序设计(java)》第十三周学习总结

    第一部分:理论知识学习部分  第11章 事件处理 11.1 事件处理基础 a)事件源(event source):能够产生事件的对象都可 以成为事件源,如文本框.按钮等.一个事件源是一个 能够注册监听 ...

  5. ubuntu学习笔记

    Linux操作系统 locale –a查看支持语言 ls查看目录 ls .l / 查看根目录 apt-get –h 安装软件看帮助信息 sudo apt-get inatall packge 安装包 ...

  6. ready

    // 定义一个动物类 function Animal (name) { // 属性 this.name = name || 'Animal'; // 实例方法 this.sleep = functio ...

  7. python from entry to abandon4

    python from entry to abandon系列的收官之作    本篇博客将会介绍<简明Python教程>的最后四章内容.并在最后附上对于本书的个人评价和下阶段自学Python ...

  8. Vue-admin工作整理(十六):Ajax-axios进行请求封装+拦截器

    典型的工具类封装,增加拦截起来做相应的处理 user.js: import axios from './index' export const getUserInfo = ({ userId }) = ...

  9. Linux中的wheel用户组是什么?

    在Linux中wheel组就类似于一个管理员的组. 通常在Linux下,即使我们有系统管理员root的权限,也不推荐用root用户登录.一般情况下用普通用户登录就可以了,在需要root权限执行一些操作 ...

  10. Cordova入门系列(四)自定义Cordova插件--showToast

    前三篇Cordova入门系列,简单讲解了Cordova,以及如何调用Cordova插件,今天我们讲解一下如何自己做一个插件. 自定义插件,就是自己写一些安卓java代码,然后和js代码以及配置文件,封 ...