python学习:一周总结

Python学习:一周总结

Python简介

​ Python是由荷兰人吉多·范罗苏姆(Guido von Rossum,后面称呼为Guido)发明的一种编程语言,是目前世界上最受欢迎和拥有最多用户群体的编程语言。

python解释器

  • CPython —> 用C语言实现的Python解释器
  • JPython —> 用Java实现的Python解释器
  • IronPython ----> 用C#实现的Python解释器
  • PyPy ----> 用Python实现的Python解释器

说明:大多数软件的版本号一般分为三段,形如A.B.C,其中A表示大版本号,当软件整体重写升级或出现不向后兼容的改变时,才会增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(例如:修复了某个Bug),只要有修改就增加C。

Python优点

  • 简单,结构简单,相对于其他语言来说,Python更容易上手,对新手小白更友好
  • 注重开发效率而不是执行效率,能用更少的代码做更多的事情。
  • 开放源代码,拥有强大的社区和生态圈。
  • 易于维护,Python的成功在于它的源代码是相当容易维护的。
  • 可拓展,如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

Python缺点

  • 运行速度,有速度要求的话,用 C++ 改写关键部分吧。
  • 构架选择太多(没有像 C# 这样的官方 .net 构架,也没有像 ruby 由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。

Python第一个代码

print():打印,输入

# :单行注释,可以注释掉从#开始后面一整行的内容

''' ''':多行注释,通常用于添加多行说明性内容

"""
hello,world

Author:悾格
"""
# hello,world
print('hello,world!')

变量

程序是指令的集合

写程序就是用指令控制计算机做我们想让它做的事情

​ 计算机有两个关键点:

一是要将存储设备与*处理器分开

二是将数据以二进制方式编码

计算机是使用二进制计数的,不管什么数据到了计算机内存中都是以二进制形式存在的

变量是数据的载体,就是一块用来保存数据的内存空间,变量的值可以被读取和修改,这是所有计算和控制的基础。

数据类型

  • 整型(int):Python中可以处理任意大小的整数,而且支持二进制(如0b100,换算成十进制是4)、八进制(如0o100,换算成十进制是64)、十进制(100)和十六进制(0x100,换算成十进制是256)的表示法。
  • 浮点型(float):浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e2)。
  • 字符串型(str):字符串是以单引号或双引号括起来的任意文本,比如'hello'"hello"
  • 布尔型(bool):布尔值只有TrueFalse两种值,要么是True,要么是False

变量命名

  • 变量名:字母(Unicode字符)、数字、下划线,不能使用特殊字符,数字不能开头
  • 变量名是区分大小写的(大小写敏感,x和X是两个不同的变量名)
  • 不能使用Python中的关键字(Python代码中有特殊含义的单词)和保留字(已经Python)
  • 见名知意(看到变量的名字,就能知道它代表了什么意思)
  • 变量的命名使用全使用小写,多个单词用下划线进行连接(Snake case)

type()函数:用于查看数据类型

a = 123
b = 1.23
c = 'hello'
d = True
e = 2 < 1
f = 3 + 5j
# type()函数,查看数据类型
# int --> integer,整型
print(a, type(a))
# float,浮点型
print(b, type(b))
# str --> string,字符串型
print(c, type(c))
# bool,布尔型(True/False)
print(d, type(d))
print(e, type(e))
# complex(复数类型)
print(f, type(f))

整数的表示方式

# 十进制计数法
a = 110
# 八进制计数法`0o`
b = 0o110
# 十六进制计数法`0x`
c = 0x110
# 二进制计数法`0b`
d = 0b01010101
print(a, b, c, d)
# bin()函数:十进制转二进制
print(bin(47))
# oct()函数:十进制转八进制
print(oct(72))
# hex()函数:十进制转十六进制
print(hex(272))

运算符

赋值运算符:右边的值赋给左边(变量) —> = += -= *= /= %= **=
算术运算符: —————————————> + - * / // * * %
复合的赋值运算符:———————> += -= *= /= …
关系运算符(比较运算符) —> > < >= <= == != ----->产生布尔值(True / False)
逻辑运算符:把两个布尔值处理成一个布尔值(做多个布尔值的组合)——————————> and(与) / or(或) / not(非)

格式化输出

# 使用input函数从键盘输入数据
# 使用int函数将输入的内容处理成整数(integer)
# 使用float函数将输入的内容处理成浮点数(integer)
#
a1 = float(input('a1 = '))
b2 = float(input('b2 = '))

