目录
2019/07/31 学习整理
Python基础
格式化输出的三种方式
一、占位符
程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式
比如要求用户输入用户名和年龄,然后打印如下格式:My name is xxx,my age is xxx.
很明显,用逗号进行字符串拼接,只能把用户输入的名字和年龄放到末尾,无法放到指定的xxx位置,而且数字也必须经过str(数字)的转换才能与字符串进行拼接,非常之麻烦,我们来试一试。
age = 19
print('My name is xxx,my age is '+str(age))
# My name is xxx,my age is 19
age = 19
print('My name is xxx,my age is', age)
# My name is xxx,my age is 19
name = '胡歌'
age = 19
print('My name is '+name+' my age is '+str(age))
# My name is 胡歌 my age is 19
上面使用的方法越看越别扭,越看越麻烦。这就需要用到占位符,如:%s(针对所有数据类型)、%d(仅仅针对数字类型)
name = '胡歌'
age = 19
print('my name is %s my age is %s' % (name, age))
# my name is 胡歌 my age is 19
age = 19
print('my age is %d' % age)
# my age is 19
二、format格式化
讲真,很鸡肋的格式化的方法,如果你需要使用这个,遇到多参数的时候,还是需要在句子后面噼里啪啦传上一大堆参数。使用这个不如用占位符或下面的f-String格式化。
name = '胡歌'
age = 19
print("Hello, {}. You are {}.".format(name, age))
# Hello, nick. You are 19.
name = '胡歌'
age = 19
print("Hello, {1}. You are {0}-{0}.".format(age, name))
# Hello, 胡歌. You are 19-19.
name = '胡歌'
age = 19
print("Hello, {name}. You are {age}-{age}.".format(age=age, name=name))
# Hello, 胡歌. You are 19-19.
三、f-String格式化
相比较占位符的方式,python3.6版本新增了f-String格式化的方式,比较简单易懂,这是目前我用的最多的方式,推荐使用这种方式。
name = "nick"
age = 19
print(f"Hello, {name}. You are {age}.")
Hello, nick. You are 19.
大写的F也适用。
name = "nick"
age = 19
print(F"Hello, {name}. You are {age}.")
Hello, nick. You are 19.
age = 19
print(f'{age*2}')
38
再给你秀个以后可能会用到的操作。
salary = 6.6666
print(f'{salary:.2f}')
6.67
基本运算符
一、算术运算符
a = 20; b =10
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 - 两个对象相加 | a + b 输出结果为 30 |
- | 减 - 两个对象相减 | a - b 输出结果为 10 |
* | 乘 - 两个对象相乘或是一个被重复若干次的字符串 | a * b 输出结果为200 |
/ | 除 - x除以y | a / b 输出结果为2 |
% | 取模 - 返回除法的余数 | a % b 输出结果为0 |
** | 幂 - 返回x的y次幂 | a ** b 输出结果为10的20次方 1000000000000000000000 |
// | 取整除 - 返回商的整数部分(向下取整) | 9 // 2 输出结果为 4 -9 // 2 输出结果为 -5 |
二、比较运算符
a = 20; b =10
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较两个对象是否相等 | (a == b) return False |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) return True |
<> | 不等于 - 比较两个对象是否不相等 | (a <> b) return True 类似!= |
> | 大于 - 比较两个对象的大小 | (a > b) return True |
< | 小于 - 比较两个对象的大小 | (a < b) return False |
>= | 大于等于 - 比较两个对象的大小 | (a >= b) return True |
<= | 小于等于 - 比较亮个对象的大小 | (a <= b) return False |
三、赋值运算符
a = 20; b =10
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | c =a + b 将a + b的运算结果赋值给c |
+= | 加法赋值运算符 | c +=a 等效于 c = c + a |
-= | 减法赋值运算符 | c -=a 等效于 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 |
四、逻辑运算符
a = 20; b = 10
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔“与” - 如果x为False,x and y 返回False,否则返回y的计算值。 | (a and b)return 10 (True and False) return False |
or | x or y | 布尔“或” - 如果x是非0,它返回x的值,否则它返回y的计算值。 | (a or b)return 20 (True or False) return True |
not | not x | 布尔“非” - 如果x为True,返回False。如果x为False,返回true | not (a and b) return False |
五、身份运算符
身份运算符用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
六、Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位 'AND' |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |
流程控制之if判断
语法
if 判断条件:
执行语句……
else:
执行语句……
其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。
else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。
实例
flag = False
name = 'loser'
if name == 'python': # 判断变量是否为 python
flag = True # 条件成立时设置标志为真
print 'welcome boss' # 并输出欢迎信息
else:
print name # 条件不成立时输出变量名称
# loser
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值时,可以使用以下形式:
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
实例
num = 5
if num == 3: # 判断num的值
print 'boss'
elif num == 2:
print 'user'
elif num == 1:
print 'worker'
elif num < 0: # 值小于零时输出
print 'error'
else:
print 'roadman' # 条件均不成立时输出
# roadman