写一个简单(+-*/)的计算器,while单层循环完成9 * 9乘法表,str字符串函数应用,格式化输出

一、写一个简单(±*/)的计算器, 确保输入的都是数字(如果不是数字,让它重新输入)

一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。

def add(x, y):
    return x + y


def subtract(x, y):
    return x - y


def multiply(x, y):
    return x * y


def divide(x, y):
    return x / y


print("选择运算:")
print("a、相加")
print("b、相减")
print("c、相乘")
print("d、相除")
choice = input("输入你的选择(a/b/c/d)")
num1 = int(input("输入第一个数字:"))
num2 = int(input("输入第二个数字:"))
if choice == 'a':
    print(num1, "+", num2, "=", add(num1, num2))
elif choice == 'b':
    print(num1, "-", num2, "=", subtract(num1, num2))
elif choice == 'c':
    print(num1, "*", num2, "=", multiply(num1, num2))
elif choice == 'd':
    print(num1, "/", num2, "=", divide(num1, num2))
else:
    print("非法输入")
结果
选择运算:
a、相加
b、相减
c、相乘
d、相除
输入你的选择(a/b/c/d)a
输入第一个数字:7
输入第二个数字:8
7 + 8 = 15
#非整型数字会出现报错
输入你的选择(a/b/c/d)b
输入第一个数字:2.5
Traceback (most recent call last):
  File "E:\pycharm\pythonProject\6019.py", line 23, in <module>
    num1 = int(input("输入第一个数字:"))
ValueError: invalid literal for int() with base 10: '2.5'

二、while单层循环完成9 * 9乘法表


x = 1
y = 1
while x < 10:
    print(x, '*', y, '=', x * y, end='\t')
    if x == y:
        y = 0
        x = x + 1
        print()
    y = y + 1
结果
1 * 1 = 1	
2 * 1 = 2	2 * 2 = 4	
3 * 1 = 3	3 * 2 = 6	3 * 3 = 9	
4 * 1 = 4	4 * 2 = 8	4 * 3 = 12	4 * 4 = 16	
5 * 1 = 5	5 * 2 = 10	5 * 3 = 15	5 * 4 = 20	5 * 5 = 25	
6 * 1 = 6	6 * 2 = 12	6 * 3 = 18	6 * 4 = 24	6 * 5 = 30	6 * 6 = 36	
7 * 1 = 7	7 * 2 = 14	7 * 3 = 21	7 * 4 = 28	7 * 5 = 35	7 * 6 = 42	7 * 7 = 49	
8 * 1 = 8	8 * 2 = 16	8 * 3 = 24	8 * 4 = 32	8 * 5 = 40	8 * 6 = 48	8 * 7 = 56	8 * 8 = 64	
9 * 1 = 9	9 * 2 = 18	9 * 3 = 27	9 * 4 = 36	9 * 5 = 45	9 * 6 = 54	9 * 7 = 63	9 * 8 = 72   9 * 9 = 81

三、str字符串中的strip, replace, split, partition, expandtabs, join center,ljust,rjust

strip()方法

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)。
str_data.strip([chars])
参数 chars – 移除字符串头尾指定的字符。

str_data = "00000i am king00000"
print(str_data.strip('0'))
结果
i am king

replace()

描述
Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

语法
replace()方法语法:

str_data.replace(old, new,[ max])

参数

old – 将被替换的子字符串。
new – 新字符串,用于替换old子字符串
max – 可选字符串, 替换不超过 max 次
返回值
返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。
实例

str_data = '52013114'
str_data = str_data.replace('0', '你')
print(str_data)
结果
5213114

split () 分割 和 join()合并

split()可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。示例代码如下:

str_data = "to be or not to be"
str_data.split('be')
print(str_data.split())
print(str_data.split('be'))
结果
['to', 'be', 'or', 'not', 'to', 'be']
['to ', ' or not to ', '']

join()的作用和split()作用刚好相反,用于将一系列子字符串连接起来。示例代码如下:

str_var = ['a', 'b', 'c']
'*'.join(str_var)
print('*'.join(str_var))
结果
a*b*c

center()、ljust()、rjust()格式排版

center()、ljust()、rjust()这三个函数用于对字符串实现排版。示例如下:

str_data = "run"
str_data.center(20, '*')
str_data.rjust(20)
str_data.ljust(20)
print(str_data.center(20, '*'), str_data.rjust(20), str_data.ljust(20))
结果
********run*********                  run run                 

partition() 方法搜索指定的字符串

定义和用法
partition() 方法搜索指定的字符串,并将该字符串拆分为包含三个元素的元组。

第一个元素包含指定字符串之前的部分。

第二个元素包含指定的字符串。

第三个元素包含字符串后面的部分。

注释:此方法搜索指定字符串的第一个匹配项。

语法:
string.partition(value)

txt = "I could eat bananas all day"
y = txt.partition("bananas")
print(y)
结果
('I could eat ', 'bananas', ' all day')

expandtabs()方法

expandtabs() 方法把字符串中的 tab 符号 \t 转为空格,tab 符号 \t 默认的空格数是 8,在第 0、8、16…等处给出制表符位置,如果当前位置到开始位置或上一个制表符位置的字符数不足 8 的倍数则以空格代替。
expandtabs()方法语法:
str.expandtabs(tabsize=8)
tabsize – 指定转换字符串中的 tab 符号(‘\t’)转为空格的字符数。

str_var = 'run\t12315\tabc'
print('原始字符串: {}'.format(str_var))
print('使用 2 个空格替换 \\t 符号: {}'.format(str_var.expandtabs(tabsize=2)))
print('使用 3 个空格: {}'.format(str_var.expandtabs(tabsize=3)))
print('使用 4 个空格: {}'.format(str_var.expandtabs(tabsize=4)))
print('使用 5 个空格: {}'.format(str_var.expandtabs(tabsize=5)))
print('使用 6 个空格: {}'.format(str_var.expandtabs(tabsize=6)))
结果
原始字符串: run	12315	abc
使用 2 个空格替换 \t 符号: run 12315 abc
使用 3 个空格: run   12315 abc
使用 4 个空格: run 12315   abc
使用 5 个空格: run  12315     abc
使用 6 个空格: run   12315 abc

四、格式化输出

python中的格式化:

使用format方法

语法:

f/F"{你要展示内容}{你要展示的内容}…"

指定宽度和对齐方式,以及填充字符

{name:填充字符对齐方式宽度},使用*填充对齐方式宽度,之间不使用任何分隔符。

{name:*^20}: ^居中对齐

{name:*<20}: <向左对齐

{name:*>20}: >向右对齐

例:格式化输出:
姓名 年龄 性别 家庭住址
xxx xxxx
list_data = [{name: xxx, age: xxx, gender: xxx, address}, …]
包含居中对齐,向左对齐, 向右对齐

list_data = [{'name': '张三', 'age': 21, 'gender': '男', 'address': '燕京'}]
print(F'My name is{list_data[0].get("name"):*^10}, My age is{list_data[0].get("age"):*<6}, '
      F'My gender is{list_data[0].get("gender"):*^5},My gender is
      {list_data[0].get("address"):*>20}.')
名字居中对齐(使用*填充,宽度10),年龄向左对齐(使用*填充,宽度6),
性别居中对齐(使用*填充,宽度5),家庭住址向右对齐(使用*填充,宽度20)
结果
My name is*张三*, My age is 21****,My gender is****, My gender is**************燕京.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值