Day-2 - python基础语法 (2018-09-26)

一、认识python

1.常用快捷键(不只在python中有效):

  • Ctrl+/ 添加注释/取消注释 (尽量注释自己写的代码而不是删除代码)
  • Ctrl+s 保存
  • Ctrl+b 编译(在相应软件中有效)
  • Ctrl+r 执行(编译+执行)
  • Ctrl+c 复制
  • Ctrl+v 粘贴
  • Ctrl+x 剪切
  • Ctrl+z 撤销
  • Ctrl+shift+z / Ctrl+y 反撤销
  • Ctrl+f 查找
  • Ctrl+a 全选
  • Ctrl+n 新建
  • shift 选中部分(和鼠标配合,选中开始和结束中间的部分)
  • Ctrl 可以多个位置出现光标(和鼠标配合)

2.注意:代码中如果需要符号,符号必须是英文输入状态下输入的符号

  • print():在控制台打印括号中的内容
    print和print后面的括号是固定写法,括号里面的内容是变化的
print('Hello world! 你好,世界!')
print('欢迎来到python1807!')

二、python基础语法

1.注释

写在代码中不参与编译执行的部分就是注释,作用是用来对代码进行注释说明,方便程序员更好地阅读代码
注意:要勤写注释,方便自己也方便别人!
单行注释:在文本内容的前面加“#”
多行注释(方法一):每一行前加“#”
(方法二):将注释放在三个单引号/三个双引号中(推荐使用双引号)

2.标识符

标识符是用来命名的(例如变量名、函数名、类名)
要求:
a.由字母数字和下划线组成,并且数字不能开头 --- python2.x规范
b.在unicode编码中,除了ASCII码表中的字母、数字、下划线以外的部分不能作为标识符的一部分,其他的都可以,数字不能开头(由字母、数字、下划线和中文组成,数字不能开头) --- python3.x规范
注意:在实际开发中,现在还是推荐使用python2.x的规范

abc = 100
abc123 = 100
abc_123 = 100
_123 = 100
# 1abc = 100 # 报错:SyntaxError
你好 = 100

3.语句

C/Java语法,每条语句结束必须加分号。
Python中一条语句结束可以加分号也可以不加,
如果一行显示多条语句,每条语句之间必须加分号。

print('hello python!'); print('hello python!')

4.行和缩进

python中对缩进有严格规范,要求同样等级的代码对应的缩进必须一致,只有在需要产生代码块的时候才需要加缩进
例:

print('abc')
    print('ABC')
# 报错:IndentationError: unexpected indent

注意:第一级注释缩进格式错误也会引发错误

行:要求函数的声明和类的声明的前后需要有两个空行(不会报错)

5.多行显示问题

例:

sum1 = 21312412 + 12412414 + 1243124 + 
    213124124 + 123213214
# 报错:SyntaxError: invalid syntax

a.在需要换行的位置加入“\”,然后再换行(\不要破坏数据本身)
b.如果是列表、字典、元祖和集合的值,可以直接换行

sum1 = 123123 + 141241254 + \
    12312412421 + 24124214 + 1 \
    + 3123214 + 214124124

numbers = [
    123124, 12312421, 213124,
    14124214, 1412, 123124214,
    124214124, 124214
    ]

6.常见的数据类型及其字面量

整型(int)、浮点型(float)、布尔(bool)、字符串(str)、列表(list)、字典(dict)、元祖(tuple)、集合(set)等
具体的数值为字面量

  • 整型:相当于数学中的整数,例如:100,-12,+30,0 (最大数值和计算机的位数有关)
  • 浮点型:带小数点的数,例如:1.23124, 1.00,-2.3231
  • 布尔:只有两个值,分别是True和False
    True和False都是关键字
  • 字符串:用单引号或者双引号括起来的数据,例如:'abc','100',"abc100=+"

7.关键字(保留字)

在python中有特殊功能和特殊意义的一些标识符(单词)

import keyword
"""打印关键字"""
print(keyword.kwlist)

下面是python中所有的关键字:
['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']

三、数字类型

1.python中的数字类型有四个:整型(int)、浮点型(float)、布尔(bool)、复数(complex)

不同的类型,在内存中存储时占用的内存空间不一样
a.整型(int):包含python所有的整数,python3.x整型只有int类型一种,
但是python2.x除了int还有long(自查:java中,int范围二进制位数32,long范围二进制位数64)

b.浮点型(float):包含python所有的小数
注意:浮点型支持科学计数法,12e3为浮点型

12.89
-123.9098
print(12e2) # 12*10^2 1200.0
print(12e-3) # 12*10^(-3) 0.012

c.布尔(bool):布尔类型的值只有两个,分别是True和False
注意:布尔值的首字母是大写的

True
False
# True对应的数值是1,False对应的数值是0
print(True+1)

d.复数(complex):有实部和虚部组成的数字(数学中虚部用i,python中用j)

10+10j

2.type(数值/变量):获取括号中值得类型

print(type(10+10j)) # <class 'complex'>
print(type(100)) # <class 'int'>
print(type(True)) # <class 'bool'>
print(type(3e2)) # <class 'float'>

3.类型名():将其他类型的数据转换成当前类型

a = int(3.14)
print(a);print(type(a))
# 3
# <class 'int'>
print(bool(10)) # True
print(float(100)) # 100.0
print(complex(100)) # (100+0j)
# print(int(100+10j))  # 报错:TypeError: can't convert complex to int

注意:复数不能转换成整型和浮点型

四、变量

1.什么是变量?

声明变量,就是在内存中开辟空间存储数据,变量就是程序在内存中存储数据的容器。

2.怎么声明变量?

  • C/Java声明变量:类型 变量名 = 10;
  • python声明变量:变量名 = 初值

