python基础-人机交互和运算符

# 1、接收用户的输入
# 在Python3:input会将用户输入的所有内容都存成字符串类型
# username = input("请输入您的账号:")  # "egon"
# print(username, type(username))

# age = input("请输入的你的年龄: ")  # age="18"
# print(age, type(age))
# age=int(age) # int只能将纯数字的字符串转成整型
# print(age > 16)

# int("12345")
# int("1234.5")
# int("1234abc5")

>>> print('hello world')  # 只输出一个值
hello world
>>> print('first','second','third')  # 一次性输出多个值,值用逗号隔开
first second third

# 默认print功能有一个end参数,该参数的默认值为"\n"(代表换行),可以将end参数的值改成任意其它字符
print("aaaa",end='')
print("bbbb",end='&')
print("cccc",end='@')
#整体输出结果为:aaaabbbb&cccc@

 

# 在python2中:
# raw_input():用法与python3的input一模一样
# input(): 要求用户必须输入一个明确的数据类型,输入的是什么类型,就存成什么类型
# >>> age=input(">>>>>>>>>>>>>>>>>>>>>: ")
# >>>>>>>>>>>>>>>>>>>>>: 18
# >>> age,type(age)
# (18, <type 'int'>)
# >>>
# >>> x=input(">>>>>>>>>>>>>>>>>>>>>: ")
# >>>>>>>>>>>>>>>>>>>>>: 1.3
# >>> x,type(x)
# (1.3, <type 'float'>)
# >>>
# >>> x=input(">>>>>>>>>>>>>>>>>>>>>: ")
# >>>>>>>>>>>>>>>>>>>>>: [1,2,3]
# >>> x,type(x)
# ([1, 2, 3], <type 'list'>)
# >>>


# 2。字符串的格式化输出
# 2.1 %
# 值按照位置与%s一一对应,少一个不行,多一个也不行
# res="my name is %s my age is %s" %('egon',"18")
# res="my name is %s my age is %s" %("18",'egon')
# res="my name is %s" %"egon"
# print(res)

# 以字典的形式传值,打破位置的限制
# res="我的名字是 %(name)s 我的年龄是 %(age)s" %{"age":"18","name":'egon'}
# print(res)

# %s可以接收任意类型
# print('my age is %s' %18)
# print('my age is %s' %[1,23])
# print('my age is %s' %{'a':333})
# print('my age is %d' %18) # %d只能接收int
# print('my age is %d' %"18")
# 1、格式的字符串(即%s)与被格式化的字符串(即传入的值)必须按照位置一一对应
# ps:当需格式化的字符串过多时,位置极容易搞混
print('%s asked %s to do something' % ('egon', 'lili'))  # egon asked lili to do something
print('%s asked %s to do something' % ('lili', 'egon'))  # lili asked egon to do something

# 2、可以通过字典方式格式化,打破了位置带来的限制与困扰
print('我的名字是 %(name)s, 我的年龄是 %(age)s.' % {'name': 'egon', 'age': 18})

kwargs={'name': 'egon', 'age': 18}
print('我的名字是 %(name)s, 我的年龄是 %(age)s.' % kwargs)

 

# 2.2 str.format:兼容性好
# 按照位置传值
# res='我的名字是 {} 我的年龄是 {}'.format('egon',18)
# print(res)

# res='我的名字是 {0}{0}{0} 我的年龄是 {1}{1}'.format('egon',18)
# print(res)

# 打破位置的限制,按照key=value传值
# res="我的名字是 {name} 我的年龄是 {age}".format(age=18,name='egon')
# print(res)