# 第一种
# ‘%f’是浮点数的占位符,‘%d’是整数的占位符
# %.1f 浮点数保留一位小数,%.2f保留两位小数......
print('%f + %f = %f' % (a1, b2, a1 + b2))
print('%f - %f = %f' % (a1, b2, a1 - b2))
print('%f * %f = %f' % (a1, b2, a1 * b2))
print('%f / %f = %f' % (a1, b2, a1 / b2))
print('%f // %f = %f' % (a1, b2, a1 // b2))
# 第一个%是转义作用,不能只能写一个%号
print('%f %% %f = %f' % (a1, b2, a1 % b2))
print('%f ** %f = %f' % (a1, b2, a1 ** b2))

# 第二种
# f - format - 格式化字符串
# :.1f保留一位小数,:.2f保留两位小数
print(f'{a1} + {b2} = {a1 + b2:.1f}')
print(f'{a1} - {b2} = {a1 - b2:.2f}')
print(f'{a1} * {b2} = {a1 * b2:.3f}')
print(f'{a1} / {b2} = {a1 / b2}')
print(f'{a1} // {b2} = {a1 // b2}')
print(f'{a1} ** {b2} = {a1 ** b2}')
print(f'{a1} % {b2} = {a1 % b2}')

运算符优先级

python学习:一周总结

运算符和表达式对于任何一门编程语言都是非常重要的

分支结构

​ **顺序结构:**在初次使用python代码时,我们写的python代码都是一条一条语句按顺序执行,这种代码结构统称为顺序结构。

​ **分支结构:**代码中有一条或多条执行路径,但是只有其中一条会被执行

if语句

因此,要进行分支结构就需要使用if语句,其中的关键字有ifelifelse。这些关键字使用后需要在其后面加冒号(英文状态下的:):

if:条件语句,通常与else使用,也可单独使用,表示选择分支

elif:在有if前提下,使用elif可以创建更多的分支

else:否则语句,if语句下的另一个选择分支,不可单独使用

"""
分支结构(选择结构)的例子

代码中有多条执行路径,但是只有其中一条会被执行

admin / Admin123!!

Author:悾格
"""
username = input('用户名:')
password = input('密码:')
if username == 'admin' and password == 'Admin123!!':
    print('登录成功!')
    print('欢迎使用XXX系统!')
    print('客服热线:400-800-8800')
else:
    print('登录失败!')
    print('用户名或密码错误!')
print('程序结束,再见!')

**提示:**if和else 的最后面有一个:,它是用英文输入法输入的冒号;程序中输入的’、"、=、(、)等特殊字符,都是在英文输入法状态下输入的。有很多初学者经常不注意这一点,结果运行代码的时候就会遇到很多莫名其妙的错误提示。强烈建议大家在写代码的时候都打开英文输入法(注意是英文输入法而不是中文输入法的英文输入模式),这样可以避免很多不必要的麻烦。

分段函数求值

分支结构可以嵌套使用,但一定要注意嵌套的深度,嵌套深度太深直接影响代码的可读性

代码块:保持相同的缩进的代码就属于同一个代码块

"""
 分段函数求值
       3x - 5, x > 1
f(x) = x + 2, -1 <= x <= 1
       5x + 3, x < -1
       
Author:悾格
"""

x = float(input('x = '))
if x > 1:
    y = 3 * x - 5
elif x >= -1:
    y = x + 2
else:
    y = 5 * x + 3
print(f'f(x) = {y}')

循环结构

​ 在写程序时,一定会遇到需要重复运行的代码,例如,我们在需要重复打印一串字符hello,world!时,就需要重复输入代码,会增加代码的容量,所以在这里我们就可以使用重复结构,在结构中嵌套该语句,就可以得到我们需要的打印数量。

for in循环

​ 明确循环执行的次数,使用for in循环.

while循环

​ 不明确循环执行的次数,就可以使用while循环.

while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True则继续循环;表达式的值为False则结束循环。

分支结构和循环结构非常重要,是构造程序逻辑的基础,一定要通过大量的练习来达到融会贯通

容器型数据类型(用一个变量可以保存多个数据)

  • 列表(list) ----> 1.元素过长时,可以进行换行缩进,不影响列表中的元素
"""
example02 - 容器型数据类型(用一个变量可以保存多个数据)


Author:悾格
"""

# 创建列表的自变量语法
num = [10, 100, 1000]
rules = ['加油', '开心', '快乐', '高兴', '激动']

# 追加元素(把元素加到列表的末尾)
num.append(100)
# 插入元素(在指定位置插入元素)
num.insert(0, 1)

print(num)
# 删除元素(默认删除最后一个元素)
rules.pop()
rules.pop()

print(rules)
# 列表的遍历(把每个元素依次取出)

"""
example03 - 列表的遍历(把每个元素依次取出来)

Author:悾格
"""

# 正向索引:列表从头部开始算起,以0为下标,依次增加;
# 反向索引:从未部开始,以-1为下标,依次减小
num = [35, 98, 12, 27, 66]
# print(num[0], num[-2])

for i in range(len(num)):
    print(num[i])
    num[i] += 1
    print(num[i])
print(num)



# 对列表进行读操作的for循环,无序号
for x in num:
    print(x)
# 有序号
# 先通过enumerate函数对列表进行预处理
# 循环遍历的时候既可以获取到索引(下标)又可以获取到元素
for i, x in enumerate(num):
    print(i, x)

# 对列表进行读写操作的for循环,有序号
for i in range(len(num)):
    print(num[i])
    num[i] = 100
print(num)

上一篇:郑州轻工业大学OJ 2834.小凯的书架 题解 线段树二分


下一篇:java入门 - 日期