变量名 = 初值
说明:

  • a.变量名:程序员自己命名,要求是标识符,并且不能是关键字;
    所有的字母必须小写,如果变量名由多个单词组成,多个单词之间用下划线隔开
    见名知意(看见变量名,要知道这个变量大概存的是什么样的数据)
  • b.= :赋值符号,功能是将“=”右边的值赋给左边的变量
  • c.初值:有值的表达式(具体的字面量、其他已经声明过的变量)
#声明一个变量number,并且赋值为100
number = 100
print(number) # 100
# True = 12.5 # SyntaxError: can't assign to keyword
# 报错,不能使用关键字
# 1abc = True # SyntaxError: invalid syntax
# 数字开头不符合标识符命名要求
student_name = '小明'
print(student_name) # 小明

注意:虽然int、float、bool、str等不是关键字,但是在需要命名的时候最好不要用它们来命名,否则会改变它们原来的功能

int = 100 # 不会报错
int(80.9) # 报错:TypeError: 'int' object is not callable

3.声明完一个变量后,可以给这个变量重新赋值

重新赋值后,新的值会覆盖变量中原来的值

student_name = '小张'
print(student_name) # 小张

python中,同一个变量可以存储不同类型的值

student_name = 100
print(student_name) # 100

4.同时声明多个变量

变量名1=变量名2=变量名3……=初值

a = b = c = 123
print(a,b,c) # 123 123 123
#print同时打印多个数据时,将数据用逗号隔开

C先开辟空间,再存入值
python先将值存入内存,再赋给a(a指向内存空间地址),更改变量时,先把第二个值存入内存,再更改变量指向地址

将变量中的值赋值给另外一个变量

new_student = student_name

注意:变量只有在赋值后才能使用(只能声明后才能使用)

print(new_student2) # NameError: name 'new_student2' is not defined

五、运算符

python中的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算

1. 数学运算符:+(加),-(减),(乘),/(除),%(取余),//(整除),*(幂运算)

a. +:求和,和数学中的+号功能一样

b. -:求差,和数学中的-号功能一样

result = 99-10 # 将99-10的结果赋给变量result

c. *:求乘积,和数学中的×号功能一样

d. /:求商,和数学中的÷号功能一样
注意:和C语言中的/不一样

print(5/2) # C中结果为2,python中为2.5

e. %:求余数
注意:python中小数和整数都可以求余数

print(5%2) # 1
print(5.1%2) # 1.0999999999999996
print(5.1%0.2) # 0.09999999999999937

f. //:求商,结果只取商的整数部分

print(5//2) # 2
print(6.4//2) # 3.0

g. **(幂运算):求幂
x ** y : 求x的y次方
tips:可以通过把y的值设置为1/2(0.5)来求一个数的开平方

print(2**3) # 8
print(100**0.5) # 10.0

2. 比较运算符:>,<,==,!=,>=,<=

所有比较运算返回的结果是布尔值:True/False
==:判断左右两边的值是否相等, =:将右边的值赋给左边的变量

print(100 > 10) # True
print(100 < 10) # False
number = 10
print(number == 100) # False
60 <= score <= 100 # python支持,其他语言可能不支持

3. 逻辑运算符:and(与),or(或),not(非)(都是关键字)

逻辑运算符的结果是布尔值,运算对象也必须是布尔值

  • a. 值1 and 值2:逻辑与运算,两个都为True,结果才是True,否则都是False
print(True and True) # True
print(False and True) # False

练习:设置获得奖学金的条件,要求绩点在3.5以上,并且操评分高于90分

grade = 2.8
score = 95
print(grade > 3.5 and score > 90) # False

什么时候使用and:要求多个条件同时满足的时候使用and连接

  • b. 值1 or 值2:两个都为False的时候结果才是False,否则就是True
print(False or False) # False
print(True or False) # True

练习:是否穿毛衣出门:温度低于20度,或者风速高于5级

temperature = 15
wind_speed = 4
print (temperature < 20 or wind_speed > 5) # True
condition1 = temperature < 20 # True
condition2 = wind_speed > 6 # False
print(condition1 or condition2) # True

什么时候使用or:要求多个条件中只要有一个条件满足

  • c. not 值: 值取反(True->False; False->True)
    练习:年龄不大于18
age = 20
print(age<=18) # False
print(not age > 18) # False

否定某个条件时使用not

4. python中的and和or会有短路现象

and的短路现象:值1 and 值2,一旦确定值1的值为False,就不会再执行判断值2

def func1():
    print("没有发生短路")

True and func1() # 没有发生短路
False and func1() # 
# or的短路现象:值1 or 值2,一旦值1的值为True,就不会再去执行判断值2
False or func1() # 没有发生短路
True or func1() # 

5. 赋值运算符:=, +=, -=, *=, /=, %=, //=, **=

赋值运算符的左边必须是变量,赋值时先算右边的结果,再将结果赋给左边的变量

100 = 100 # SyntaxError: can't assign to literal
result = 10 > 100
print(result) # False
  • a. =:单纯的将=右边的值赋给左边
  • b. +=, -=, *=, /=, %=, //=, **=
    要求左边的变量本身必须是有值的
    变量1 += 值 --> 变量1 = 变量1 + 值 (其余运算类比)
num2 += 10 # NameError: name 'num2' is not defined
num2 = 100
num2 += 10
print(num2) # 110
num3 = 18
num3 /= 6
print(num3) # 3.0

6. 运算符的优先级

a.数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符
b.先计算优先级高的,如果优先级相等,就从左往右依次计算
c.如果有括号,先算括号里面的
d.数学运算符中,** > *, /, %, // > +, -

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容