每日分享
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, 3 print(num1, num2, num3)
结果为:
123
除此之外,还有一些复合赋值运算符。下方为大家进行了一个总结:
运算符 | 描述 | 实例 |
+= | 加法赋值运算符 | 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 分别转换为字符串、二进制数、八进制数以及十六进制数。