**2021年9月1号,某位菜鸡开始了大二生活,为了督促自己学习Python这门离谱而优秀的编程语言,我决定写篇博客记录自己的学习过程也当做自己的一份学习笔记。**
1.python3的安装
懒得要死,想看自己去链接里学一下吧
https://blog.csdn.net/Rengarhunt/article/details/103298207?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163049000416780261966066%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163049000416780261966066&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~hot_rank-3-103298207.pc_search_result_control_group&utm_term=python3.9&spm=1018.2226.3001.4187
2.Pycharm的破解激活方法
在CSDN里找了挺多方法,但版本问题导致都不好用,所以我选择哔哩哔哩
https://www.bilibili.com/video/BV1UK4y1w7hu
3.变量类型及运算符
3.1Python变量及其使用
3.1.1Python 变量的赋值
n = 10
变量的值不是一成不变的,它可以随时被修改,只要重新赋值即可;另外你也不用关心数据的类型,可以将不同类型的数据赋值给同一个变量
3.1.2Python 变量的使用
变量可以直接拿来使用不用去管啥地址啥的,另外变量不用去定义,但需要自己去赋值
Python是弱类型语言
变量无须声明就可以直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。
变量的数据类型可以随时改变,比如,同一个变量可以一会儿被赋值为整数,一会儿被赋值为字符串。
弱类型是说在书写代码时不用刻意关注类型,但是在编程语言的内部仍然是有类型的。
## 3.2Python数值类型(整形、浮点型和复数)
**3.2.1整数类型**
整数就是没有小数部分的数字,Python 中的整数包括正整数、0 和负整数。
整数不分类型,或者说它只有一种类型的整数。
Python 整数的取值范围是无限的,不管多大或者多小的数字,Python 都能轻松处理。
没有short long 等类型限制
**3.2.2小数,浮点数**
书写小数时必须包含一个小数点,否则会被 Python 当作整数处理
指数
2.1×10 5 =2.1E5
Python 能容纳极小和极大的浮点数。print 在输出浮点数时,会根据浮点数的长度和大小适当的舍去一部分数字,或者采用科学计数法。
**3.2.3复数类型**
复数(Complex)是 Python 的内置类型,直接书写即可。
a + bj
# a 表示实部,b 表示虚部。
c1 = 12 + 0.2j
print("c1Value: ", c1)
print(“c1Type”, type(c1))
c2 = 6 - 1.2j
print("c2Value: ", c2)
#对复数进行简单计算
print("c1+c2: ", c1+c2)
print("c1c2: ", c1c2)
输出结果
c1Value: (12+0.2j)
c1Type <class 'complex'>
c2Value: (6-1.2j)
c1+c2: (18-1j)
c1*c2: (72.24-13.2j)
#3.3Python字符串
3.3.1字符串
若干个字符的集合就是一个字符串(String)。Python 中的字符串必须由双引号" "或者单引号' '包围
“字符串内容”
'字符串内容
下面都是合法的字符串:
"123789"
"123abc"
"http://c.biancheng.net/python/"
"C语言中文网成立8年了"
处理字符串中的引号
若我写的字符串中存在引号则需要特殊处理
1. 'I\'m a great coder!'
\加' 进行转义
2. 使用不同的引号包围字符串
str1 = “I’m a great coder!” #使用双引号包围含有单引号的字符串
str2 = ‘引文双引号是",中文双引号是“’ #使用单引号包围含有双引号的字符串
print(str1)
print(str2)
字符串换行
Python 不是格式自由的语言,它对程序的换行、缩进都有严格的语法要求。
要想换行书写一个比较长的字符串,必须在行尾添加反斜杠\
```python
s2 = 'It took me six months to write this Python tutorial. \
Please give me more support. \
I will keep it updated.'
另外,Python 也支持表达式的换行,例如:
num = 20 + 3 / 4 + \
2 * 3
print(num)
使用三个单引号或者双引号可以对多行内容进行注释,这其实是 Python 长字符串的写法。所谓长字符串,就是可以直接换行(不用加反斜杠\)书写的字符串。
原始字符串
为了解决转义字符的问题,Python 支持原始字符串。在原始字符串中,\不会被当作转义字符,所有的内容都保持“原汁原味”的样子。
在普通字符串或者长字符串的开头加上 r 前缀,就变成了原始字符串,具体格式为:
str1 = r'原始字符串内容'
str2 = r"""原始字符串内容"""
Windows 路径改写成原始字符串的形式:
rstr = r'D:\Program Files\Python 3.8\python.exe'
print(rstr)
3.4Python bytes类型及用法
3.4.1Python bytes类型及用法
太菜了,看不明白,先这样写写
Python bytes 类型用来表示一个字节串。“字节串“不是编程术语,是我自己“捏造”的一个词,用来和字符串相呼应。
bytes 是 Python 3.x 新增的类型,在 Python 2.x 中是不存在的。
字节串(bytes)和字符串(string)的对比:
字符串由若干个字符组成,以字符为单位进行操作;字节串由若干个字节组成,以字节为单位进行操作。
字节串和字符串除了操作的数据单元不同之外,它们支持的所有方法都基本相同。
字节串和字符串都是不可变序列,不能随意增加和删除数据。
bytes 只负责以字节序列的形式(二进制形式)来存储数据,至于这些数据到底表示什么内容(字符串、数字、图片、音频等),完全由程序的解析方式决定。如果采用合适的字符编码方式(字符集),字节串可以恢复成字符串;反之亦然,字符串也可以转换成字节串。
说白了,bytes 只是简单地记录内存中的原始数据,至于如何使用这些数据,bytes 并不在意,你想怎么使用就怎么使用,bytes 并不约束你的行为。
bytes 类型的数据非常适合在互联网上传输,可以用于网络通信编程;bytes 也可以用来存储图片、音频、视频等二进制格式的文件。
字符串和 bytes 存在着千丝万缕的联系,我们可以通过字符串来创建 bytes 对象,或者说将字符串转换成 bytes 对象。有以下三种方法可以达到这个目的:
如果字符串的内容都是 ASCII 字符,那么直接在字符串前面添加b前缀就可以转换成 bytes。
bytes 是一个类,调用它的构造方法,也就是 bytes(),可以将字符串按照指定的字符集转换成 bytes;如果不指定字符集,那么默认采用 UTF-8。
字符串本身有一个 encode() 方法,该方法专门用来将字符串按照指定的字符集转换成对应的字节串;如果不指定字符集,那么默认采用 UTF-8。
**
3.4.2Python input()函数:获取用户输入的字符串
**
input() 是 Python 的内置函数,用于从控制台读取用户输入的内容。
input() 函数总是以字符串的形式来处理用户输入的内容,所以用户输入的内容可以包含任何字符
input() 函数的简单使用:
a = input("Enter a number: ")
b = input("Enter another number: ")
print("aType: ", type(a))
print("bType: ", type(b))
result = a + b
print("resultValue: ", result)
print("resultType: ", type(result))
运行结果示例:
Enter a number: 100↙
Enter another number: 45↙
aType: <class 'str'>
bType: <class 'str'>
resultValue: 10045
resultType: <class 'str'>
按理说输出结果应该是145 但是他输入的部分自己转化成了字符串,所以这里要用到强制类型转换。
a = input("Enter a number: ")
b = input("Enter another number: ")
a = float(a)
b = int(b)
print("aType: ", type(a))
print("bType: ", type(b))
result = a + b
print("resultValue: ", result)
print("resultType: ", type(result))
运行结果
Enter a number: 12.5↙
Enter another number: 64↙
aType: <class 'float'>
bType: <class 'int'>
resultValue: 76.5
resultType: <class 'float'>
输入多个参数的用法
3.4.3 print()函数高级用法
user_name = 'Charlie'
user_age = 8
#同时输出多个变量和字符串
print("读者名:",user_name,"年龄:",user_age)
输出
读者名: Charlie 年龄: 8
从输出结果来看,使用 print() 函数输出多个变量时,print() 函数默认以空格隔开多个变量
在默认情况下,print() 函数输出之后总会换行,这是因为 print() 函数的 end 参数的默认值是“\n”,这个“\n”就代表了换行。如果希望 print() 函数输出之后不会换行,则重设 end 参数即可,例如如下代码:
#设置end 参数,指定输出之后不再换行
```python
print(40,'\t',end="")
print(5O,'\t',end="")
print(60,'\t',end="")
40 50 60
## 3.5Python格式化字符串(格式化输出)
3.5.1
此处与C语言完全类似
print() 函数使用以%开头的转换说明符对各种类型的数据进行格式化输出,具体请看下表。
表 1 Python 转换说明符
转换说明符 解释
%d、%i 转换为带符号的十进制整数
%o 转换为带符号的八进制整数
%x、%X 转换为带符号的十六进制整数
%e 转化为科学计数法表示的浮点数(e 小写)
%E 转化为科学计数法表示的浮点数(E 大写)
%f、%F 转化为十进制浮点数
%g 智能选择使用 %f 或 %e 格式
%G 智能选择使用 %F 或 %E 格式
%c 格式化字符及其 ASCII 码
%r 使用 repr() 函数将表达式转换为字符串
%s 使用 str() 函数将表达式转换为字符串
转换说明符(Conversion Specifier)只是一个占位符,它会被后面表达式(变量、常量、数字、字符串、加减乘除等各种形式)的值代替。
【实例】输出一个整数:
age = 8
print("C语言中文网已经%d岁了!" % age)
运行结果:
C语言中文网已经8岁了!
在 print() 函数中,由引号包围的是格式化字符串,它相当于一个字符串模板,可以放置一些转换说明符(占位符)。本例的格式化字符串中包含一个%d说明符,它最终会被后面的 age 变量的值所替代。
中间的%是一个分隔符,它前面是格式化字符串,后面是要输出的表达式。
当然,格式化字符串中也可以包含多个转换说明符,这个时候也得提供多个表达式,用以替换对应的转换说明符;多个表达式必须使用小括号( )包围起来。请看下面的例子:
name = "C语言中文网"
age = 8
url = "http://c.biancheng.net/"
print("%s已经%d岁了,它的网址是%s。" % (name, age, url))
运行结果:
C语言中文网已经8岁了,它的网址是http://c.biancheng.net/。
总之,有几个占位符,后面就得跟着几个表达式。
**3.5.2指定最小宽度**
%10d 表示输出的整数宽度至少为 10;
```python
n = 1234567
print("n(10):%10d." % n)
print("n(5):%5d." % n)
n(10): 1234567.
n(5):1234567.
3.5.3对齐方式
,print() 输出的数据总是右对齐的。也就是说,当数据不够宽时,数据总是靠右边输出
- 指定左对齐
- 表示输出的数字总要带着符号;正数带+,负数带-。
0 表示宽度不足时补充 0,而不是补充空格。
3.5.4指定小数精度
对于小数(浮点数),print() 还允许指定小数点后的数字位数,也即指定小数的输出精度。
精度值需要放在最小宽度之后,中间用点号.隔开;也可以不写最小宽度,只写精度。具体格式如下:
%m.nf
%.nf
m 表示最小宽度,n 表示输出精度,.是必须存在的。
请看下面的代码:
f = 3.141592653
# 最小宽度为8,小数点后保留3位
print("%8.3f" % f)
# 最小宽度为8,小数点后保留3位,左边补0
print("%08.3f" % f)
# 最小宽度为8,小数点后保留3位,左边补0,带符号
print("%+08.3f" % f)
运行结果:
```python
3.142
0003.142
+003.142
3.6Python转义字符及用法
3.7数据类型转换
3.8算数运算符
4.Python控制流程
上面洋洋洒洒写的3 C语言基本都学过 ,知识加入了py特别的地方,接下来的其实也一样