# 了解知识
"""
2.4 填充与格式化
# 先取到值,然后在冒号后设定填充格式:[填充字符][对齐方式][宽度]
# *<10:左对齐,总共10个字符,不够的用*号填充
print('{0:*<10}'.format('开始执行')) # 开始执行******

# *>10:右对齐,总共10个字符,不够的用*号填充
print('{0:*>10}'.format('开始执行')) # ******开始执行

# *^10:居中显示,总共10个字符,不够的用*号填充
print('{0:*^10}'.format('开始执行')) # ***开始执行***
2.5 精度与进制

print('{salary:.3f}'.format(salary=1232132.12351))  #精确到小数点后3位,四舍五入,结果为:1232132.124
print('{0:b}'.format(123))  # 转成二进制,结果为:1111011
print('{0:o}'.format(9))  # 转成八进制,结果为:11
print('{0:x}'.format(15))  # 转成十六进制,结果为:f
print('{0:,}'.format(99812939393931))  # 千分位格式化,结果为:99,812,939,393,931

"""

# 2.3 f:python3.5以后才推出
x = input('your name: ')
y = input('your age: ')
res = f'我的名字是{x} 我的年龄是{y}'
print(res)
# 了解f的新用法:{}内的字符串可以被当做表达式运行
# res=f'{10+3}'
# print(res)
# 1、算数运算符
# print(10 + 3.1)
# print(10 + 3)
# print(10 / 3)  # 结果带小数
# print(10 // 3)  # 只保留整数部分
# print(10 % 3) # 取模、取余数
# print(10 ** 3) # 取模、取余数

# 2、比较运算符: >、>=、<、<=、==、!=
# print(10 > 3)
# print(10 == 10)
#
# print(10 >= 10)
# print(10 >= 3)

# name=input('your name: ')
# print(name == 'egon')


# 3、赋值运算符
# 3.1 =:变量的赋值
# 3.2 增量赋值:
# age = 18
# # age += 1  # age=age + 1
# # print(age)
#
# age*=3
# age/=3
# age%=3
# age**=3 # age=age**3

# 3.3 链式赋值
# x=10
# y=x
# z=y
# z = y = x = 10 # 链式赋值
# print(x, y, z)
# print(id(x), id(y), id(z))

# 3.4 交叉赋值
m=10
n=20
# print(m,n)
# 交换值
# temp=m
# m=n
# n=temp
# print(m,n)

# m,n=n,m # 交叉赋值
# print(m,n)

# 3.5 解压赋值
salaries=[111,222,333,444,555]
# 把五个月的工资取出来分别赋值给不同的变量名
# mon0=salaries[0]
# mon1=salaries[1]
# mon2=salaries[2]
# mon3=salaries[3]
# mon4=salaries[4]

# 解压赋值
# mon0,mon1,mon2,mon3,mon4=salaries
# print(mon0)
# print(mon1)
# print(mon2)
# print(mon3)
# print(mon4)

# mon0,mon1,mon2,mon3=salaries # 对应的变量名少一个不行
# mon0,mon1,mon2,mon3,mon4,mon5=salaries # 对应的变量名多一个也不行

# 引入*,可以帮助我们取两头的值,无法取中间的值
# 取前三个值
# x,y,z,*_=salaries=[111,222,333,444,555] # *会将没有对应关系的值存成列表然后赋值给紧跟其后的那个变量名,此处为_
# print(x,y,z)
# print(_)

# 取后三个值
# *_,x,y,z=salaries=[111,222,333,444,555]
# print(x,y,z)

# x,*_,y,z=salaries=[111,222,333,444,555]
# print(x,y,z)

# salaries=[111,222,333,444,555]
# _,*middle,_=salaries
# print(middle)

# 解压字典默认解压出来的是字典的key
x,y,z=dic={'a':1,'b':2,'c':3}
print(x,y,z)

 

# 1、可变不可变类型

# 可变类型:值改变,id不变,证明改的是原值,证明原值是可以被改变的
# 不可变类型:值改变,id也变了,证明是产生新的值,压根没有改变原值,证明原值是不可以被修改的

# 2、验证
# 2.1 int是不可变类型
# x=10
# print(id(x))
# x=11 # 产生新值
# print(id(x))

