JJJ:python学习笔记1

p4

在这里插入图片描述

在这里插入图片描述
没有编译的过程
源码和输入得到输出

静态语言:编译型
脚本语言:解释型

p5

又叫做胶水语言
在这里插入图片描述

在这里插入图片描述

p7

在这里插入图片描述

p8

在这里插入图片描述

p10

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

p12

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

p13

在这里插入图片描述

python是动态语言
变量的类型可以改变

在这里插入图片描述

p14

在这里插入图片描述
整数类型是python中的不可变数据类型

在这里插入图片描述

在这里插入图片描述

p15

在这里插入图片描述

第二章

print函数

#print的完整格式为:print(value, ..., sep = '', end = '\n', file=None)

a=100
b=50

#直接输出变量
print(a)
print(b)

#输出字符串
print("aaaa")
#也可以是单引号,或者三个单引号或者三个双引号
print('aaaa')
print('''aaaa''')
print("""aaaa""")

#使用逗号实现同一行输入
print(a, b, "aaabbb")
#会发现a, b, 和字符串"aaabbb" 之间是以空格为间距的
#print的完整格式为:print(value, ..., sep = '', end = '\n', file=None)
#逗号之间的间隔符由sep指定,可以为空'',结束符由end指定,file指定要写入的文件
#linux下python文件无法包含中文解决方法:在代码开头加上 # -*- coding: utf-8 -*-


#使用ascii码输出字符,需要用到内置函数chr
print('b')
print(chr(98))
#chr()的逆函数ord()
print(ord('b'))
print(chr(ord('D')))
#chr()和ord()可以完成
#1、acsii字符和码的转换
#2、汉字unicode字符和码的转换
print(chr(ord('江')), chr(ord('苏')), sep = '=')

#将数据输出到文件当中
#借助open, print两个内置函数
fp = open('note.txt', 'w') #打开文件,w是写的意思
print('123456zz', file = fp)
fp.close() #关闭文件

#使用连接符 + 来连接两个字符串(字符串和数字不能连,只能连两个字符串)
print('abc' + '123')

input函数

'''
语法结构:
x = input('提示文字')
无论输入的数据是什么,input返回的数据类型都是字符串型
'''
name = input('请输入您的姓名:')
print('我叫' + name)

'''
如果想要接收整数类型,并把它保存到变量中,需要使用内置函数 int()
'''
num = input('输入数字:')
print('数字为:' + num)
print('数字为:' + int(num)) #此处会报错,因为+只能连接字符串,int(num)已经是整数了

注释

#单行注释

'''
多行注释1
多行注释2
'''

"""
多行注释1
多行注释2
"""

缩进

通过缩进来体现语句之间的逻辑关系

# 类的定义
class student:
    pass

# 函数的定义
def fun():
    pass

第三章 数据类型和运算符

保留字和标识符 p12

保留字

具有特殊意义的单词,

不可以做为变量、函数、类、模块或其他对象名来使用

使用keyword函数来查看保留字

import keyword
print(keyword.kwlist) # 获取保留字的列表
print(len(keyword.kwlist)) # 获取保留字的个数

保留字严格区分大小写

标识符

就是一个名字
主要给变量、函数、类、模块或其他对象名来使用

标识符不能使用保留字

由字符(英文、中文)、下划线、数字组成;
不能由数字开头
尽量不要使用下划线开头,一般是有特殊意义的才用

区分大小写

包名全小写,不要使用下划线

类名采用单词首字母大写形式(Pascal风格),如MyClass

模块内部的类采用下划线 + Pascal风格的类名组成,如 _InnerClass

常量命名全大写,可以下划线

下面三条先了解
使用单下划线开头的模块、变量、函数是受保护的,不能被import导入
使用双下划线开头的实例变量或方法是类私有的
使用双下划线开头和结尾是Python的专用标识,如__init__()表示初始化函数

变量和常量 p12

变量

变量的类型是可以变化:可以先赋值一个int型,后面也可以赋值一个字符串给它
因此python叫动态语言

