个人笔记,同时也记录着本人的学习轨迹~ 附有目录便于查阅碎片知识
如果什么不足之处也欢迎大家来指正
更多系列欢迎大家戳主页去阅读~
完整Python学习戳这里~~~
完整Python学习戳这里~~~
完整Python学习戳这里~~~
ch1 Python基本语法
一、变量、数据类型、表达式、输入输出
1.变量
变量顾名思义就是一个可以随时改变内容的容器的名称,可以给某一个变量赋予任意的数值或者是文字内容。
Python为一种解释性语言,所以在使用变量的时候不用定义声明数据类型
(1)变量的使用
1.基本语法为:变量名称 = 变量值
score = 80
fruit = '橙子'
height = 1.81
# 上面都是正确的变量赋值方式
"#"是Python的注释符号,和这个符号同一行后面的内容都不会被识别运行
还有一种注释符号是各用三个单引号来包括起来,示例如下:
'''
这样引号中间不论几行都会被注释起来~~
'''
2.变量可以连续赋值
a = b = c = d =20 # 四个值全部为20
3.Python特色赋值方式
a,b = 10,20 #特色赋值,a值为10,b数值为20
利用这个特色方式,我们可以轻易进行数值交换
a,b = 10,20
a,b = b,a # a和b的数值交换了,a值为20,b值为10
(2)变量的删除
如果变量不再使用,可以将变量删除(释放)以节省内存,具体用del实现
del score # 将变量score删除
(3)变量的命名
需要遵守的规则如下:
1.变量第一个符号必须是字母、下划线_、或中文(最好还是不用中文,会降低程序移植性)
2.只能由字母(区分大小写)、下划线、中文、数字组成变量名称
3.变量名称不能与Python保留字相同(如and array del if while is or for range等)
(4)变量的输出
Python库里面给与我们一种标准输出方式,就是采用print函数
使用方式:print(变量一,变量二,变量三,…)
print('我是一条小青龙') # 屏幕输出这句话
a,b = 10,'香蕉'
print(a,b) #输出a和b的内容,中间用空格隔开(同理想同时n个变量,就用逗号分隔开)
2.数据类型
(1)整型
a = 0b1010 # 二进制整型,用0b表示
b = 0o12 # 八进制整型,用0o表示
c = 10 # 十进制整型
d = 0xa # 十六进制整型,用0x表示
type——用来辨别变量地数据类型
print(type(a)) # 输出<class 'int'>
(2)浮点数
a = .4 # 小数点前不写数字默认为0.4
b = 10.2 # 10.2
c = 1e4 # 科学计数法1*10四次方
d = 1e-4 # 科学计数法1*10负四次方
print(type(a)) # 输出<class 'float'>
(3)字符串
1.字符串的创建
字符串通常为用单引号或双引号包起来的变量
boy = '小明'
girl = "小红" #这两种方式都能正确表示字符串
print(type(a)) # 输出<class 'str'>
如果字符串里面想要有特殊字符例如\ ’ ‘’%等,需要一些转义字符
'''
\'代表单引号 \\代表反斜杠 \''代表双引号
%%代表百分号 \n代表换行 \t代表tab键 示例如下:
'''
TEM = '这句话我想有单引号\'然后换个行\n想有百分号%%'
# 输出结果为:
# 这句话我想有单引号'然后换个行
# 想有百分号%
2.字符串的访问
字符串的访问可以通过仿数组的形式,通过下角标来使用某一个字符
下角标从0开始,负数代表从后往前访问
word = 'hello'
a = word[0] # 第一个字母h
b = word[2] # 第三个字母l
c = word[-1] # 倒数第一个字母o
3.字符串的进阶应用
(1)切片访问(继续用上面的word=‘hello’) 用冒号来控制范围
a = 'abcdefg'
b = a[2:5] # 从a[2]开始,逐个往后提取(5-2=3)个字符
print(b,type(b)) # 输出结果为cde b的数据类型依旧是str
print(a[2:]) # 如果后面只写一个冒号 代表从a[2]开始提取到最后 cdefg
print(a[:3]) # 如果前面只写一个冒号 代表从a[0]开始提取三个字符 abc
(2)字符串的运算操作
# 用加法可以直接连接字符串
a='abc'
b='def!'
print(a+b) # abcdef!
# 乘法的意思是将字符串重复复制多少次
c=a*4
print(c) #abcabcabcabc
# 用len()可以访问字符串长度
print(len(a)) # 输出值为3
(4)布尔与None
1.bool类型 用于判断某一个条件是真是假
a = True
b = False
# 注意首字符大写!!!!!!!!!
2.None 代表变量为空(不是被删除了,也不为0)
a = None
print(a) # 输出None
(5)数据类型的转换
Python中数据类型转换格式为:数据类型(要改变的变量),例:
a = '123'
print(a,type(a)) # 123 <class 'str'>
a = int(a)
print(a,type(a)) # 123 <class 'int'>
3.运算符与表达式
表达式是什么?1+1=2 这个“1+1”就是最典型的表达式
根据操作数的个数,将运算符分为单目运算符和双目运算符
(1)单目运算符
单目运算符只有一个操作数,位于某个操作数的前方
例如:- 还有not
“-”代表取相反数,not代表非某某,比如not True就是False
a,b = 10,True
a,b = -a,not b
print(a,b) # -10 False
(2)双目运算符
1.算术运算符
'''
+ 加法运算 - 减法运算 * 乘法运算 / 除法运算(算术除法)
% 取余运算 // 整除运算 ** (左)的(右)次方
+= -= *= /= //= %= **=这些为复合赋值运算符
'''
a,b,c=6/2,6//2,4//3
print(a,b,c) # a为浮点数3.0,b为整型3,c为整型1
a=7**3 # 相当于7的三次方
a = 2
a+=1 # 相当于a=a+1
a**=4 # 相当于a=a**4
重要的地方就是注意除法和整除的区别!!!
2.关系运算符
进行两个表达式的比较,返回值为True或Fause
'''
== 判断是否相等 != 判断是否不等 > 判断是否大于
< 判断是否小于 >= 判断是否大于等于 <= 判断是否小于等于
'''
print(1==2,1!=2,1<=2) # False True True
3.逻辑运算符
多个关系表达式进行运算后,我们可以通过逻辑运算符把他们联系起来
'''
and:逻辑且,相当于C语言的&&,只有两端都为True时返回值才为真
or:逻辑或,相当于C语言的||,只有两端都为Fause时返回值才为假
'''
a,b = 1!=2 and 1<=2,1==2 and 1!=2
print(a,b) # a两端都为真所以为真,b左端为假,所以一定为假
c,d = 1!=2 or 1==2,3==4 or 5==6
print(c,d) # c左端已经为真所以一定为真;d两端都为假所以为假
单目运算符里面的not也属于逻辑运算符
4.输入与输出
(1)输入input
标准输入是将数据通过输入设备(键盘)赋值给变量
基本语法:变量=input(“你想写的某一句提示语”)
注意:input输入的变量默认为str字符串类型
score = input("请输入学生的成绩")
print(score,type(score))
score = int(score)
print(score,type(score))
Python虽然支持中文变量,还有输入输出中文内容,但是有的时候还是会报错,如果程序运行错误,那么极有可能是文件编码出现了问题
因为咱们默认的ascll码里面会没有中文,需要将文件编码转为UTF-8
(pycharm的右下角可以更改文件编码)
(2)输出print
前面已经了解过基本的输出,那么在这里我们深度学习一下print的进阶
1.多个变量输出——sep决定用什么间隔
在print函数里面其实有一个变量名为sep,它的值决定了多个变量输出时用什么来间隔,默认时候sep=’ '(空格)
print('我们','将会','默认','以空格','来进行数据间隔') # 我们 将会 默认 以空格 来进行数据间隔
print('我们','将会','以减号','来进行数据间隔',sep='-') # 我们-将会-以减号-来进行数据间隔
2.end——决定print最终是以什么结尾
我们在进行输出的时候通常会发现,每次调用完print函数之后都会默认换行,这是因为在函数里还有一个名为end的变量,默认值为’\n’
print('我的结尾会有一个问号而且不换行',end='?')
print('你看~我真的直接连着在上一行数据后面存在~')
# 输出结果:我的结尾会有一个问号而且不换行?你看~我真的直接连着在上一行数据后面存在~
3.print输出格式控制
name = 'li hua'
age=20
str_1 = "111我的名字叫%s,我今年%d岁了!"%(name,age)
print(str_1)
str_2 = "222我的名字叫{},我今年{}岁了!".format(name,age)
print(str_2)
str_3 = "333我的名字叫{name},我今年{age}岁了!".format(name='li hua',age=20)
print(str_3)
str_4 = f"444我的名字叫{name},我今年{age}岁了!"
print(str_4)
'''输出结果为:
111我的名字叫li hua,我今年20岁了!
222我的名字叫li hua,我今年20岁了!
333我的名字叫li hua,我今年20岁了!
444我的名字叫li hua,我今年20岁了!
'''
上面有四种字符串的输出格式控制方式,分别为:
str_1:类似于C语言的格式控制符,%d为整型,%s为字符串,
%.3f浮点数保留3位小数,%5d整型输出5个字符宽度,小于5则左端空格补齐
%6.2f输出6个字符宽度(包括小数点),小于6则左端空格补,否则格式不变
保留两位小数
str_2:Python特色format(Python2.0常用)
优点:避免控制符和变量数据类型不同导致程序报错
str_3:Python特色进阶(Python3.0常用)(注意一定要重新赋值否则报错)
str_4:Python3.6新出特色(前缀一个f简化format)