Fork me on GitHub

逆水行舟,不进则退

人与人之间最小的差距是智商,最大的差距是坚持。

python学习日记(练习,流程控制+数据结构)

简易计算器

#简易计算器,蠢新一枚,功能尚不完善,本为个人练习,仅供参考
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

posted @ 2018-11-18 20:57  咕噜牛Gruffalo  阅读(197)  评论(0编辑  收藏  举报