a=100 # 创建一个整型变量a,并赋值为8
print(a)
a='123aaa'
print(a)

使用内置函数type()来确定变量的类型

a=100 # 创建一个整型变量a,并赋值为8
print(a)
b='123aaa' # 创建一个字符串变量b,并赋值为
print(b)
# 借助内置函数type() 来确定一个变量的类型
print('a的数据类型是',type(a), type(b))
print('a的数据类型是'+type(a)) # 此行会报错,可见type()返回不是字符串类型

python如何动态修改数据类型?
很简单。赋给同一个变量不同的值就可以
代码块见上两个

python中允许连等号

a=b=1024

通过内置函数id()查看变量的内存地址

a=b=1024
print('a:',id(a))
print('b:',id(b))
# 可以看到两个内存地址是一样的

a=666
print(b)
print(id(a),id(b)) # 此时b还是原值1024,并且a,b的内存地址不一样了

变量是标识符的一种,
因此命名首先要遵循标识符的规范
不能使用保留字
尽量别用大写字母I和字母o
选择有意义的单词做为变量名

常量

python中,没有专门定义常量的关键字
只要在变量命名时,所有字母都是大写(可以有下划线),就认为它是常量
常量约定定义完了就不要去改它的值,硬要改也可以

数值类型 p13

整数类型,浮点数类型,复数类型

整数类型

没有小数部分的数
包含:正整数,负整数和0

进制种类引导符号描述
十进制123,1024
二进制0b或者0B由字符0和1组成,0b101
八进制0o或者0O由字符0到7组成,如0o127456
十六进制0x或0X由字符0-9, a-f, A-F组成,0x10f

数值型、整数类型时不可变数据类型(详见后面)

代码示例

num=987 # 十进制
num2=0b10101101
num3=0o765
num4=0xabf
print(num)
print(num2)
print(num3)
print(num4)
# 可以看到默认是以十进制输出的
浮点数类型

表示有小数点的数值,由整数部分和小数部分组成

10是整数类型,10.0是浮点数类型

代码示例:

# 使用type内置函数来查看变量的数据类型
height=187.6
print(height, type(height))

x=1
y=1.0
print('x的数据类型:',type(x))
print('y的数据类型:',type(y))

两个浮点数类型的数在进行运算时,有一定的概率运算结果后增加一些不确定的尾数

print(0.1+0.2)
print(round(0.1+0.2, 1))

round()是python自带的一个函数,用于数字的四舍五入。
使用方法:round(number,digits)

digits>0,四舍五入到指定的小数位
digits=0, 四舍五入到最接近的整数
digits<0 ,在小数点左侧进行四舍五入
如果round()函数只有number这个参数,等同于digits=0

科学计数法

x=1.99E141
print('科学计数法:',x,' x的数据类型:',type(x))
# 依然是浮点数类型
复数

由实部和虚部组成

x=123+456j
print('实数部分:',x.real,type(x.real))
print('虚数部分:',x.imag,type(x.imag))
# 实数和虚数部分默认都是float类型
常用的数值类型转换函数

int() :把浮点数、字符串(串内并须是整数的字符表示,否则int会报错)转成整型
float():链接
str():str( )函数能将int类型、float类型的数据转换成字符串类型。 str(100) 、str(100.0)

字符串类型 p15

连续的字符序列

包括计算机所能识别的一切字符

字符串的界定符:单引号、双引号、三引号

# 单引号、双引号、三三引号、三双引号
city='天津'
addr="大街3号"
num='''200a'''
age="""18"""
print(city)
print(addr)
print(num)
print(age)

字符串类型也是不可变数据类型

多行字符串使用三个单引号或者三个双引号表示

info='''aaa
bbb
ccc
'''

info2="""aaa
bbb
ccc
"""
转义字符
转义字符描述说明
\n换行符
\ttab键相当于是
\"双引号
\’单引号
\\一个反斜杠
print('北京')
print('欢迎您')

print('北京\n欢迎您')

输出单引号、双引号、斜杠

