与用户交互、格式化输出、基本运算符

一、与用户交互

1. 获取用户输入 ——input

username = input('请输入您的用户名>>>:')

1. 先执行input获取用户输入

2. 将输入的数据绑定给变量名username

3. 以后在程序中就可以使用变量名反复调用用户数据

注意:input获取到的数据都会统一处理成字符串类型

2.输出内部信息——print

1.括号内既可以放数据值也可以放变量名,并且支持多个,逗号隔开即可

print(123)     # 123

name = 'Alex'
print(name)     # Alex
print(name, name, name)     # Alex Alex Alex

2. print自带换行符

   print() # 输出的地方会自己空一行出来

**换行符:\r\n \n(斜杠与字母组合到一起可能会产生特殊的含义)**

3. print也可以切换结束符

     print(数据,end='默认是\n')

**如果不换行,要在后面连续输入,则end设置为空**

     print(数据,end = ' ')

扩展: python2与python3中两个关键字的区别

python2中

    input方法需要用户自己提前指定数据类型,写什么类型就是什么类型

    raw_input方法与python3中input一致,输入的统一处理成字符串

python2中

    print方法有两种使用方式:

        print 数据值

        print(数据值)

 

二、格式化输出

提前定义好一些内容,将来需要使用的时候可以局部修改

  eg:奖状、录取通知书、合同

在现实生活中大部分情况下使用下划线提示别人填写内容,但是在程序中需要使用占位符: %s   %d

单个占位符

info = '%s同学你好'
print (info % 'Alex')   # Alex同学你好
print (info % 'Bob')   # Bob同学你好
print('%s同学你好' % 'Tony')   # Tony同学你好

多个占位符

复制代码
desc = '姓名:%s 年龄:%s 爱好:%s'  
 '''冒号前后无空格,不同项目之间用空格隔开'''

print(desc % ('Alex', 18, 'read'))  # 姓名:Alex 年龄:18 爱好:read
'''数据值之间用逗号隔开'''


print('姓名:%s 年龄:%s 爱好:%s' % ('tony', 28, 'rap'))    #姓名:Tony 年龄:28 爱好:rap
'''直接写成一行''' 
复制代码

注意:有几个占位符就需要几个数据值

print('my name is %s my age is %s' % ('Alex',))  #前面有两个点位符,后面只有一个数据值——'Alex',少了不行
   
print('my name is %s my age is %s' % ('Alex', 18, 'read'))  #前面有两个占位符,后面有三个数据值,多了也不行

 

不同占位符(%s与%d)的区别:

  • %s常见数据类型都支持
  • %d只支持数字类型
demo1 = '%s您好,您本月的话费是%s 余额是%s'  # %s常见数据类型都支持

print(demo1 % ('jason', 100, 100000000))  # jason您好,您本月的话费是100 余额是100000000


demo2 = '%d您好,您本月的话费是%d 余额是%d'  # %d只支持数字类型

print(demo2('Tony',100,100000000))  # 直接报错

 

%08d

8指的是输出的数字位数为8位,不够的用0填充,如果超过八位则全部输出。

print('%08d'% 123)    # 00000123


print('%08d'% 1234324324)    # 1234324324

 

例题:

获取用户输入并打印成下列格式:

"""
------------ info of Jason -----------
Name : Jason
Age : 18
Sex : male
Job : Teacher
---------------- end -----------------
"""

复制代码
代码实现:
1. 制定一个打印模板
info_demo = """
    -------------- info of %s -----------
    Name:%s
    Age:%s
    Sex  : %s
    Job  : %s
    ---------------- end -----------------
    """
 
2. 获取用户输入
Name = input('Name>>>:')
Age = input('Age>>>:')
Sex = input('Sex>>>:')
Job = input('Job>>>:')
 3.格式化输出
print(info_demo % (Name, Name, Age, Sex, Job))

复制代码

 

三、基本运算符号

1、数学运算符号

加:+、减:-、乘:*、除:/、赋值符号=、乘方:**、取余数:%、整除://

通常代码中都会简化运算的表达式:

 

2、比较运算符号

大于:>、小于:<、大于等于:>=、小于等于:<=、等于号:==、不等于:!=。

比较运算符号返回的都是布尔值

 

四、常用赋值符号

python中的“=”号跟数学中的含义不同,“=”的称呼是赋值符号,顾名思义就是把值赋予给某个对象。在python中,“age = 19”中就是把右边的数据值赋值给左边的变量。

1、链式赋值

给多个变量名绑定同一数据值

举例:

name = 'Alex'    # 数据值'Alex'赋值给变量名name

name1 = name     # name的数据值赋值给变量名name1  

name2
= name1 # name1的数据值赋值给变量名name2

简单高效的方法:

name = name1 = name2 = 'Alex'

 

2、交叉赋值

把两个变量名互相交换数据值

复制代码
m = 100
n = 999

# 错误写法
m = n
n = m
print(m, n)      # 999 999


方式1:采用中间变量
temp = m
m = n
n = temp
print(m, n)    # 999 100


