文件编码

Python2中

在Python2中:默认文件编码是ASC II,所以无法正常输出中文,会报错。

  • 解决办法

在文件的开头添加# -- coding: UTF-8 -- 或者 # coding=utf-8

Python3中

在Python3中:默认文件编码是UTF-8,所以无需指定编码

IDE中(如pyCharm)

如果你使用IDE,则需要设置 py 文件存储的格式为 UTF-8等支持中文的编码,否则会报错

  • 解决办法
  1. File -> Settings -> 搜索encoding
  2. Global EncodingProject EncodingDefault encoding for properties files都修改为UTF-8


注释

在python中,有三种注释的方式

  • #单行注释
  • ‘’‘多行注释’’’
  • “”“多行注释”""

例如

'''
函数作用:
输出Hello world
''' """
作者:
张三
""" print("Hello world") #输出Hello world

多行语句

单行语句分隔为多行
  1. 利用反斜杠 \ 分隔
a = 1 + \
2 + \
3 #相当于a = 1 + 2 + 3
print(a)
  1. 利用括号分隔
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']

语句中包含 [], {} 或 () 括号就不需要使用多行连接符

在同一行写多条语句
print("Hello"); print("World")

可以在同一行写多条语句,语句之间用分号 ; 隔开


输入和输出

输入
name=input("Please input your name:")   #input将用户输入的内容作为字符串接收
print("Your name is ",name)

结果:

Please input your name:张三
Your name is 张三

解释:

通过调用函数input()来得到用户输入

input函数中的参数为用户提示,若无需提示,则省略参数即可。

用户输入的内容将以String保存,即name的类型为String
如果需要得到其他类型,则需要强制转换

输出
  1. 普通输出
print("你好")
print("你好","中国") #输出"你好 中国"
print() #输出换行
print("你好",end="") #输出"你好",但不换行

解释:

  • 默认情况下,输出后自动换行
  • 如果只想输出换行,则print()即可
  • 如果不想输出换行,则在最后添加参数end=""将结束符修改为无
  • 可以传入0到多个参数,参数的类型也无要求
  • 参数之间会以空格分隔,依次输出
  1. 格式化输出

通过格式化输出,可以将格式和数据分开。
python的格式化输出和其他语言相同,使用%d等占位符指定数据的格式。

将格式与数据分开的好处是:

  • 方便维护
  • 代码可读性高
  • 可以将数据按照不同格式输出(例如小数可精确到某一位)

示例:

name="张三"
age=18
sex="男" msg='''
---------
name:%s
age:%d
sex:%s
---------
''' % (name,age,sex) print(msg)

结果:

---------
name:张三
age:18
sex:男
---------

解释:

msg的类型为String。

代码中的%s、%d、%s为占位符,将会被后面的数据name、age和sex依次替换。

%s意为字符串,将会被替换为字符串的格式。

%d意为整数,将会被替换为整数的格式(若为小数,将会被取整)。

可以很直观地看到格式为:

---------
name:%s
age:%d
sex:%s
---------

整数占位符:

%d		//输出十进制
%o //输出无符号整数的八进制
%x //输出无符号整数的十六进制(字母小写)
%X //输出无符号整数的十六进制(字母大写) %5d //输出宽度为5(右对齐)
%-5d //输出宽度为5(左对齐)
%+5d //输出宽度为5(输出符号)
%05d //输出宽度为5(前面补0,而不是空格)
%#o //输出八进制前的0(进制前的标识符)

小数占位符:

%f		//输出小数(保留到小数点后6位)
%e,E //科学计数法,保留到小数点后6位(1.234560e+02)
%g,G //以%f或%e中较短的输出宽度输出小数 %10f //输出宽度为10(多出不会被截断)
%10.3f //输出宽度为10(保留到小数点后3位)

字符占位符:

%c		//输出单个字符
%s //输出字符串

其他占位符:

Python会将符号%和它后面的字符作为格式解析。
当我们需要输出%时

%%		//输出%就需要转义,这样就可以得到%了,而不是将它解析为占位符

变量

变量命名规则
  • 只能是数字、字母和_组成
  • 不能以数字开头
  • 不能以保留字命名
  • 支持中文,但是不建议使用中文作为变量名
  • 变量名区分大小写
  • 没有常量,通常用全部大写命名来表示常量

良好的命名规范:

  • 不使用中文作为变量名
  • 定义的名称应该有意义
  • 使用驼峰式命名、下划线分割单词
  • 用全部大写命名来表示常量
赋值
a=1
a='abc' #原本是int类型,可以被赋值为String类型
a,b=3,4     #相当于a=3,b=4
t=(3,4)
a,b=t #相当于a=3,b=4

解释:

Python是一种弱类型语言,所以定义变量无需指定类型,Python将根据值的类型自动判断。
Python是一种弱类型语言,所以原本为int类型的变量,可以被赋值为其他类型。

a=3,b=4这种形式的赋值可以写为a,b=3,4

赋值时,变量和内存空间的关系是怎样的?

