本文章将作为博主对Python学习从基础开始的笔记与整理,也将自己的某些针对Python的理解分享出来有便于跟博主一样的大学新手一起学习和理解Python。
本文将简单介绍一下常遇到的数据类型,以及在Python中必不可少的运算符的使用。
数据类型(Data Type)
在编程中新手最常涉及的几种数据可以大致分为:数字类型(Number),字符串(String),布尔类型(Bool)。而在这之后还会涉及列表(List),元组(Tuple),集合(Set),字典(Dictionary)等类型,将会在之后的笔记中单独详细的介绍。
数字类型(Number)
Python3中支持int整型,float浮点型,complex复数,同时bool在Python3中也是int的子类(True==1、False==0)。
整型(Int)
什么是整型?
整型即表示值为一个整数:a = 1
进制及进制的转换
值得一提的就是在计算机中我们常常会涉及到不同的进制,目前有二进制(计算机采用进制),八进制,十进制(人类使用进制),十六进制:
a=1#Decimal十进制 b=0b1010#Binary二进制(0b/0B 开头,后面跟 0/1) c=0o16#Octal八进制(0o/0O 开头,后面跟0-7) d=0x2A#Hexadecimal十六进制(0x/0X 开头,后面跟0-9,A-F)
注意最后的输出任然是十进制。
进制之间应该怎么转换?
1.其他进制转十进制 -> 使用int()函数
# 二转十
binary_num = '1010'
# int()中binary_num表示被转换的数,'2'表示被转换的进制类型
decimal_num = int(binary_num, 2)
print(decimal_num) # 输出:10
# 八转十
octal_num = '16'
decimal_num = int(octal_num, 8)
print(decimal_num) # 输出:14
# 十六转十
hexadecimal_num = '2A'
decimal_num = int(hexadecimal_num, 16)
print(decimal_num) # 输出:42
在int()函数中,括号内的第一个元素为想要被转换成十进制的数,逗号后跟上该数此时的进制类型。
2.十进制转其他进制 -> 使用bin(), oct(), hex()
decimal_num = 42
binary_num = bin(decimal_num)
octal_num = oct(decimal_num)
hexadecimal_num = hex(decimal_num)
bin()转化为二进制
oct()转化为八进制
hex()转化为十六进制
浮点型(Float)
什么是浮点型?
通俗的来说,浮点型就是指十进制中的小数:a = 9.92
科学计数法
在小学中学过科学计数法:13 = 1.3*10^1,但是在Python等计算机语言中我们并不能直接这么表示,于是在Python中采用Ex的方式来表示科学技术法,x是10的指数。
# 9.92*10(1) float_num=9.92E1 print(float_num) # 9.92*10(2) float_num=9.92E-2 print(float_num)
精度丢失问题
观察下列浮点数的加法,思考一下n3的值应该是什么?
n1=0.1 n2=0.2 n3=n1 + n2 print(n3)
常理来说答案很简单,n3=0.3,但在Python的计算中往往就是这么出让人意料:
很疑惑对吧,这就是涉及到计算机编程中的精度丢失问题了:在计算机中小数的计算是通过转化为二进制计算的,我们可以看到Python只会给我们保留小数点后17位,但有很多小数是无法准确转化为二进制的,因此此时计算机中的小数计算大多是以约等于的方式来计算结果的,此时就出现了精度丢失的问题,就像上面的0.1+0.2一样。
复数(Complex)
复数在大部分的运用中比较少见,所以作为新手暂时简单了解一下就好。
复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
字符串( String)
字符串的表示
Python中的字符串用单引号 ' 或双引号 " 括起来。
a = 'Welcome'
b = "Welcome"
在使用上''和""没有区别,但要注意向镶嵌问题:
name_1='xiao' name_2="xiao" name_3="xi'ao'"
索引
字符串是有序的字符序列,因此在Python中我们可以通过索引来获得一个字符串中的一个或多个内容:
name_str='xiao'
name_char=name_str[0]
print(name_char)
注意,在计算机语言中,所有的第一位都是从0位开始的。
合理使用索引能在以后的编程中从字符串中提取所需的内容。
转义字符'\'
因为再Python中已经有一些\的搭配有了特殊的意义,当想重新输出原本的内容的时候,就需要重新在内容前方再加一个转义字符才能成功准确的输出。
常用转义字符:
转义字符 | 说明 |
---|---|
\\ (在行尾时) | 续行符 |
\r | 回车符,将光标位置移到本行开头。 |
\t | 水平制表符,也即 Tab 键,一般相当于四个空格。 |
\\ | 反斜杠符号 |
\’ | 单引号 |
\" | 双引号 |
\f | 换页 |
\n | 换行符 |
布尔类型(Bool)
什么是布尔类型?
布尔类型常用在对条件是否满足的判断,bool只有两个值Ture(1)和False(0)
bool_str1 = 2 > 1 bool_str2 = 2 < 1
Bool函数
bool()函数用于将给定参数转换为布尔类型,如果没有参数,返回 False: bool(x)
x为我们想要转换的参数。
>>>bool()
False
>>> bool(0)
False
>>> bool(1)
True
>>> bool(2)
True
>>> issubclass(bool, int) # bool 是 int 子类
True
运算符(Operator)
四则运算(加减乘除)
1.赋值:a = 1,赋值可以同时给多个参数赋值: a = b = c = 1 d, e = 1, 2
2.加法:a = 1 + 2
3.减法:a = 2 - 1
4.乘法:a = 1 * 2
a=b=c=1 d, e=1, 2 print(a,b,c,d,e,sep='/') # 2.加 print(a+b) # 3.减 print(a-b) # 4.乘 print(a*e) # 5.除 print(a/e)
同时在四则运算中还有一些额外的运算:幂运算,模运算,取余数等:
幂运算:使用符号' ** ',a**2表示a的二次方
模运算:又叫取商,使用符号' // ', 5//2表示取结果的整数部分2
取余数:使用符号' % ',5%2表示取结果的余数1
# 幂运算 print(e**3) # 模运算 -> 取整 -> 商 print(e//3) # 取余数 print(e%3)
关系运算
关系运算包含大于(>),小于(<),等于(==),大于等于(>=), 小于等于(<=),不等于(!=)。其中要注意,' = '是赋值,' == '才是等于。关系运算会对数据进行判断,最后输出Ture或False。
print(12 == 13)
print(12 != 13)
print(12 >= 13)
print(12 <= 13)
print(12 > 13)
print(12 < 13)
关系运算在字符串中也是可以使用的,但是不建议使用大于和小于,因为计算机会将字符串转义后再进行比较,一般使用等于和不等于。
逻辑运算
逻辑运算是在关系运算的基础上进行的运算:与(and), 或(or), 非(not)
与(and):只有所有命题为真才为真。
或(or):只要有一个命题为真就为真。
非(not):取反,真->假,假->真。
逻辑与短路问题
A and B 的短路问题:如果A为false,那么B根本就不会执行
4>3 and print(f'未短路{1}') 4<3 and print(f'短路{1}')
逻辑或短路问题
A or B 的短路问题:如果A为ture,那么B根本不会执行
4>3 or print(f'未短路{1}') 4<3 or print(f'短路{1}')
tips:0和空字符串在做逻辑运算时会被转化为布尔函数false,可以用bool()来判断一个数是真假。
增强运算
在编程中,为了简化操作,将四则运算进行了相应的简化,能使得你的程序更加美观和编写的简单。
a += 1 -> a = a + 1
a -= 1 -> a = a - 1
a *= 2 -> a = a * 2
a **= 2 -> a = a**2
a /= 2 -> a = a / 2
a //= 2 -> a = a // 2
a %= 2 -> a = a % 2