1.交互
1.1输入input
用户的input输入任何内容,都存成字符串类型,然后赋值给等号左边的变量名
username=input('请输入你的姓名:')
1.2输出print
默认的print功能有一个end参数,该参数的默认值为“ ”,可以将end参数的值改成任意其它字符。
1.3格式化输出
这是一个重点内容
把一段字符串里面的某些内容替换掉之后再输出,就是格式化输出
2.格式化输出字符串的4种方式
2.1 %号
2.1.1格式的字符串(%s)与被格式化的字符串(传入的值)必须按照位置一一对应
print('%s asked %s to do something' %('han','xiaobei')
2.1.2通过字典的方式格式化,打破了位置带来的限制与困扰
print('我的名字是%(name)s,我的年龄是%(age)s.' %{'age':'han','age':20})
kwargs={'name':'hange','age':25}
print('我的名字是%(name)s,我的年龄是%(age)s.' %kwargs)
2.2 str.format
该format方法是在Python2.6中引入的,是字符串类型内置方法,因str.format方式在性能和使用的灵活性上都比%好,所以推荐使用
2.2.1使用位置参数
按照位置一一对应
print('{} asked {} to do something'.format('han','xiaohan'))
2.2.2使用索引
#使用索引取对应位置的值
print('{0}{0}{1}{0}'.format('x','y')) #xxyx
print('{1} ask {0} to do something'.format('han','xiaohan'))
2.2.3 使用关键字参数or字典
#可以通过关键字or字典的方式格式化,打破了位置带来的限制与困扰
print('我的名字是{name},我的年龄是{age}.'.format(name='xiaohan',age=20)
kwargs={'name':'xiaohan','age':20}
print('我的名字是{name},我的年龄是{age}.'.format(**kwargs)) #使用**进行解包操作
2.2.4 填充与格式化
#先取值,然后在冒号后设定填充格式
print('{0:*<10}'.format('开始执行')) #*<10,左对齐,总共10个字符,不够用*号填充
print('{0:*>10}'.format('执行完毕')) #右对齐
print('{0:*^10}'.format('正在执行')) #居中对齐
2.2.5 精度与进制
print('{salary:.3f}'.format(salary=3.1415926)
print('{0:b}'.foramt(123)) 转为二进制
print('{0:o}'.format(9) 转为八进制 #此处的0代表的的是后面的第1个索引的位置
2.3 f-Strings
f-string是以f或F开头的字符串,核心在于字符串中符号{}的使用
name='xiaohan'
age=20
print(f'{name}is {age}')
print(F'{age} is {name}')
2.3.1 {}中可以是变量名
2.3.2 {}中可以是表达式
#可以在{}中放置任意合法的Python表达式,会在运行时计算
#如:数学表达式
print(f'{3*3/2}')
#如:函数的调用
def foo(n):
print('foo say hello')
return n
print(f'{foo(10)}')
#如:调用对象
name='han'
print(f'{name.lower()}')
3.基本运算符
3.1 算数运算符
如:+ - * / //(取整除) %(取余) **(幂)
3.2比较运算符
如:== != > 〉= < ≤
3.3赋值运算符
=,+=,-=,*=,/=,//=,%=,**=
3.4链式赋值
z=10
y=10
x=y
x,y,z
(10,10,10)
也要以写为
x=y=z=10
print(x,y,z)
10,10,10
3.5 交叉赋值
m=10
n=20
m,n = n,m
print(m,n) 20,10
4.逻辑运算符
and or not 优先级为:not>and>or
- 原理:1.not的优先级最高,就是把紧跟其后的那个条件结果取反,所以not与紧跟其后的条件不可分割
- 2.如果语句中全部是用and连接,或者全部用or连接,那么按照从左到右的顺序依次计算即可
- 3.如果语句既有and也有or,那么先用括号把and的左右两个条件括起来,然后再运算
- 2.如果语句中全部是用and连接,或者全部用or连接,那么按照从左到右的顺序依次计算即可
3>4 and 4>3 or 1==3 and 'x'=='x' or 3>3 可以转化为:
(3>4 and 4>3) or (1==3 and 'x'=='x') or 3>3
5.成员运算符
in 和not in
'han' in ['han','xiaohan']
12 not in ['han','xiaohan']
6.身份运算符
is 和is not
- is 比较的是id,两个对象的id相同则返回True
- 在两个对象id不同时is not 会返回True