草庐IT

Pyhton基础部分:6、与用户交互、基础运算符

Kkkkangsh 2023-03-28 原文

一、python数据类型

1、布尔值bool

​ 1、用来判断事物的对错,是否可行
​ True --->:对的,可行的,同时可用数字'1'表示
​ Fales--->:错误的,不可行,同时可用数字'0'表示
​ 2、在评估事物对错、比较事物大小时会返回对或错、是否可行

​ 代码表现:

    eg1:>>>:print(3>4)
         Fales
    eg2:>>>:name_stud = ('kangkang', 'xiaoli', 'xiaozhang')
      >>>: print('kangkang'in name_stud)
         ture

3、Python中所有数据本身都带有布尔值
表示为False的值:0, None, {}, (), ''
表示为True的值 :除上述几种,其余均为True
4、储存布尔值的变量名一般推荐使用is开头

​ 代码表现:

    is_correct = True
    is_error = Fales

2、元组tuple

1、元组是有序且不可更改的集合,也被称之为不可变的列表。在 Python 中,元组是用圆括号编写的。
2、小括号内部存放多个数据值,数据与数据之间用逗号隔开,数据可以是任何类型

​ 代码表现:

    thins_is_tuple = ('kangkang', 18 ,65.5, ['安徽', '上海'])

3、元组与列表对比

列表list 元组tuple
表现形式 中括号,内部数据值逗号隔开,数据值可以是任意类型 小括号,内部数字逗号隔开,数据值可以是任意类型
特点 可以索引取值,可修改括号内数据值 可以索引取值,不可修改内部数据值

3、元组内若只有一个数据值,则建议数据值后需要加逗号,若不加逗号则会被判定为数据值本身类型

3、集合set

1、集合是无序和无索引的集合。在 Python 中,集合用花括号编写。

2、大括号内存放多个数据值,数据值可以是任何类型

​ 代码表现:

    thins_is_set = {1, 11.1, 'kangkang', '安徽'}

3、集合与字典对比

字典dict 集合set
表现形式 大括号,内部数据值逗号隔开,数据值可以是任意类型,数据是k:v键值对 大括号,内部数字逗号隔开,数据值可以是任意类型,数据不是k:v键值对
特点 以K取值,可修V数据值 无序,无索引,括号内值不可修改,可以解压赋值

二、与用户交互

​ 与用户交互是指在日常生活中我们去银行取钱,当我们坐在柜台,收银小姐姐问我们需要办理什么业务时,我们告诉她我们的需求,这个过程就是在与用户交互

1、获取用户输入

​ input()----->:括号内获取用户输入

​ 代码表现:

    ussr_name = input('请输入您的用户名:')
    
     """
     1.先执行input获取用户输入
     2.将输入的数据绑定给变量名username
     3.以后在程序中就可以使用变量名反复调用用户数据
     """
     ps:input收到的数据会自动转成字符串

2、输出内部信息

​ print()----->:括号内输入内部信息

​ 代码表现:

    print()

1、括号内可以是任意类型数据,并且可放多个数据,需逗号 隔开

    prin('康康',1, 1.2)

2.print自带换行符
换行符:

​ \r\n

​ \n(斜杠与字母组合到一起可能会产生特殊的含义)

    print('康康\n', 1, 1.2)

​ 3.print也可以切换结束符
​ print(数据,end='默认是\n')

3、语言环境差异

1、python2与python3中两个关键字的区别

python2与python3中两个关键字的区别
    1、python2中
       input方法需要用户自己提前指定数据类型 写什么类型就是什么类型
 	   raw_input方法与python3中input一致,输入的统一处理成字符串	
    2、python2中
    	print方法有两种使用方式
           print 数据值
           print(数据值)

三、格式化输入

​ 格式化输入就是指在一段提前拟定好的文档中,有一些数据暂时无法提供,这个时候就会用到格式化输出,也就是占位符,将占位符填充至无法提供的数据处,以便在将来需要填充时能够方便、快捷的进行局部修改

1、代码实现

​ 占位符:%s (可以填充任何数据类型)

​ %d(只可以填充数字)

   info = '%s先生您好,您本月话费消费%d元,余额为%d元'
   print(info % ('康', 100, 50))

2、注意事项

1、有几个占位符就要填几个数据,不可多填或少填

