简易计算器

#简易计算器,蠢新一枚,功能尚不完善,本为个人练习,仅供参考
while 1:
a = input('请输入第一个运算数:').strip()#可输入前后带空格的数字
if a.lower() == 'exit':#不区分大小写的实现
break
c = input('请输入运算符(仅限+,-,*,/,**):').strip()
if c.lower() == 'exit':
break
b = input('请输入第二个运算数:').strip()
if b.lower() == 'exit':
break
if c == '+':
s = float(a) + float(b)
print(s)
elif c == '-':
s = float(a) - float(b)
print(s)
elif c == '*':
s = float(a) * float(b)
print(s)
elif c == '/':
if float(b) != 0:
s = float(a) / float(b)
print(s)
else:
print('除数不可为零!')
continue
elif c == '**':
s = float(a) ** float(b)
print(s)
else:
print('运算符有误!请输入"+,-,*,/,**"')
continue
cont = input('任意键继续,退出请输入N(不区分大小写):')
if cont.lower() == 'n':
break
else:
continue

计算元素类型个数

#输出输入字符串的元素类型个数,其他方法同理,isalph(),isalnum()
s = input('请输入:')
count = 0
for i in s:
if i.isdigit():
count += 1
print(count)

员工信息列表

可持续插入新的信息,输入提示符退出

employee = ['a','f','d','s']
while 1:
newem = input('请输入新职工姓名(退出请输入exit(case-insensitive)):')
if newem.lower() == 'exit':
break
else:
employee.append(newem)
print(employee)
print('添加成功')

赋值运算:

# Fibonacci series: 斐波纳契数列
# 两个元素的总和确定了下一个数
a, b = 0, 1
while b < 10:
print(b,end=' ')
a, b = b, a+b

这种赋值运算的要点是:先计算等号右边的,再赋值

首先,a = 0, b = 1.

然后,下一步,先等号右边,b 当前为1, a+b = 0 + 1 = 1,

再赋值:b赋值给a ,a = b(b=1)  ,a = a + b (a+b=0+1=1)

现在,a = 1,b = 1这次循环结束。

a = 1
b = 2
a,b = b,a#一行代码实现a,b值的互换
print(a,b)

输入过滤敏感信息

不再敏感词汇库中,添加到当前列表,反之,违规字符串将转化为“***”并添加到新列表。()

li = ['orange','banana','apple','watermellon','mongo','strawberry']
newli = []
while 1:
put = input('请输入(结束请输入exit :case-sensitive):')
if put.lower() == 'exit':
break
if put in li:
print('您输入的信息违规!!请重新输入')
newli.append('***')
else:
li.append(put)
print(li)
print(newli)

计算元素类型个数(升级:每段连续的数字计数为1)

s = input('>>>')
for i in s:#              #开始遍历字符串
if i.isalpha():#          #如果当前字符为字母的时候
s = s.replace(i,' ')#    #将其替换成' ',循环继续,同时保持了位置的一致性
l = s.split()#            #循环结束之后原先含有字母和数字的字符串,变成了只含有空格和数字的字符串,split将其分割成只含有数字列表
print(len(l))#                #输出列表长度,即为连续数字的统计
#可采用debug来更直观的看出每一步,每一次循环的具体流程及结果 #疑惑点:s 是一个字符串,不可变数据类型,但是for 会把s的数据先存储到自己循环机制里面,在这个过程中,其实改变的不是之前的s
#,而是不断改变生成新的s, for已经确定了循环次数,并且按照原来的s中每一个元素去循环,次数也是按照原有长度去循环

pass

