缩进

要求严格的代码缩进是python语法的一大特色,就像C语言家族(C、C++、Java等等)中的花括号一样重要,在大多数场合还非常有必要。在很多代码规范里面也都有要求代码书写按照一定的规则进行换行和代码缩进,但是这些要求只是纯粹是方便人(程序员)来阅读、使用或修改的,对于编译器或者解释器而言,完全是视而不见的。但是对Python解释器而言,每行代码前的缩进都有语法和逻辑上的意义。Python的这个特性,也经常在Python使用者和非Python使用者中引起争论。

实际上,python这种强制的代码缩进,就像一把双刃剑,有好处也有坏处。显然,好处在于在严格要求的代码缩进之下,代码非常整齐规范,赏心悦目,提高了可读性,在一定程度上也提高了可维护性。但是Python严格的代码缩进,对于从其他语言转过来的人,由于现在计算机和相关专业第一门语言一般都是C/C++或Java,他们的语法风格基本是一致的,所以可能要一段时间来适应。python代码缩进十分严格,如果不按其规则书写代码,就可能会出现语法错误,例如unexpected indent、SyntaxError之类的,甚至有时也会出现逻辑错误。

在Java中使用{}包裹,只要在{}中代码的位置随便放都能编译通过:

if (true) {System.out.println(1);
System.out.println(1);
System.out.println(1);
}

而在Python中却不能,必须严格遵守缩进原则(属于他的下级代码块,必须进行缩进(4个空格 或 按下Tab键)):

if True:
print(1)# 如果该代码属于他的下级就必须进行缩进否则可能会出现逻辑错误或报错

错误缩进示例:

number = 1
guess = int(input("请猜一个数字"))
if guess == number:
print("恭喜你猜对了")
print("游戏结束")
if guess != number:
print("猜错了")
print("游戏结束")

上面的代码中第二个print未正确的进行缩进,导致如果猜错了就会打印两次猜错了

注释

单行注释:

使用# Code 或 文字

多行注释:

使用'''Code 或 文字''' 或者 """Code 或 文字"""

"""
作者:Wei
日期:2018/9/15 17:20
Python版本:3.6.3
"""
# 上面是一段多行注释 # 根据身高、体重计算BMI值
def Body_Mass_Index(heights,weight):
"""体质指数(BMI)=体重(kg)÷身高^2(m)""" # 这也是一段多行注释Demo
heights = height / 100
BMI = weight / (heights ** 2)
# print(BMI) # 这是一个单行注释,这句代码将不会被执行
if BMI < 18.5:
print("体重过轻!!")
elif BMI >= 18.5 and BMI < 24.9:
print("正常")
elif BMI > 24.9:
print("太胖了") if __name__ == '__main__':
height = float(input("请输入你的身高(CM):"))
weight = float(input("请输入你的体重(KG):"))
Body_Mass_Index(height,weight)

Python的关键字

目前有以下关键字:

False None True and as assert
async await break class continue def
del elif else except finally for
from if import in is lambda
nonlocal not or pass raise return
try while with try yield

这些关键字已经被赋予特定的意义,这些关键字不能作为变量、函数、类、模块和其他对象名称来使用

错误示例:

True = 1
print(True) 运行结果:SyntaxError: can't assign to keyword

查看Python的所有关键字

>>> import  keyword
>>> print(keyword.kwlist)

变量

Python中的变量跟Java等语言不太一样,Python中不需要先声明变量名及其类型,直接赋值即可创建各种类型的变量。

示例:

变量名称 = values

实例:

number = 1024
name = 'zhangsan'
sex = "男"
你好 = '你好' #变量名可以中文但不推荐

查看对象类型

使用type()来查看对象类类型

"""
作者:Wei
日期:2018/9/15 17:20
Python版本:3.6.3
"""
number = 1024
name = 'zhangsan'
sex = "男"
你好 = '你好' #变量名可以中文但不推荐 print(type(number))
print(type(name))
print(type(sex))
print(type(你好)) 执行结果:
<class 'int'>
<class 'str'>
<class 'str'>
<class 'str'>