2、占位符后填入数字来控制这段数字的位数

   info = '%s先生您好,您本月话费消费%08d元,余额为%08d元'
   %08d,%后08可以控制占位符位数

四、基本运算符

1、数学运算符

含义 常规表现方式 简化表现方式
+ x = x + 10 x +=10
- x = x - 10 x -=10
* x = x * 10 x *=10
/ x = n / 10 x /=10
% 取余 x = n % 10 x %=10
// 整除 x = n / / 10 x //=10
** 次方 x = n ** 10 x **=10

2、比较运算符

含义 表现方式
> 大于 3 > 1
< 小于 1 < 3
>= 大于等于 x >= 3
<= 小于等于 x <= 3
== 等于 3 = 3
!= 不等于 x != 3

五、常用赋值符号

1、链式赋值

1、语法表现

寻常表现方式:
   number1 = 10
   number2 = 10
   number3 =10
链式赋值方式:
   number1 = number2 = numbe3 = 10

2、交叉赋值

1、语法表现

   a = 10
   b = 20
寻常表现方式:
   c = 10
   a = b
   b = c
交叉赋值表现方式:
   a , b = b , a

3、解压赋值

1、语法表现

   student_nanme = ['康', '章', '张', '王']
寻常表现方式:
   class1 = student_nanme[0]
   class2 = student_nanme[1]
   class3 = student_nanme[2]
   class4 = student_nanme[3]
解压赋值表现方式:
   class1, class2, class3, class4 = student_nanme
   '''解压赋值在使用的时候 正常情况下需要保证左边的变量名与右边的数据值个数一致'''

2、多数据赋值方式

    1、在多个数据需要解压赋值时,但我们只需要列表中的其中一部分数值时,这个时候我们可以打破上述规则使用*号来接收不需要部分的数据值
    student_nanme = ['康', '章', '张', '王']
   表现方式:(取前部分值)
    class1, class2, *class3 = student_nanme   
   表现方式:(取后部分值)
    *class1, class2, class3 = student_nanme

1、 *号会接受多余部分数据值
2、当数据值不准备需要的时候,我们可以使用下滑线作为变量名绑定

六、逻辑运算符

逻辑运算符是python用来进行逻辑判断的运算符,有and,or,not三种

1、and 与

​ and运算符的功能:假设x,y为两个表达式,x and y表示当x,y两个表达式都为真是,运算的结果为真,and可以直观的理解成并且的意思。

1、and两边都为表达式

    print(5>4 and 5>6)
  若and两边都通过则显示:true(通过),反之则显示false(错误)。 

2、and一边为变量名,另一边为表达式

    a = 20
    print(a an 30>20)
  运行结果为:true
    print(a an 30<20)
   运行结果为:False

3、and两边都为变量名

    a = 20
    b = 30
    print(a and b)
   运行结果为:30
    print(b and a)
   运行结果为:20
 当and两边都为变量时,系统则判定为:ture(通过),若and右边不为表达式,而是变量名时,系统则会返回and右边的数据值,反之若有一个值为假系统则返回一个假的值(false)

2、or 或

​ or运算符的功能:or连接的多个条件只要有一个成立,结果就成立。

    print(30>20 or 30<35 or 15 or 20)
  如果条件中全部由or组成,那么判断起来非常的简单,只要发现一个成立 结果就为通过(true)。 若显示为Ture的数不为表达式,则会显示这个数的数据值

3、not 取反

not运算符的功能:取反,类似于说反话。

1、三者混合使用的时候有优先级之分,但是我们不需要记忆优先级,应该通过代码的形式提前规定好优先级
eg: 先乘除有加减 但是可以使用括号来改变优先级
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3)、

2、若无括号时,()>not>and>or

七、成员运算符

​ 简单的说就是用来识别某一元素是否包含在变量中,这个变量可以是字符串、列表、元组。

1、in和not 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 
    列表最小单位是数据值  不能再细分
运算符 功能
in 是否包含某元素,输出为TRUE或FALSE
not in 是否不包含某元素,输出为TRUE或FALSE

八、身份运算符

​ 身份运算符是python用来判断的两个对象的存储单元和数据值是否相同的一种运算符