# 2.2 float是不可变类型
# x=3.1
# print(id(x))
# x=3.2
# print(id(x))

# 2.3 str是不可变类型
# x="abc"
# print(id(x))
# x='gggg'
# print(id(x))

# 小结:int、float、str都被设计成了不可分割的整体,不能够被改变


# 2.4 list是可变类型
# l=['aaa','bbb','ccc']
# print(id(l))
# l[0]='AAA'
# print(l)
# print(id(l))

# 2.5 dict
# dic={'k1':111,'k2':222}
# print(id(dic))
# dic['k1']=3333333333
# # print(dic)
# print(id(dic))


#2.6 bool不可变


# 关于字典补充:
# 定义:{}内用逗号分隔开多key:value,
#           其中value可以是任意类型
#           但是key必须是不可变类型

# dic={
#     'k1':111,
#     'k2':3.1,
#     'k3':[333,],
#     'k4':{'name':'egon'}
# }
#
# dic={
#     2222:111,
#     3.3:3.1,
#     'k3':[333,],
#     'k4':{'name':'egon'}
# }
# print(dic[3.3])

# dic={[1,2,3]:33333333}
# dic={{'a':1}:33333333}
条件定义
# 2、什么是条件?什么可以当做条件?为何要要用条件?
# 第一大类:显式布尔值
# 2.1 条件可以是:比较运算符
# age = 18
# print(age > 16)  # 条件判断之后会得到一个布尔值

# 2.1 条件可以是:True、False
# is_beautiful=True
# print(is_beautiful)


# 第二大类:隐式布尔值,所有的值都可以当成条件去用
# 其中0、None、空(空字符串、空列表、空字典)=》代表的布尔值为False,其余都为真

 1 # 一:not、and、or的基本使用
 2 # not:就是把紧跟其后的那个条件结果取反
 3 # ps:not与紧跟其后的那个条件是一个不可分割的整体
 4 # print(not 16 > 13)
 5 # print(not True)
 6 # print(not False)
 7 # print(not 10)
 8 # print(not 0)
 9 # print(not None)
10 # print(not '')
11 
12 # and:逻辑与,and用来链接左右两个条件,两个条件同时为True,最终结果才为真
13 # print(True and 10 > 3)
14 
15 # print(True and 10 > 3 and 10 and 0) # 条件全为真,最终结果才为True
16 # print( 10 > 3 and 10 and 0 and 1 > 3 and 4 == 4 and 3 != 3)  # 偷懒原则
17 
18 # or:逻辑或,or用来链接左右两个条件,两个条件但凡有一个为True,最终结果就为True,
19 #            两个条件都为False的情况下,最终结果才为False
20 # print(3 > 2 or 0)
21 # print(3 > 4 or False or 3 != 2 or 3 > 2 or True) # 偷懒原则
22 
23 # 二:优先级not>and>or
24 # ps:
25 # 如果单独就只是一串and链接,或者说单独就只是一串or链接,按照从左到右的顺讯依次运算即可(偷懒原则)
26 # 如果是混用,则需要考虑优先级了
27 
28 # res=3>4 and not 4>3 or 1==3 and 'x' == 'x' or 3 >3
29 # print(res)
30 #
31 # #       False                 False              False
32 # res=(3>4 and (not 4>3)) or (1==3 and 'x' == 'x') or 3 >3
33 # print(res)
34 
35 
36 
37 res=3>4 and ((not 4>3) or 1==3) and ('x' == 'x' or 3 >3)
38 print(res)
not and or
 1 # 1、成员运算符
 2 # print("egon" in "hello egon") # 判断一个字符串是否存在于一个大字符串中
 3 # print("e" in "hello egon") # 判断一个字符串是否存在于一个大字符串中
 4 
 5 # print(111 in [111,222,33]) # 判断元素是否存在于列表
 6 
 7 # 判断key是否存在于字典
 8 # print(111 in {"k1":111,'k2':222})
 9 # print("k1" in {"k1":111,'k2':222})