print('\'') # 输出单引号
print('\"') # 输出双引号
print('\\') # 输出斜杠

使转义字符失效的字符:r或者R

print(r'北\n京\n欢\n迎\n你')
print(R'北\n京\n欢\n迎\n你')
索引

对字符串中某个字符的检索称为索引

两种下标记法:
1、从最左边开始:0,1,2,3,…
2、从最右边开始:…,-4,-3,-2,-1

s='HELLOWORLD'
print(s[0],s[-10]) # 都表示字符H
print('北京欢迎你'[4]) # 直接把上面的s替换成字符串
print('北京欢迎你'[-1]) # 下标为负数,从最左边开始检索,为你
切片

对字符串中某个子串或区间的检索

s='HELLOWORLD'
# 注意,包含2,不包含7
print(s[2:7]) # 从2开始到7结束  LLOWO
print(s[-8:-3]) # 从右向左切片,注意还是不包含右边的,从-4开始,还是LLOWO

print(s[:5]) # 不加开始,默认从0开始
print(s[1:]) # 不加末尾,默认到最后结束
常用的字符串操作
操作符描述说明
x+y将字符串x和y连接起来
xn 或 nx赋值n次字符串x
x in s若x是s的子串,返回True,否则返回False
x='2022年'
y='北京冬奥会'

print(x+y)
print('北京' in y)
print('上海' in y)
print(x*10)

布尔类型 p16

使用保留字True和False来表示真和假

x='2022年'
y='北京冬奥会'

print(x+y)
print('北京' in y)
print('上海' in y)
print(x*10)

使用内置函数bool()去测试一个对象的布尔值

#非0的数值都是True
print(bool(18))
print(bool(-1))
print(bool(0))
print(bool(0.1))

#非空字符串的布尔值是True
print(bool('北京欢迎你'))
print(bool(''))

#False和None的布尔值是Flase
print(bool(False))
print(bool(None))

布尔值为False的情况如下:
1、Flase 或者 None
2、数值中的0,0.0,虚数0
3、空序列,包含字符串、空元素、空列表、空集合
4、自定义对象的实例 bool()返回Flase,或者 len()返回0的

eval函数 p18

内置函数(不需要使用任何前缀,直接使用)

用于去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符串

一般和input函数一起使用

s='3.14+3'
print(type(s))
x=eval(s)  # 此时,变量x就表示  3.14+3
print(x,type(x))

# eval()函数一般与input()一起使用,用来获取用户输入的数值型
age=eval(input('请输入您的年龄:'))
print(age,type(age))


hello='北京欢迎你'
print(hello)
print(eval('hello'))
print(eval('北京欢迎你'))  # 此处会报错,因为去掉引号后,变成 打印 北京欢迎你,系统将其视为变量,但此变量未背定义

算术运算符 p19

用于处理四则运算的符号

运算符描述说明示例结果
+加法1+12
-减法1-10
*乘法2*36
/除法(结果是浮点型)10/25.0
//整除(结果是整型)10//33
%取余10%31
**幂运算2**416

运算优先级由高到低:
第一级:**
第二级:*、/、%、//
第三级:+、-

赋值运算符 p20

为变量进行赋值操作

=

延申:+=、-=、*=、/=、//=、…

x=20 # 直接赋值
y=10

x=x+y # 等效于 x+=y
print(x)

x+=y # 40
print(x) # x变为40

x-=y # 30

X*=y # 300

x/=y #注意此时x变为30.0,发生了类型转换,变为float类型

x%=2 # 0.0  30.0和2取余,是0.0

Python支持链式赋值

a=b=c=100

字符串分解赋值 p26

a,b,c,d='room' # 字符串分解赋值
# 等效于下面
a='r'
b='o'
c='o'
d='m'

Python支持系列解包赋值

a,b=10,20 # 相当于执行了a=10, b=20

利用系列解包赋值 交换两个变量的值

a,b=b,a
a,b,c=b,c,a # 也是可以的

比较运算符 p21

又叫关系运算符

