前言
最近需要开始使用python,但是对python了解的并不多,于是先从很早之前刚学C++时写过的一些练手题开始,使用python来实现相同的功能,在温习python基础语法的同时,也一起来感受感受python的魅力
99乘法表
c++:
cpp
#include<iostream>
int main()
{
int i,j;
for (i = 1; i <= 9; i++)
{
for (j = 1; j <= i; j++)
std::cout <<j<<"*"<<i <<"=" << i * j << " ";
std::cout << '\n';
}
}
python:
python
for lie in range(1, 10):
for hang in range(1, lie + 1):
print(f"{hang}*{lie}={hang * lie}", end=" ")
print() # 打印空行
素数
c++
cpp
#include<iostream>
int judge(int ,bool);
int main()
{
int n;
std::cout << "请输入数字n,判断其是否为素数" << '\n' << "n=";
std::cin >> n;
bool flage = true;
if (judge(n,flage) == false) std::cout << n<<"不是素数";
else if (judge(n,flage) == true) std::cout << n<<"是素数";
}
int judge(int n, bool flage)
{
for (int i = 2; i <= sqrt(n); i++)
{
if ((n % i) == 0)
{
flage = false;
break;
}
}
return flage;
}
python:
python
import math
n = int(input('请输入数字n,判断其是否为素数\nn='))
Is_SuShu = True
for i in range(2, int(math.sqrt(n))):
if n % i == 0:
Is_SuShu = False
break
if Is_SuShu:
print(f'{n}是素数')
else:
print(f'{n}不是素数')
水仙花数
c++:
cpp
#include<iostream>
//水仙花数:各位数字的立方相加等于其本身
//如果三位数的话,就是个位数的立方加上十位数的立方加上百位数的立方等于其本身的数,就叫水仙花数
int main()//求100到999内的所有水仙花数
{
int i = 100;
int ge, shi, bai;
do
{
ge = i % 10;
shi = (i % 100) / 10;
bai = (i % 1000) / 100;
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i)
std::cout << i << '\n';
i++;
} while (i <= 999);
return 0;
}
python:
python
for i in range(100, 999):
bai_wei = int(i / 100 % 10)
shi_wei = int(i / 10 % 10)
ge_wei = int(i / 1 % 10)
if bai_wei ** 3 + shi_wei ** 3 + ge_wei ** 3 == i:
print(i)
括号匹配
cpp
#include<iostream>
#include<string>
#include<stack>
static bool Is_righ(std::string In_str);
int main()
{
std::string In_str;
std::cout << "请输入一个表达式 :";//如:{{([])}}
std::cin >> In_str;
if (Is_righ(In_str)) {
std::cout << "括号匹配";
}
else {
std::cout << "括号不匹配";
}
}
static bool Is_righ(std::string In_str) {
std::stack<char> st;
bool check = true;
for (int i = 0; i < In_str.length(); i++) {
switch (In_str[i]) {
case '(': {
st.push('('); break;
}
case '[': {
st.push('['); break;
}
case '{': {
st.push('{'); break;
}
case ')': {
if (st.top() == '(')
st.pop();
else {
check = false;
break;
}
break;
}
case ']': {
if (st.top() == '[')
st.pop();
else {
check = false;
break;
}
break;
}
case '}': {
if (st.top() == '{')
st.pop();
else {
check = false;
break;
}
break;
}
default:break;
}
}
if (st.empty() && check)
return true;
else
return false;
}
python:
python
st = []
In_str = input("请输入一个表达式:") # 如{()[]}
Is_ok = True
for i in In_str:
if i == '(':
st.append('(')
elif i == '[':
st.append('[')
elif i == '{':
st.append('{')
elif i == ')':
if st[-1] == '(':
st.pop()
else:
Is_ok = False
break
elif i == ']':
if st[-1] == '[':
st.pop()
else:
Is_ok = False
break
elif i == '}':
if st[-1] == '{':
st.pop()
else:
Is_ok = False
break
if st is None and Is_ok:
print('括号匹配', end="")
else:
print('括号不匹配', end="")
python整体比C++要简介的多,当然使用python完成C++的练习题肯定也不能完全体现python的优势。