python语法入门之与用户交互,运算符
与用户交互
输入
input:
python2:
>>> input(">>:")
>>:sean
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'sean' is not defined
>>> input(">>:")
>>:"sean"
'sean'
>>> input(">>:")
>>:1
1
>>> input(">>:")
>>:[1,2]
[1, 2]
>>>
-------------------------------
>>> raw_input(">>:")
>>:sean
'sean'
>>> raw_input(">>:")
>>:12
'12'
python3:
name = input("请输入你的名字:") # 接收用户的输入,无论用户输入的是什么类型,最终返回的一定是字符串
print(name)
print(name)
总结:
python2中的raw_input与python3中input作用相同
输出:
print:
格式化输出
-
什么是格式化输出?
把一段字符串里面的某些内容替换之后再输出,就是格式化输出
-
为什么要格式化输出?
我们经常会输出具有某种固定格式的内容,比如:’亲爱的xxx你好!你xxx月的花费是xxx,余额是xxx‘,我们需要做的就是将xxx替换为具体的内容
-
如何格式化输出?
常规输出
name = input('>>:')
age = input('>>:')
print("my name is", name, 'my age is ', age)
打印结果为
>>:ever
>>:18
my name is ever my age is 18
格式化输出
这就用到了占位符,如%s,%d
%s占位符:可以接受任意类型的值
name = input('>>:')
age = input('>>:')
# print("my name is", name, 'my age is ', age)
print('my name is %s, my age is %s' % (name, age))
>>:18
>>:ever
my name is 18, my age is ever
>>:ever
>>:12
my name is ever, my age is 12
%d占位符:只能接受数字,按照传递顺序,传值
name = input('>>:')
age = input('>>:')
print('my name is %s, my age is %d' % (name, 18)) # 打印设定好的值,用户输入不输入结果都只会打印设定好的值
>>:ever
>>:12
my name is ever, my age is 18
format函数:可以接受不限个参数,位置可以不按照顺序
name = input('>>:')
age = input('>>:')
print("my name is {}, my age is {}".format(name, age)) # 打印用户的name,age,如果用户先输入的是年龄,也会先打印用户名
name = input('请输入您的用户名:')
age = input('请输入您的年龄:')
print("my name is {name} ,my age is {age}".format(age=age, name=name)) # 用户输入的age和name就是等于要打印的age和name
打印结果为
请输入您的用户名:ever
请输入您的年龄:12
my name is ever ,my age is 12
f-string:格式化字符串常量
name = input('请输入您的用户名:')
age = input('请输入您的年龄:')
print(f"my name is {name} ,my age is {age}") # 用格式化字符串常量的方法来打印出定义的值
打印结果为
请输入您的用户名:evermore
请输入您的年龄:14
my name is evermore ,my age is 14
数据:描述,衡量数据的状态
类型:不同的事物需要不同的类型存储
基本运算符
1:算数运算符
python支持的算数运算符与数学上计算的符号使用是一致的,我们以x=9, y=2为例依次介绍它们
2:比较运算符
比较运算符用来对两个值进行比较,返回的是布尔值True或False,我们以x=9,y=2为例来依次介绍它们
3:赋值运算符
python语法中除了有=号这种简单的赋值运算外,还支持增量赋值,链式赋值,交叉赋值,解压赋值,这些赋值运算符存在的意义都是为了让我们的代码看起来更加精简,我们以x=9,y=2为例来介绍一下增量赋值
3.1 增量赋值
3.2 链式赋值
如果我们想把同一个值同时赋值给多个变量名,可以这做
链式赋值指的是可以用一行代码搞定这件事
3.3 交叉赋值
我们定义两个变量m与n
如果我们想将m与n的值交换过来,可以这么做
交叉赋值指的是一行代码可以搞定这件事
3.4解压赋值
如果我们想把列表中的多个值取出来依次赋值给多个变量名,可以这么做
解压赋值指的是一行代码可以搞定这件事
注意,上述解压赋值,等号左边的变量名个数必须与右边包含值得个数相同,否则会报错
变量名少了
变量名多了
ps:字符串,字典,元组,集合类型都支持解压赋值
逻辑运算符
逻辑运算符用于连接多个条件,进行关联判断,会返回布尔值Ture或False
连续多个and
可以用and连接多个条件,会按照从左到右的依次判断,一旦某个条件为False,则无需再往右判断,可以立即判定最终结果就为False,只有在所有条件的结果都为Ture的情况下,最终结果才为True
上图会发现判断完第二个条件,就立即结束,得到的最终结果为False
连续多个or
上图会发现,判断完第一个条件,就立即结束,得到最终结果为True
混用and,or,not
上图会发现,and,or,not三者如果同时混用时,是存在优先级之分的,但在日常开发中,我们无需记忆优先级,应该使用()来区分优先级,提升程序的可读性
成员运算符
身份运算符
需要强调的是:==双等号比较的是value是否相等,而is比较的是id是否相等