比较的结果是True或False

==
!=
>
<
>=
<=
(上面这几个用法和c差不多)

逻辑运算符 p22

对真和假两种布尔值再进行运算,结果依然是一个布尔值

运算符描述说明用法结合方向
and逻辑与表达式1 and 表达式2从左到右
or逻辑或表达式1 or 表达式2从左到右
not逻辑非not 表达式从右到左
print(True and True)
print(True and False)
print(not False)

print('-'*40)

print(8>7 and 7>6)
print(8<7 and 10/0) # 当第一个表达式报错时,and的第二个表达式就没必要计算了

位运算和运算符的优先级 p23

位运算

位运算符把数字看作二进制数来计算

进行位运算时需要先把两个数转换成2进制

按位与计算 (&0000 0000 0000 1100
&	0000 0000 0000 1000
------------------------
	0000 0000 0000 1000

按位或运算 (|0000 0000 0000 0100
|	0000 0000 0000 1000
-------------------------
	0000 0000 0000 1100


按 位异或 运算 (^)  对应位置上的数,相同为0,相异为1
	0000 0000 0001 1111
^	0000 0000 0001 0110
------------------------
	0000 0000 0000 1001

按 位取反 运算 (~~ 	0000 0000 0111 1011
----------------------
	1111 1111 1000 0100

左移位运算 (<<)
将一个二进制数向左移动指定的位数,左边(高位端)溢出的位被丢弃,右边(低位端)的空位用0补充


右移位运算 (>>)
将一个二进制数向右移动指定的位数,右边(低位端)溢出的位被丢弃;左边(高位端)的空位端,若最高位是0(正数)左侧空位填0,若最高位是1(负数),左侧空位填1
print('按位与运算:',12&8)
print('按位或运算:',4|8)
print('按位异或运算:',31^32)
print('按位取反运算:',~123)
print('左移位运算',2<<3) # 表示2向左移动3位
print('右移位运算',8>>2)
print('右移位运算', -8》》2) # -2

补码相关运算:
负数的反码=其自身的原码除符号位以外取反
负数的补码=其自身的反码+1

一个数的补码的补码还是自己

运算符的优先级
运算符描述说明
**幂运算
~、+、-取反、正号、负号
*、/、//、%算术运算符
+、-算术运算符
<<、>>移位运算符
&按位与
^按位异或
|按位或
<、<=、>、>=、!=、==比较运算符
=赋值运算符

第4章 程序的流程控制 p25

程序的描述方式 p25

程序有三种描述方式:
1、自然语言:
使用人类语言,直接描述程序

2、流程图
图形体现:流程

3、伪代码
介于自然语言和编程语言之间的一种算法描述语言

程序的组织结构:
1、顺序结构
截图待补充

2、选择/分支结构
截图待补充

3、循环结构
截图待补充

顺序结构 p26

从上到下,依次执行

# 赋值运算符的顺序 从右到左
name='张三'
age=20
a=b=c=d=100 # 链式赋值
a,b,c,d='room' #字符串分解赋值
print(a)
print(b)
print(c)
print(d)

选择结构 p27

又叫做分支结构

按照条件选择执行不同的代码段

单分支结构

格式

# 冒号和缩进至关重要
if 表达式:
	语句块

代码实例:

number=eval(input('请输入您的六位中奖号码:'))

if number==987654:
    print('中奖了')

if number!=987654:
    print('没中奖')

if 后面可以是布尔型,也可是其他值

if a%2:
	print

注意 if not 表达式: 用法

n=98
if n%2:
    print(n,'为奇数')

if not n%2:
    print(n,'为偶数')

判断是否是空字符串:

x=input('请输入一个字符串:')
if x: # 在Python中一切皆对象,每个对象都有一个布尔值。非空字符串的布尔值是True,空字符串的布尔值是False
    print(x,'为非空字符串')

在使用if语句时,若语句块中只有一句代码,可以将语句块直接写在冒号后面:

n=98
if n%2:print(n,'为奇数')
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值