首页 > 其他分享 >用户交互与运算符

用户交互与运算符

时间:2023-05-07 19:44:07浏览次数:32  
标签:10 nums 交互 用户 运算符 input True 赋值

程序与用户交互

什么是与用户交互

用户交互就是人往计算机中input/输入数据,计算机print/输出结果

为什么要与用户交互

为了让计算机能够像人一样与用户沟通交流

比如,过去我们去银行取钱,用户需要把帐号密码告诉柜员,而现在,柜员被ATM机取代,ATM机就是一台计算机,所以用户同样需要将帐号密码告诉计算机,于是我们的程序中必须有相应的机制来控制计算机接收用户输入的内容,并且输出结果

如何与用户交互

交互的本质就是输入、输出

输入input:

# 在python3中input功能会等待用户的输入,用户输入任何内容,都存成字符串类型,然后赋值给等号左边的变量名
>>> username=input('请输入您的用户名:') 
请输入您的用户名:jason # username = "jason"
>>> password=input('请输入您的密码:') 
请输入您的密码:123 # password = "123"
 
# 了解知识:
# 1、在python2中存在一个raw_input功能与python3中的input功能一模一样
# 2、在python2中还存在一个input功能,需要用户输入一个明确的数据类型,输入什么类型就存成什么类型
>>> l=input('输入什么类型就存成什么类型: ')
输入什么类型就存成什么类型: [1,2,3]
>>> type(l)
<type 'list'>

输出print:

>>> 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@

输出之格式化输出

什么是格式化输出

把一段字符串里面的某些内容替换掉之后再输出,就是格式化输出。

为什么要格式化输出

我们经常会输出具有某种固定格式的内容,比如:'亲爱的xxx你好!你xxx月的话费是xxx,余额是xxx‘,我们需要做的就是将xxx替换为具体的内容。

如何格式化输出

这就用到了占位符,如:%s、%d:

# %s占位符:可以接收任意类型的值
# %d占位符:只能接收数字
>>> print('亲爱的%s你好!你%s月的话费是%d,余额是%d' %('tony',12,103,11))
亲爱的tony你好!你12月的话费是103,余额是11
 
# 练习1:接收用户输入,打印成指定格式
name = input('your name: ')
age = input('your age: ') #用户输入18,会存成字符串18,无法传给%d
print('My name is %s,my age is %s' %(name,age))
    
# 练习2:用户输入姓名、年龄、工作、爱好 ,然后打印成以下格式
------------ info of Tony -----------
Name  : Tony
Age   : 22
Sex   : male
Job   : Teacher 
------------- end -----------------

基本运算符

算术运算符

python支持的算数运算符与数学上计算的符号使用是一致的,并在此基础稍作变化

算术运算符

python支持的算数运算符与数学上计算的符号使用是一致的,并在此基础稍作变化

比较运算符

比较运算用来对两个值进行比较,返回的是布尔值True或False

赋值运算符

python语法中除了有=号这种简单的赋值运算外,还支持增量赋值、链式赋值、交叉赋值、解压赋值,这些赋值运算符存在的意义都是为了让我们的代码看起来更加精简

链式赋值

如果我们想把同一个值同时赋值给多个变量名,可以这么做

>>> z=10
>>> y=z
>>> x=y
>>> x,y,z
(10, 10, 10)

链式赋值指的是可以用一行代码搞定这件事

>>> x=y=z=10
>>> x,y,z
(10, 10, 10)

交叉赋值

我们定义两个变量m与n

>>> m=10
>>> n=20

如果我们想将m与n的值交换过来,可以这么做

>>> temp=m
>>> m=n
>>> n=temp
>>> m,n
(20, 10)

交叉赋值指的是一行代码可以搞定这件事

>>> m=10
>>> n=20
>>> m,n=n,m # 交叉赋值
>>> m,n
(20, 10)

解压赋值

如果我们想把列表中的多个值取出来依次赋值给多个变量名,可以这么做

>>> nums=[11,22,33,44,55]
>>> 
>>> a=nums[0]
>>> b=nums[1]
>>> c=nums[2]
>>> d=nums[3]
>>> e=nums[4]
>>> a,b,c,d,e
(11, 22, 33, 44, 55)

解压赋值指的是一行代码可以搞定这件事

>>> a,b,c,d,e=nums # nums包含多个值,就好比一个压缩包,解压赋值因此得名
>>> a,b,c,d,e
(11, 22, 33, 44, 55)

注意,上述解压赋值,等号左边的变量名个数必须与右面包含值的个数相同,否则会报错

#1、变量名少了
>>> a,b=nums
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 2)
 
#2、变量名多了
>>> a,b,c,d,e,f=nums
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: not enough values to unpack (expected 6, got 5)

但如果我们只想取头尾的几个值,可以用*_匹配

>>> a,b,*_=nums
>>> a,b
(11, 22)

ps:字符串、字典、元组、集合类型都支持解压赋值

逻辑运算符

逻辑运算符用于连接多个条件,进行关联判断,会返回布尔值True或False

连续多个and

可以用and连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为False,则无需再往右判断,可以立即判定最终结果就为False,只有在所有条件的结果都为True的情况下,最终结果才为True。

>>> 2 > 1 and 1 != 1 and True and 3 > 2 # 判断完第二个条件,就立即结束,得的最终结果为False
False