Python为了节约内存,只会保留一份常量,即不同的变量如果内容相同则指向同一常量。
当其中一个变量内容改变时,就会指向新的内存空间。

a="变量1"
b="变量1"
b="变量2"

a和b的内容一开始是相同的,而且都是常量。所以它们指向同一内存空间。
当b的内容改变,变成另一个常量"变量2",它就会指向新的内存空间。
用运算符is或is not可以验证以上说法。

删除变量
a=1         #定义变量a
del a #删除变量a
#print(a) #报错

del专门用于删除变量
变量删除之后,若被调用则报错:not defined


运算符

算术运算符

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

运算符 描述 实例
+ a + b 的结果 30
- a - b 的结果 -10
* a * b 的结果 200;
“Hello” * 2的结果为HelloHello
/ b / a 的结果 2
% 取模 - 返回除法的余数 b % a 的结果 0
** 幂 - 返回x的y次幂 a**b 为10的20次方,输出结果 100000000000000000000
// 整除(平板除) - 返回商的整数部分(向下取整) 9//2的结果为4;
-9//2的结果为-5
比较运算符

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

运算符 描述 实例
== 等于 (a == b) 返回 False。
!= 不等于 (a != b) 返回 true.
> 大于 (a > b) 返回 False。
< 小于 (a < b) 返回 true。
>= 大于等于 (a >= b) 返回 False。
<= 小于等于 (a <= b) 返回 true。
赋值运算符

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

运算符 描述 实例
= 普通赋值运算符 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
逻辑运算符

在Python中,逻辑运算符有三个:andornot
它们分别是短路与短路或。重点在短路二字。

运算符 逻辑表达式 描述
and x and y 短路与
or x or y 短路或
not not x

and真值表:

逻辑表达式 结果
True and True TRUE
True and False FALSE
False and True FALSE
False and False FALSE

or真值表:

逻辑表达式 结果
True or True TRUE
True or False TRUE
False or True TRUE
False or False FALSE

not真值表:

逻辑表达式 结果
not True FALSE
not False TRUE
什么是短路?

在and中:

表达式3 = 表达式1 and 表达式2

当表达式1为False时,表达式3一定为False,那就不必计算表达式2。

在or中:

表达式3 = 表达式1 or 表达式2

当表达式1为True时,表达式3一定为True,那就不必计算表达式2

所以:

当通过表达式1可以得出结论时,就不会去计算后面的表达式(被忽略掉)。

例如:

False and print("Hello")      #无任何输出
True and print("Hello") #输出Hello
is、is not
  • is和is not用于判断两个变量的地址是否相同
  • 和==不一样,==用于判断两个变量的内容是否相同

例如:

a=[1,2]
b=[1,2]
print(a is b) #False
print(a == b) #True

解释:

a和b为引用类型(类似于C++中的指针),所以a和b虽然内容相同,但地址不同。

在前面的例子中:

a="变量1"
b="变量1"

a和b为基本数据类型,指向常量。所以a和b不仅内容相同,地址也相同。

位运算符

按位运算符是把数字看作二进制来进行计算的。

  • 这里假设a=60,b=13。则二进制如下:
a   = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
运算符 描述 实例
& 按位与 (a & b) 输出结果 12
二进制解释: 0000 1100
| 按位或 (a | b) 输出结果 61
二进制解释: 0011 1101
^ 按位异或 (a ^ b) 输出结果 49
二进制解释: 0011 0001
~ 按位取反 (~a ) 输出结果 -61
二进制解释: 1100 0011
一个有符号二进制数的补码形式
<< 左移动运算符
高位丢弃,低位补0
a << 2 输出结果 240
二进制解释: 1111 0000
>> 右移动运算符
低位丢弃,高位补0
a >> 2 输出结果 15
二进制解释: 0000 1111
运算符优先级
运算符 描述
** 指数 (最高优先级)
~ 按位翻转
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 ‘AND’
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符

流程控制语句

三大结构

计算机语言的三大结构:
顺序结构分支结构循环结构



分支结构-if语句
if a>b:
print("a>b")
print("a大于b")
elif a<b:
print("a<b")
print("a小于b")
else:
print("a=b")
print("a等于b")

每个条件后面,必须以冒号 : 结尾
利用缩进来分隔代码块

循环结构-while语句
while a>b:
a-=1 #语句1
print("xxxxx1") #语句1
else:
print("xxxxx2") #语句2

解释:

条件后需要以冒号 : 结尾
当条件成立时,循环执行语句1
当结束循环时,执行语句2

else可以用来关闭文件,做一些结束操作

循环结构-for语句
for i in range(3):
print(i) #语句1
else:
print("This is the end") #语句2

解释:

函数range(3)将产生0、1、2的序列,即i的值依次等于0、1、2
只要是序列,就能被for遍历,String也可以。

当条件成立时,循环执行语句1
当结束循环时,执行语句2

同样,else可以用来关闭文件,做一些结束操作

循环结构-break

