正文共:3565 字 7 图
预计阅读时间:9 分钟
每日分享
We deem those happy who from the experience of life have learned to bear its ills without being overcome by them.
我们认为那些快乐的人,从生活的经验中学会了忍受那些无法克服的疾病。
小闫语录:
并不是命运不公,而是他人在负重前行,你却在怨天尤人。看到了别人的快乐,却没有看到背后的辛酸。
前言
昨天的文章『每天 3 分钟,小闫带你学 Python』讲解了标识符、命名规则、标准输出等内容。有点多,而且必须熟记。前期是高楼打地基的过程,一定要牢固,万丈高楼平地起。以后的路走的顺不顺就看这几天的内容是否记住了~
今天的继续吧~
1.输入
今天小红发了工资,高高兴兴的去取款机取钱,准备买包包。但是插卡后,第一次密码输入错误!好在有惊无险,又试了一次顺利拿到了钱。
大家有没有过疑问,就是输入的密码,取款机怎么识别?暂且不告诉你整个流程,因为比较繁琐,我们只分析输入密码这一步。
输入密码后,机器使用一个变量进行接收存储,然后拿这个变量同最开始设置的密码进行比对,如果成功可以进行取款操作;失败则让你进行二次输入。
那么 Python 中是怎么实现输入这一操作的呢?请看下面的代码:
password = input('请输入密码:')
input 是 Python3.x 中的语法。括号中的字符串是显示在控制台的提示信息。我们可以在等号左侧利用变量接收用户输入的密码
我们运行下面的程序:
password = input('请输入密码:')
print('您输入的密码是 %s' % password)
看下方的动态图来了解其运行过程:
可以看到,当程序执行后,会阻塞(也就是停止)等待我们输入。输入完成之后,敲击回车键,程序会继续往下执行。
注意:input() 函数结果保存在变量中后,变量的类型一定是字符串。
大家可以使用之前讲过的 type() 进行验证。使用变量接收 input 函数结果,然后再利用 type 函数进行类型检查。
2.运算符
2.1 算术运算符
下方表格以 a = 10, b = 20 为例进行计算演示:
运算符 | 描述 | 实例 |
+ | 加 | 两个对象相加 a + b 输出结果 30 |
- | 减 | 得到负数或是一个数减去另一个数 a - b 输出结果 -10 |
* | 乘 | 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200 |
/ | 除 | b / a 输出结果 2 |
// | 取整除 | 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 |
% | 取余 | 返回除法的余数 b % a 输出结果 0 |
** | 指数 | a**b 为10的20次方, 输出结果 100000000000000000000 |
注意:混合运算时,优先级顺序同数学中运算顺序,幂运算高于乘除高于加减。Python 中:**
高于 *
/
%
//
高于 +
-
,为了避免歧义,建议使用 ()
来处理运算符优先级。另外有一个注意点,就是不同类型的数字(有一个是浮点类型)进行运算后,结果会变为浮点类型(也就是小数)
示例:
>>> 10 + 5.5 * 2
21.0
上面代码是在 python 自带的解释器中运行的结果,即 >>> 后面为执行代码,下方为结果。
2.2 赋值运算符
赋值运算符我们已经接触过一个,那便是 =
。它会将右侧的数据赋值给左侧的变量。
单个变量赋值大家已经掌握,接下来看一下多个变量赋值如何操作:
num1, num2, num3 = 1, 2, 3print(num1, num2, num3)
结果为:
1 2 3
除此之外,还有一些复合赋值运算符。下方为大家进行了一个总结:
运算符 | 描述 | 实例 |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
3.常用类型转换函数
函数 | 说明 |
int( x ) | 将x转换为一个整数 |
float( x ) | 将x转换为一个浮点数 |
complex(real [,imag ]) | 创建一个复数,real为实部,imag为虚部 |
str( x ) | 将对象 x 转换为字符串 |
repr( x ) | 将对象 x 转换为表达式字符串 |
eval( str ) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple( s ) | 将序列 s 转换为一个元组 |
list( s ) | 将序列 s 转换为一个列表 |
chr( x ) | 将一个整数转换为一个Unicode字符 |
ord( x ) | 将一个字符转换为它的ASCII整数值 |
hex( x ) | 将一个整数转换为一个十六进制字符串 |
oct( x ) | 将一个整数转换为一个八进制字符串 |
bin( x ) | 将一个整数转换为一个二进制字符串 |
下面演示每一个函数如何使用:
int()
>>> str1 = "10">>> num1 = int(str1)>>> print(num1)10
int() 会将数据转换为 int 类型,默认按10进制转换后显示
也许你会想如果是小数用其进行转换呢?看下面示例:
>>> num2 = int(3.74)>>> print(num2)3
int() 处理浮点数,只留下整数部分,舍弃小数部分(并不是四舍五入操作)
再看一种情况:
str1 = "10"
# 第二个参数为8,表示按8进制转换后显示,结果为8
# 8进制即逢8进1
# 01 02 03 04 05 06 07 10
# 也就是八进制的10,转换为十进制的数后为8
num1 = int(str1, 8)
# 第二个参数为16,表示按16进制转换后显示,结果为 16
# 同理,16进制为逢16进1,它表示从1到9,A到F的数字
# 01 02 ... 0B 0C 0D 0E 0F 10
num1 = int(str1, 16)
进制转换是一种比较抽象的东西,大家在大学的计算机课程中应该学习过,希望大家再翻看一下之前的东西,这样便于理解 Python 中此部分的函数内容。
float()
>>> str2 = "3.14"
>>> f1 = float(str2)
>>> print(type(f1))
<class 'float'>
>>> f2 = float(10)
>>> print(f2)
10.0
float() 将数据转化为浮点数
complex(a, b)
创建复数:第一个参数是复数的实部,第二个参数是复数的虚部。请看下面的示例:
>>> c1 = 10 + 4j>>> c2 = complex(10, 4)>>> print(c1)(10+4j)>>> print(c2) # 等同与 c1(10+4j)
str()
>>> num1 = 10>>> f1 = 3.14>>> print(type(str(num1)))<class 'str'>>>> print(type(str(f1)))<class 'str'>
str() 会将括号中的变量转换为字符串类型
repr()
>>> num1 = 10>>> print(type(repr(num1)))<class 'str'>
repr() 将传入变量转换为表达式字符串
eval()
>>> str1 = "3.14"
>>> print(type(eval(str1)))
<class 'float'>
>>> str2 = "[10, 20, 30]"
>>> l = eval(str2)
>>> print(type(l))
<class 'list'>
通过上例我们可以看到 eval() 会将将字符串形式的数据,转换为原本的类型
chr()
>>> s = chr(1065)>>> print(s)Щ
chr() 会将一个整数转换为对应的 Unicode 字符
ord ()
>>> n = ord("A")>>> print(n)65
ord() 会将一个字符转换为对应的字符编码数字
常用进制转换函数 bin() oct() hex()
# bin: 将一个整数转换为二进制
>>> print(bin(1024)) # 0b 开头表示二进制数
0b10000000000
# oct:将一个整数转换为八进制
>>> print(oct(1024)) # 0o 开头表示八进制数
0o2000
# hex: 将一个整数转换为十六进制
>>> print(hex(1024)) # 0x 开头表示十六进制
0x400
没有演示的 list() 等函数也非常重要,只是它同 str() 用法类似,不重复举例,浪费篇幅。
4.作业
今日学习目标:熟练掌握输入函数;熟记各种运算符;学习使用常用类型转换函数。
1.假设 a = 5, b = 2 使用代码计算 a 和 b 的加减乘除结果,然后计算 a 的 b 次方。a 除 b 后的商和余数。
2.使用 input 设计一个小程序:提示用户输入名字,然后显示欢迎该用户的到来。
3.将 8 分别转换为字符串、二进制数、八进制数以及十六进制数。