连续多个or

可以用or连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为True,则无需再往右判断,可以立即判定最终结果就为True,只有在所有条件的结果都为False的情况下,最终结果才为False

>>> 2 > 1 or 1 != 1 or True or 3 > 2 # 判断完第一个条件,就立即结束,得的最终结果为True
True

混用and、or、not

# and、or、not三者如果混用时,是存在优先级之分的,但在日常开发中我们无需记忆优先级,应该使用()来区分优先级、提升程序的可读性
>>> (3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)
False 

成员运算符

注意:虽然下述两种判断可以达到相同的效果,但我们推荐使用第二种格式,因为not in语义更加明确

>>> not 'lili' in ['jason','tom','robin']
True
>>> 'lili' not in ['jason','tom','robin']
True

身份运算符

需要强调的是:==双等号比较的是value是否相等,而is比较的是id是否相等

#1. id相同,内存地址必定相同,意味着type和value必定相同
#2. value相同type肯定相同,但id可能不同,如下
>>> x='Info Tony:18'
>>> y='Info Tony:18'
>>> id(x),id(y) # x与y的id不同,但是二者的值相同
(4327422640, 4327422256)
 
 
>>> x == y # 等号比较的是value
True
>>> type(x),type(y) # 值相同type肯定相同
(<class 'str'>, <class 'str'>)
>>> x is y # is比较的是id,x与y的值相等但id可以不同
False

标签:10,nums,交互,用户,运算符,input,True,赋值
From: https://www.cnblogs.com/ycmyay/p/17379941.html

相关文章

  • (六) Java API查询与算数运算符练习
    目录API在线文档算数练习题API在线文档各种API集合不过有了chatgpt这些都是弟弟了算数练习题i=i++publicclassInt{ publicstaticvoidmain(String[]args){ inti=1; i=i++; System.out.println(i); }}这里的输出应该是1,因为i=i++这句规则......
  • DC-1 find提权/sql数据库创建用户(个人笔记)
    进入数据库select*fromusers\G;\G为了让界面看着更整洁 在exploitdb中有一个针对Drupal7版本的攻击脚本,可以增加一个admin权限的用户账号:终端/msf输入:searchsploitdrupalpython2/usr/share/exploitdb/exploits/php/webapps/34992.py-thttp://url-uadmin3-pad......
  • 腾讯丢失用户数据
    2018年8月腾讯云丢失用户数据腾讯云故障致一客户数据丢失被索赔千万,拒“引流补偿”提议北京清博数控是一家以“前沿数控技术”为名的微信公众号起家的公司,定位于数控、模具、机械行业,垂直行业精准粉丝突破了40万人。为应对流量迅速增加以及安全可靠的需求,前沿数控选择使用腾讯......
  • 使用代码创建用户组 odoo
    首先在security目录下新增security.xml文件,并添加__manifest__.py引用,xml内容如下 <?xmlversion="1.0"?><odoo><data><recordid="module_xxx_title"model="ir.module.category"><fieldname=&quo......
  • (转)wsl2改用户名 亲测有效
    改用户名1.先关闭WSL2powershell中输入:(在ps中操作简单多了,不会出现进root用户文件关不掉的情况)wsl--shutdown2.配置默认登录用户为rootpowershell中输入:ubuntu2004config--default-userroot3.修改用户名打开WSL,进入Ubuntu,将原始用户名(talkweb)修改为新用户名(......
  • 快速上手Linux核心命令(十一):Linux用户相关命令
    目录前言useradd创建用户usermod修改用户信息userdel删除用户groupadd创建新的用户组groupdel删除用户组passwd修改用户密码chage修改用户密码有效期批量更新用户密码su切换用户visudo编辑sudoers文件sudo以另一个用户身份执行命令id显示用户与用户组信息w显示已登录......
  • Linux 系统用户登录时很慢怎么办
    第一步:编辑 /etc/ssh/sshd_config文件vim/etc/ssh/sshd_config 第二步:搜索DNS 第三步: 将UseDNS前面的#注释删掉,同时将UseDNS后面的yes改为no,保存后退出 第四步:重启服务或服务器生效 ......
  • 条件运算符,扩展运算符
    1.扩展运算符:a+=b:a=a+b;             a-=b:a=a-b;a*b:a=a*b;              a/=b:a=a/b;a%=b:a=a%b;(%取余)    a&=b:a=a&b;a|=b:a=a|b(|或)         a^=b:a=a^b 2.三元运算符(条件运算符) 3......
  • 运算符的重载
    1.重载为类的成员函数#include<iostream>usingnamespacestd;classShu{public:intm;intn;Shuoperator+(Shu&a){Shut;t.m=this->m+a.m;t.n=this->n+a.n;returnt;}};intmain(){Shua1;a......
  • 第五章 输入输出系统 5.6 用户层的I/O软件
    一、系统调用与库函数大部分I/O软件都在操作系统内部,只有一小部分在用户层,包括与用户程序链接在一起的库函数,以及完全运行于内核以外的假脱机系统等。二、假脱机技术(SPOOLing) 1.虚拟性是OS的四大特征之一  多道程序技术将一台物理CPU虚拟为多台逻辑CPU,从而允许多个用户......