方式2:交叉赋值语法
m, n = n, m
print(m, n)  # 999 100
复制代码

 

3、解压赋值

当一个列表内有个数据值需要跟多个变量名绑定时,可以使用解压赋值。

解压赋值的时候正常情况下数据值个数和变量名个数需一致,否则会报错。

复制代码
name_list = ['jason', 'kevin', 'tony', 'oscar']
   
 '''low的写法'''

name1 = name_list[0]

name2 = name_list[1]

name3 = name_list[2]

name4 = name_list[3]


'''解压赋值语法'''

name1, name2, name3, name4 = name_list
复制代码

注意:解压赋值在使用的时候 正常情况下需要保证左边的变量名与右边的数据值个数一致

name_list = ['jason', 'kevin', 'tony', 'oscar']

a, b = name_list    # 变量名少了不行

a, b, c, d, e = name_list    # 变量名多了也不行

 

当需要解压的数据个数特别多,并且我们只需要使用其中的几个 那么可以打破上述的规则:

复制代码
name_list = ['jason', 'kevin', 'tony', 'oscar']

a, *b = name_list
print(a)    # jason
print(b)    # ['kevin', 'tony', 'oscar']


a, c, *b = name_list
print(a)    # jason
print(c)    # kevin
print(b)    # ['tony', 'oscar']

a, *b, c = name_list
print(a)    # jason
print(b)    # ['kevin', 'tony']
print(c)    # oscar
复制代码

 

当数据值不准备使用的时候 可以使用下划线作为变量名绑定:

name_list = ['jason', 'kevin', 'tony', 'oscar']

a, *_, c = name_list
print(a)    # jason
print(c)    # oscar

 

五、 逻辑运算符号

1、and

当and所连接的所有条件都成立时,返回True,否则返回False。

print(1<2 and 2>3)    # False

print(1<2 and 2<3)    # True

 

如果需要准确的说出具体的结果值,那么需要按照下列方式:

   1. 如果and左边的条件是成立的,那么就完全取决于右边的条件

   2. 右边如果直接是数据值,那么结果就是该数据值,如果是含有表达式,则为布尔值

print(1 < 10 and 666)    # 666
print(1 < 10 and 2 < 8)    # True
print(111 and 222)    # 222

 

2、or

当or所连接的所有条件中有一个成立,就返回True,否则返回False。

print(1 > 2 or 4 < 8 or 10 < 1 or 1 == 2)   # True
print(1 < 10 or 666)   # True
print(666 or 1 > 10)   # 666
print(0 or False)   # False
print(0 or 111)   # 111

 

3、not

    非
    取反

    返回与原来相反的布尔值。

is_login = False

print(not is_login)    # True

以下假设变量 a 为 10, b为 20:

 

六、成员运算符号

   in

用于判断变量名或数据值是否在某个数据值或变量名内部。(例如个体是否在群体内部)

name_list = ['jason', 'kevin', 'oscar', 'jerry']

print('tony' in name_list)  # False
print('tony' not in name_list)  # True
print('j' in name_list)  # False 列表最小单位是数据值,不能再细分

s1 = 'hello world'
print('d' in s1)  # True 字符串最小单位是单个单个的字符
d1 = {
      'username': 'jason',
      'pwd': 123
}

print('jason' in d1)     # False 字典成员运算只有键参与

print('username' in d1)     # True 

 

七、身份运算符

  • id()  返回一串数字,该数字可以看成是内存地址
  • is 判断内存地址是否相同
  • == 判断数据值是否相同
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
l2 = [11, 22, 33, 44, 55, 66, 77, 88]

print(l1 == l2)    # True

print(l1 is l2)    # False

从这里我们可以得出一个结论:内存地址相同时,两者数据值一定相同,数据值相同时,内存地址不一定相同。

小整数池

当我们把两个不同的变量名绑定相同的数据值时,python解释器会进行优化,pycharm也会进行一定的优化,一些位数较小的数字和一些较短的字符串当被检测到相同时,内存空间中会只用一个地址表示,反之,就会使用两块内存空间中的地址表示

复制代码
# 整形:较短的可以
a1 = 11
a2 = 11
print(a1 is a2)    # True

#浮点型:较短的可以
a3 = 11.11
a4 = 11.11
print(a3 is a4)    # True

#字符串:较短的可以
a5 = 'jason'
a6 = 'jason'
print(a5 is a6)    # True

#列表:无论长短都不可以
a7 = [1,2,3]
a8 = [1,2,3]
print(a7 is a8)   # False

#字典:无论长短都不可以
a9 = {'name' : 'zzh','age' : '21'}
a10 = {'name' : 'zzh','age' : '21'}
print(a9 is a10)   # False

#元组:较短的可以
a11 = (1,2,3)
a12 = (1,2,3)
print(a11 is a12)    # True

#集合:无论长短都不可以
a13 = {1,2}
a14 = {1,2}
print(a13 is a14)    # False
复制代码

 

 

posted @   莫~慌  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示