基本数据类型

Number(数字)                  包括int,long,float,complex
String(字符串) 例如:hello,"hello",hello
List(列表) 例如:[1,2,3],[1,2,3,[1,2,3],4]
Dictionary(字典) 例如:{1:"nihao",2:"hello"}
Tuple(元组) 例如:(1,2,3,abc)
Bool(布尔) 包括True、False

由于Python中认为所有的东西都是对象,所以Python不用像其它一些高级语言那样主动声明一个变量的类型。

数据类型

python 中的变量定义就是赋值语句比如

val1 = 25
val2 = "hehe"

类型转换函数

  • int()转换成整数
  • float()转换成浮点数
  • str()转换成字符串
  • complex(x)将x转为复数,x为实部,虚部为0
  • complex(x, y)将x,y转为复数,x实部,y虚部
  • list()转列表
  • tuple()转元组

示例代码:

number = '1024'
number2 = int(number)
print(type(number2)) 执行结果:
<class 'int'>

字符串

用单引号或双引号包围起来的就是字符串,这种灵活性使你可以在字符串中包含引号

"This is a string in python"
'This is another string in python'
'This is also a string in "python"'

注意:加r和不加r的字符串

str = r'\n\t Hello'
str1 = '\n\t Hello'
print("这是str:" + str)
print("这是str1:" + str1) 执行结果:
这是str:\n\t Hello
这是str1:
Hello

可以看到字符串外面带r的字符串没有进行转义

各种转义符详解

字符串操作方法

访问

  • 支持切片访问

大小写

s.title()  #返回的字符串单词首字母大写,其余小写
s.upper()
s.lower()

合并字符串

  • 使用+号

判断数字

  • s.isdigit()

删除空白

  • -s.rstrip()

删除末尾空白

s.lstrip()
s.strip()

整数

python3的整数不限制大小!

也没有什么signed和unsigned,是不是很人性化呢?

和惯例一样0x前缀是16进制,0前缀是8进制

浮点数

注意在python3中1/2的值是0.5,而在python2中则是0

e的用法和在C/C++中一样,表示10的幂1e8就是108108

复数

complex1 = 1 + 3j

布尔类型

TrueFalse

  • 0为False
  • 大于0为True

判断中我们都可以这样写:

if True:
print(1) if 1:
print(1)
执行结果:
1
1

列表

由一系列有序的元素组成,其中的元素可以是任何类型。

在python中用方括号表示列表

name = ['a', 'b', 'c']

列表的操作

访问

  • 下标访问:name[0]

长度

  • 用len()函数,此函数同时可用于浮点数,元组的类型

添加和删除

l.append(object)
l.extend(list)添加一个列表到列表末尾
l.insert(index, object)
del name[0]

使用 del语句删除

l.pop([index])默认为删除最后一个并返回这个对象,也可以通过index指定,
l.remove(value)按值删除第一个出现的对象

组织列表

l.count(value) #value出现的次数
l.index(value) #value的索引值(第一个)

列表解析

squares = [value**2 for value in range(1,11)]
创建了一个列表,元素为1,4,9…

切片

names = ['a', 'b', 'c', 'd']
sname = names[0:3] # 表示names的前三个元素
ssname = names[:3] # 省略表示从列表开始到第3个元素

元组

元组和列表类似,也是由有序的元素组成,用圆括号表示元组

size = (3, 4)
size[0] = 1 # error:不能修改元组元素
size = (5, 6) # 可以重新定义元组

不允许对元组的元素进行修改,如需修改元组,只能对元组进行重定义。

不能删除元组元素,但是可以用del函数删除整个元组

注意:当元组只有一个元素时,要在元素后加上一个逗号

tuple1  =(3)#当元组只存在一个数据时必须加一个“,”,否则默认为int类型
print(tuple1[0]) #报错,此时tuple1被识别为int类型
tuple2 = (2,)
print(tuple2[0]) #正确姿势

字典