1、is和==

    a1 = [11, 22, 33, 44, 55, 66, 77, 88]
    a2 = [11, 22, 33, 44, 55, 66, 77, 88] 
    print(11 is a1)    #验证身份(数据值)结果为true
    print(id(a1) == id(a2))  #验证地址结果为False
 1、地址相同,数据值一定相同
 2、数据值相同,地址不一定相同

九、练习题

1.获取用户输入并打印成下列格式
	 ------------ info of Jason -----------
    Name : Jason
    Age  : 18
    Sex  : male
    Job  : Teacher 
    ---------------- end -----------------
 答:
Name = input('请输入您的用户名:')
Age = input('请输入您的年龄:')
Sex = input('请输入您的性别:')
Job = input('请输入您的职业:')
a1 = (' ------------ info of %s -----------\n',
      'Name:%s\n',
      'Age:%s\n',
      'Sex:%s\n',
      'Job:%s\n',
      '---------------- end ----------------- ')
print(a1[0] % Name,
      a1[1] % Name,
      a1[2] % Age,
      a1[3] % Sex,
      a1[4] % Job,
      '---------------- end ----------------- ')


2.准备说出下列变量名v绑定的结果
	 v1 = 1 or 3
   答:print(v1)---->:1
    
    v2 = 1 and 3
   答:print(v2)----->:3
    
    v3 = 0 and 2 and 1
   答:prnt(v3)---->:1
    
    v4 = 0 and 2 or 1
   答:print(v4)---->:2
    
    v5 = 0 and 2 or 1 or 4
   答:print(v5)---->:2
        
    v6 = 0 or False and 1
  答:print(v6)---->:False

有关Pyhton基础部分:6、与用户交互、基础运算符的更多相关文章

  1. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  2. ruby - 触发器 ruby​​ 中 3 点范围运算符和 2 点范围运算符的区别 - 2

    请帮助我理解范围运算符...和..之间的区别,作为Ruby中使用的“触发器”。这是PragmaticProgrammersguidetoRuby中的一个示例:a=(11..20).collect{|i|(i%4==0)..(i%3==0)?i:nil}返回:[nil,12,nil,nil,nil,16,17,18,nil,20]还有:a=(11..20).collect{|i|(i%4==0)...(i%3==0)?i:nil}返回:[nil,12,13,14,15,16,17,18,nil,20] 最佳答案 触发器(又名f/f)是

  3. ruby-on-rails - 如何在 ruby​​ 交互式 shell 中有多行? - 2

    这可能是个愚蠢的问题。但是,我是一个新手......你怎么能在交互式ruby​​shell中有多行代码?好像你只能有一条长线。按回车键运行代码。无论如何我可以在不运行代码的情况下跳到下一行吗?再次抱歉,如果这是一个愚蠢的问题。谢谢。 最佳答案 这是一个例子:2.1.2:053>a=1=>12.1.2:054>b=2=>22.1.2:055>a+b=>32.1.2:056>ifa>b#Thecode‘if..."startsthedefinitionoftheconditionalstatement.2.1.2:057?>puts"f

  4. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  5. ruby - RVM "ERROR: Unable to checkout branch ."单用户 - 2

    我在新的Debian6VirtualBoxVM上安装RVM时遇到问题。我已经安装了所有需要的包并使用下载了安装脚本(curl-shttps://rvm.beginrescueend.com/install/rvm)>rvm,但以单个用户身份运行时bashrvm我收到以下错误消息:ERROR:Unabletocheckoutbranch.安装在这里停止,并且(据我所知)没有安装RVM的任何文件。如果我以root身份运行脚本(对于多用户安装),我会收到另一条消息:Successfullycheckedoutbranch''安装程序继续并指示成功,但未添加.rvm目录,甚至在修改我的.bas

  6. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  7. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  8. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  9. ruby - 带括号和 splat 运算符的并行赋值 - 2

    我明白了:x,(y,z)=1,*[2,3]x#=>1y#=>2z#=>nil我想知道为什么z的值为nil。 最佳答案 x,(y,z)=1,*[2,3]右侧的splat*是内联扩展的,所以它等同于:x,(y,z)=1,2,3左边带括号的列表被视为嵌套赋值,所以它等价于:x=1y,z=23被丢弃,而z被分配给nil。 关于ruby-带括号和splat运算符的并行赋值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

  10. ruby - 在没有基准或时间的情况下用 Ruby 测量用户时间或系统时间 - 2

    因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实

随机推荐