python学习日记(练习,流程控制+数据结构)的更多相关文章

  1. python学习日记(流程控制习题)

    请输出1-2+3...+99除88以外的和 i = 1 sum = 0 while i <= 99: if i == 88: i = i + 1 continue else: if i%2 == ...

  2. Python学习笔记 - day4 - 流程控制

    Python流程控制 Python中的流程控制主要包含两部分:条件判断和循环. Python的缩进和语法 为什么要在这里说缩进和语法,是因为将要学习的条件判断和分支将会涉及到多行代码,在java.c等 ...

  3. PYTHON 学习笔记2 流程控制工具以及函数定义、匿名函数

    前言 在上一节的学习中.已经介绍了几种基本类型.包括字符串的定义,以及字符串中索引.切片.字符串拼接的使用方法.以及基本的整形数据运算.一些之前都没有了解过的运算符.比如 ** 乘方 //整数除法等. ...

  4. Python学习笔记:流程控制

    单分支: if 条件: 满足条件后执行的代码 程序举例: leiyu=28if leiyu > 22: print("You can find girl friend..." ...

  5. Python 学习日记(第三周)

    知识回顾 在上一周的学习里,我学习了一些学习Python的基础知识下面先简短的回顾一些: 1Python的版本和和安装 Python的版本主要有2.x和3.x两个版本这两个版本在语法等方面有一定的区别 ...

  6. Python分支结构与流程控制

    Python分支结构与流程控制 分支结构 if 语句 分支结构在任何编程语言中都是至关重要的一环,它最主要的目的是让计算机拥有像人一样的思想,能在不同的情况下做出不同的应对方案,所以if语句不管是在什 ...

  7. Python第四天 流程控制 if else条件判断 for循环 while循环

    Python第四天   流程控制   if else条件判断   for循环 while循环 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Python第二天 ...

  8. Python学习日记 --day2

    Python学习日记 --day2 1.格式化输出:% s d  (%为占位符 s为字符串类型 d为数字类型) name = input('请输入姓名') age = int(input('请输入年龄 ...

  9. python学习日记(基础数据类型及其方法01)

    数字 int 主要是用于计算的,常用的方法有一种 #既十进制数值用二进制表示时,最少使用的位数i = 3#3的ASCII为:0000 0011,即两位 s = i.bit_length() print ...

  10. python语法入门之流程控制

    python语法入门之流程控制 流程控制是指控制流程,具体指控制程序执行的流程. 流程控制分为三种: 1.顺序结构 程序从上而下的正常执行(正常执行的代码就是顺序结构) 2.分支结构 赋予程序人的思维 ...

随机推荐

  1. Vue基本使用和指令集

    Vue的使用 一.安装 对于新手来说,强烈建议大家使用<script>引入: 二. 引入vue.js文件 我们能发现,引入vue.js文件之后,Vue被注册为一个全局的变量,它是一个构造函 ...

  2. 自己实现数据结构系列四---Queue

    一.代码部分 1.定义接口: public interface Queue<E> { void enqueue(E e); E dequeue(); E getFront(); int g ...

  3. jmeter内存溢出解决办法

    原文:http://blog.51cto.com/xqtesting/2107927 使用jmeter进行压力测试时遇到一段时间后报内存溢出outfmenmory错误,导致jmeter卡死了,先尝试在 ...

  4. 【Python3练习题 009】 打印出所有的“水仙花数”

    # [Python练习题 009] 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,# 其各位数字立方和等于该数本身.例如:153是一个“水仙花数”,# 因为153=1的三次方+5的三次方+ ...

  5. spring遇到的Error applying BeanValidation relational constraints

    spring3.1+hibernate4集成测试时遇到的问题: log4j:WARN No appenders could be found for logger (org.springframewo ...

  6. Linux 下面RPM 安装的SQLSERVER 修改字符集的方法

    1. 自己还是太low 2. 遇到问题 先 -h 处理 3. 发现登录报错, 怀疑是字符集的问题: 4. 计划是修改字符集 到 自己的环境可用的状态 使用命令 /opt/mssql/bin/mssql ...

  7. Android——线程通讯 Handler、Looper、Message;

    线程通讯问题 (主要用到了Handler类,Looper类和Message类以及MessageQueue) 在Android中主线程如何向子线程中发送消息的问题.让我们来想想,这其中的过程,无非就是创 ...

  8. Storm原理

    zookeeper是对称结构

  9. MySQL 单个表锁死 对查询语句无响应

    这个时候应该怀疑读取都被加锁,应该尝试使用 show processlist 查看每一个正在运行的进程. 可以看到这样一个列表,里面有使用者即用户,正在使用数据库的 host, 使用的 db 目前的 ...

  10. shell自定义输入输出 read+echo

    自定义格式输入.输出(244)  输出:echo -e 解释转义字符 -n  回车不换行 \n   新的一行,等同于回车 \t 制表符 \r 回车 \b 回退 baskspace 删除键 演示\n \ ...