字典 是一系列键 — 值对 。每个键 都与一个值相关联,你可以使用键来访问与之相关联的值。字典用花括号定义

alien = {'color' : 'green'}

操作

字典的访问

通过对应的键访问

tuples = {"name":"zhang","sex":"男"}
print(tuples["name"]) 结果:zhang
tuples.get(key, default=None)返回指定键的值,如果没有则返回default
tuples.setdefault(key, default=None)设置指定键的值,如果不存在则添加并设为default

示例:

tuples = {"name":"zhang","sex":"男"}
print(tuples.get("name"))
执行结果:zhang

元素的添加

键做下标,直接添加

a['key'] = value

遍历

d.items()返回一个键-值对的列表
d.keys()返回键列表
d.values()返回一个包含所有值的列表
用for语句遍历
for key, value in a.items():
print(key)
print(value)
删除键值对
d.clear()删除全部
del语句
del a['key']

运算符

算数运算符

假设变量: a=10,b=20:

运算符 描述 实例
+ 加 - 两个对象相加 a + b 输出结果 30
- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ 除 - x除以y b / a 输出结果 2
% 取余 - 返回除法的余数 b % a 输出结果 0
** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
// 取整除(地板除) - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0

赋值运算符

运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c = a 等效于 c = c a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c = a 等效于 c = c a
//= 取整除赋值运算符 c //= a 等效于 c = c // a

比较(关系)运算符

运算符 描述 示例
== 检查两个操作数的值是否相等,如果是则条件变为真。 如a=3,b=3则(a == b) 为 true.
!= 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 如a=1,b=3则(a != b) 为 true.
<> 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 如a=1,b=3则(a <> b) 为 true。这个类似于 != 运算符
> 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 如a=7,b=3则(a > b) 为 true.
< 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 如a=7,b=3则(a < b) 为 false.
>= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 如a=3,b=3则(a >= b) 为 true.
<= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 如a=3,b=3则(a <= b) 为 true.

逻辑运算符

假设:a = 10 b = 10

运算符 逻辑表达式 描述 实例
and x and y 布尔”与” - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 10。
or x or y 布尔”或” - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔”非” - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

位运算符

参考链接

input()函数

input()用来接收用户输入

"""
作者:Wei
日期:2018/9/15 17:20
Python版本:3.7
"""
number = input("请输入一个数字:")
print("你输入的数字是:" + number) 输入1执行结果:
请输入一个数字:1
你输入的数字是:1

类似Java如下代码

import java.util.Scanner;

public class one {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);//跟这个功能一样
System.out.print("请输入一个数字:");
int input = sc.nextInt();
System.out.println("你输入的数字是:" + input);
sc.close();
}
} 输入1执行结果:
请输入一个数字:1
你输入的数字是:1