10 
11 # not in
12 # print("egon" not in "hello egon") # 推荐使用
13 # print(not "egon" in "hello egon") # 逻辑同上,但语义不明确,不推荐
14 
15 # 2、身份运算符
16 # is # 判断的是id是否相等
成员运算符
  1 # print(1)
  2 # print(2)
  3 # print(3)
  4 # if 条件:
  5 #     代码1
  6 #     代码2
  7 #     代码3
  8 # print(4)
  9 # print(5)
 10 '''
 11 语法1:
 12 if 条件:
 13     代码1
 14     代码2
 15     代码3
 16 
 17 '''
 18 # age = 60
 19 # is_beautiful = True
 20 # star = '水平座'
 21 #
 22 # if age > 16 and age < 20 and is_beautiful and star == '水平座':
 23 #     print('我喜欢,我们在一起吧。。。')
 24 #
 25 # print('其他代码.............')
 26 
 27 
 28 '''
 29 语法2:
 30 if 条件:
 31     代码1
 32     代码2
 33     代码3
 34 else:
 35     代码1
 36     代码2
 37     代码3
 38 '''
 39 
 40 # age = 60
 41 # is_beautiful = True
 42 # star = '水平座'
 43 #
 44 # if age > 16 and age < 20 and is_beautiful and star == '水平座':
 45 #     print('我喜欢,我们在一起吧。。。')
 46 # else:
 47 #     print('阿姨好,我逗你玩呢,深藏功与名')
 48 #
 49 # print('其他代码.............')
 50 
 51 
 52 '''
 53 语法3:
 54 if 条件1:
 55     代码1
 56     代码2
 57     代码3
 58 elif 条件2:
 59     代码1
 60     代码2
 61     代码3
 62 elif 条件2:
 63     代码1
 64     代码2
 65     代码3
 66 '''
 67 # score=73
 68 # if score >= 90:
 69 #     print('优秀')
 70 # elif score >= 80 and score < 90:
 71 #     print('良好')
 72 # elif score >= 70 and score < 80:
 73 #     print('普通')
 74 
 75 # 改进
 76 # score = input('请输入您的成绩:') # score="18"
 77 # score=int(score)
 78 #
 79 # if score >= 90:
 80 #     print('优秀')
 81 # elif score >= 80:
 82 #     print('良好')
 83 # elif score >= 70:
 84 #     print('普通')
 85 
 86 
 87 '''
 88 语法3:
 89 if 条件1:
 90     代码1
 91     代码2
 92     代码3
 93 elif 条件2:
 94     代码1
 95     代码2
 96     代码3
 97 elif 条件2:
 98     代码1
 99     代码2
100     代码3
101 ...
102 else:
103     代码1
104     代码2
105     代码3
106 '''
107 # score = input('请输入您的成绩:') # score="18"
108 # score=int(score)
109 #
110 # if score >= 90:
111 #     print('优秀')
112 # elif score >= 80:
113 #     print('良好')
114 # elif score >= 70:
115 #     print('普通')
116 # else:
117 #     print('很差,小垃圾')
118 #
119 # print('=====>')
120 
121 
122 '''
123 if嵌套if
124 '''
125 age = 17
126 is_beautiful = True
127 star = '水平座'
128 
129 if 16 < age < 20 and is_beautiful and star == '水平座':
130     print('开始表白。。。。。')
131     is_successful = True
132     if is_successful:
133         print('两个从此过上没羞没臊的生活。。。')
134 else:
135     print('阿姨好,我逗你玩呢,深藏功与名')
136 
137 print('其他代码.............')
if 条件

 

posted @ 2020-11-27 15:17  fengpiaoluoye  阅读(359)  评论(0编辑  收藏  举报