break用于跳出当前循环

for i in range(5):
if i==3:
break
print(i)

结果:

0
1
2

解释:

range(5)会产生0、1、2、3、4序列, i 会依次遍历它们。
当 i 等于3时,跳出循环,所以不会输出3和4

循环结构-continue

continue语句会跳过后面的语句,继续循环

for i in range(5):
if i==3:
continue
print(i)

解释:

range(5)会产生0、1、2、3、4序列,i 会依次遍历它们。
当 i 等于3时,跳过语句print(i),所以不输出3,继续进行循环,再输出剩下的4后结束循环。

条件语句

在Python中,可以使用a>b>c形式的条件语句。
在分支语句和循环语句中都可以使用这种形式。

示例:

a=3
b=2
c=1
if a>b>c:
print("a>b>c")

解释:

当a>b,b>c时才会满足条件

02-Python基础的更多相关文章

  1. 02.python基础知识_02

    数据类型 1.整型 2.布尔值 3.字符串 4.列表 5.字典 6.集合 1.int(整型) i = 2 print(type(i)) 输出:<class 'int'> 2.bool(布尔 ...

  2. day 02 python 基础

    1.day1作业讲解 题目答案见day1 2.格式化输出 %占位符,s:字符串,d:数字 %%只是单纯的显示%(显示的%是后面的) #格式化输出 # % s d # name = input('请输入 ...

  3. python基础之02列表/元组/字典/set集合

    python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...

  4. Python基础教程-02

    <Python基础教程> 第3章 使用字符串 字符串方法find返回的并非布尔值.如果find像这样返回0,就意味着它在索引0处找到 了指定的子串 join可合并一个字符串列表,不能合并数 ...

  5. Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程

    [保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...

  6. python基础——类和实例

    python基础——类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都 ...

  7. python基础——使用模块

    python基础——使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env ...

  8. 第一篇:python基础

    python基础   python基础 本节内容 python起源 python的发展史 为什么选择python3 第一个python程序 变量定义 表达式和运算符 用户输入 流程控制 判断 流程控制 ...

  9. python基础教程

    转自:http://www.cnblogs.com/vamei/archive/2012/09/13/2682778.html Python快速教程 作者:Vamei 出处:http://www.cn ...

  10. Python基础-week05

    本节大纲:Author:http://www.cnblogs.com/Jame-mei 模块介绍 time & datetime模块 random os sys shutil json &am ...

随机推荐

  1. dotnet 使用 ConfigureAwait.Fody 库设置默认的 await 同步上下文切换配置

    在 dotnet 里面,使用 await 进行异步逻辑,默认是会尝试切换回调用 await 的线程同步上下文.这个机制对于大多数的上层应用来说都是符合逻辑且方便的逻辑,例如对于带 UI 线程的 WPF ...

  2. k8s之dns问题

    问题1: 描述:pod新建好后,无法ping通域名(无论是外网域名还是内网域名),但是可以ping通IP(包含外网IP和内网IP),不包括kube-dns的IP,和pod同一网段IP可以ping通 # ...

  3. Kafka源码分析(四) - Server端-请求处理框架

    系列文章目录 https://zhuanlan.zhihu.com/p/367683572 一. 总体结构 先给一张概览图: 服务端请求处理过程涉及到两个模块:kafka.network和kafka. ...

  4. 06. rails gem 安装mysql

    修改Gamefile Gamefile 里添加 gem 'mysql2' 执行命令行 bundle 可以看到下图片上已经安装好依赖了 修改配置文件 修改config/database.yml文件 # ...

  5. List<T> 根据对象中的属性处理数据

    一.创建测试数据 UserEntity user1 = UserEntity.builder().id(1).name("张三").sex(0).build(); UserEnti ...

  6. Flutter 多线程实现

    异步Isolate实现多线程   最近在看Flutter开发相关知识点,对照着Android原生,探究了下多线程实现方式.在Flutter中有 Isolate,隔离,它的实现原理并不是内存共享的,它更 ...

  7. web3.js:使用eth包

    原文在这里 简介 web3-eth包提供了一套强大的功能,可以与以太坊区块链和智能合约进行交互.在本教程中,我们将指导您如何使用web3.js版本4的web3-eth包的基础知识.我们将在整个示例中使 ...

  8. 2022最新的Centos6.10安装mysql8.0

    一.系统源替换 1.备份系统源 (1)进入源的默认路径 cd /etc/yum.repos.d (2)查看一下 (3)备份 cp CentOS-Base.repo CentOS-Base-Back.r ...

  9. MyBatis-Plus 实现多租户管理的实践

    本文主要讲解使用Mybatis-Plus结合dynamic-datasource来实现多租户管理 在现代企业应用中,多租户(Multi-Tenant)架构已经成为一个非常重要的设计模式.多租户架构允许 ...

  10. SCSS随笔-mixin与@extend

    变量 定义变量 $color-white: white; 使用变量 body { background-color: $color-white; } @mixin 与 @include 定义mixin ...