python3笔记(二)Python语言基础的更多相关文章

  1. [Python学习笔记1]Python语言基础 数学运算符 字符串 列表

    这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档: ...

  2. 【Python笔记】Python语言基础

    Python是一种解释性(没有编译).交互式.面向对象的语言 1.安装python编译器 版本:Python2.7比较普遍,Python不是向下兼容的软件,因此Python3.x有些东西不好找资料 2 ...

  3. Python语言基础-语法特点、保留字与标识符、变量、基本数据类型、运算符、基本输入输出、Python2.X与Python3.X区别

    Python语言基础 1.Python语法特点 注释: 单行注释:# #注释单行注释分为两种情况,例:第一种#用于计算bim数值bim=weight/(height*height)第二种:bim=we ...

  4. 零基础学Python--------第2章 Python语言基础

    第2章  Python语言基础 2.1 Python语法特点 2.11注释 在Python中,通常包括3种类型的注释,分别是单行注释.多行注释和中文编码声明注释. 1.单行注释 在Python中,使用 ...

  5. Python 语言基础

    Python 语言基础 Python 开发环境 计算机组成 编程语言(计算机语言)是人们为了控制计算机,而设计的一种符号和文字的组合,从而实现向计算机发出指令. 形式是符号和文字的组合 目的是为了控制 ...

  6. tensorflow学习笔记二:入门基础 好教程 可用

    http://www.cnblogs.com/denny402/p/5852083.html tensorflow学习笔记二:入门基础   TensorFlow用张量这种数据结构来表示所有的数据.用一 ...

  7. ArcPy开发教程1-面向ArcGIS的Python语言基础

    ArcPy开发教程1-面向ArcGIS的Python语言基础 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 第一节课 时间2019年2月26日 上午第一节 讲解:A ...

  8. 2.3 Python语言基础

    2.3 Python语言基础 1 语言语义(Language Semantics) 缩进,而不是括号 Python使用空格(tabs or spaces)来组织代码结构,而不是像R,C++,Java那 ...

  9. Python语言基础与应用 (P16)上机练习:基本数据类型

    本文是笔者在学习MOOC课程<Python语言基础与应用> (北京大学-陈斌)中根据上机课时的要求写下在代码 课程总链接: 中国大学MOOC B站 本节课链接 数值基本运算: 33和7+, ...

  10. 风变编程笔记(二)-Python爬虫精进

    第0关  认识爬虫 1. 浏览器的工作原理首先,我们在浏览器输入网址(也可以叫URL),然后浏览器向服务器传达了我们想访问某个网页的需求,这个过程就叫做[请求]紧接着,服务器把你想要的网站数据发送给浏 ...

随机推荐

  1. TCP粘包,拆包及解决方法

    在进行Java NIO学习时,发现,如果客户端连续不断的向服务端发送数据包时,服务端接收的数据会出现两个数据包粘在一起的情况,这就是TCP协议中经常会遇到的粘包以及拆包的问题.我们都知道TCP属于传输 ...

  2. 转--Python标准库之一句话概括

    作者原文链接 想掌握Python标准库,读它的官方文档很重要.本文并非此文档的复制版,而是对每一个库的一句话概括以及它的主要函数,由此用什么库心里就会有数了. 文本处理 string: 提供了字符集: ...

  3. 转--python 编码规范

    编程规范 1.1. 命名规范 1.1.1. [强制] 命名不能以下划线或美元符号开始和结尾 反例: name / __name / $Object / name / name$ / Object$ 1 ...

  4. vue中$mount与el区别

    vue中的$mount和el两者在使用中没有什么区别,都是将实例化后的vue挂载到指定的DOM元素中 用法: 如果在实例化vue时指定el,则该vue将会渲染在el对应的DOM中 反之 没有指定el, ...

  5. git初学 常用命令

    初学备忘: MAC 下 clone 项目的时候  记得  sudo -s  输入密码 获得 管理员权限,普通权限看不到 .babelrc 等 点开头的文件 ____——____——____——____ ...

  6. baiduTemplate.js 百度JS模板引擎

    baiduTemplate希望创造一个用户觉得“简单好用”的JS模板引擎 先展示两个例子,然后说说对baidutemplate.js的理解,从而将这一工具加到个人百宝箱里. <script id ...

  7. 汕头市队赛 SRM 07 D 天才麻将少女kpm

    这道题放了很久还是回来补了 D 天才麻将少女KPM SRM 07 背景&&描述 天才麻将少女KPM立志要在日麻界闯出一番名堂.     KPM上周叒打了n场麻将,但她这次又没控分,而且 ...

  8. Nginx URL匹配

      Nginx 下 location模块  可以实现对网页URL进行分析处理 location ~ .*\.(gif|jpg|jpeg|png|bmg|swf)$ { // 扩展名为gif|jpg|j ...

  9. AAA游戏中雪的实现

    现在越来越多的AAA游戏中都实现了逼真的雪的效果,比如战神4.地平线:黎明时分.荒野大镖客:救赎2.古墓丽影:崛起等都实现了不错的雪地效果.今天我们就来探究一下他们的实现方式.现在主流的实现方式都是通 ...

  10. printf 函数的实现原理

    /* * ===================================================================================== * * Filen ...