从C到Python
Posted zxcv1234
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从C到Python相关的知识,希望对你有一定的参考价值。
基本输入与输出
输出
C: printf(“Hello World
”);
P: print(“Hello World
”)
简单的字符串输出对于printf()/print()函数来说,C和Python差别貌似不大,细心的读者可能会发现,在Python中一条语句后面并没有分号,事实确实如此,在Python中,一般一行一条语句,如果写两条,你需要加上 ; 隔开,但一般没有人会去那么做,想一想在C中有多少次都是因为忘添分号导致编译出错的,所以在Python中,忘了分号吧。
但是复杂一点的格式输出,比如打印一定精度的数字或者字符串两者就不一样了
C:
#include<stdio.h>
int main(){
int a=1;
float b =1.0;
char str[10]="abc";
printf("a=%d b=%.3f str=%s",a,b,str) ;
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
结果应该为a=1 b=1.000 str=abc
P:
b = 1.0
str="abc"
print ("a=%d b=%f str=%s" % (a, b,str))
print(‘a={} b={} str={}‘.format(a, b,str))
- 1
- 2
- 3
- 4
- 5
结果为
- a=1 b=1.000000 str=abc
- a=1 b=1.0 str=abc
Python中也有类似C语言中的格式输出,就是把逗号换成%,把变量用圆括号包围起来。除此之外,还有format方法。
Python中format方法所做的事情便是将每个参数值替换至格式所在的位置。在Python3中数有四种类型:int、float、bool、complex,int表示为长整型,没有python2 中的 Long,也没有char类型。
正如你所看到的那样,Python中的变量不需要声明,但每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。这一点与c不同,其他诸如转义序列 …都差不多。还有一点,在Python中print()函数 默认是以换行符作为结束值的,C语言中printf()函数结束需要手动换行。如果在Python中不想换行,可以在说完正事后添上end = “ “,注意用逗号隔开就行。如:
print(‘a={} b={} str={}‘.format(a,b,str),end =‘‘)
print(‘a={} b={} str={}‘.format(a,b,str),end =‘‘)
- 1
- 2
结果为 a=1 b=1.0 str=abca=1 b=1.0 str=abc
输入
C:
#include<stdio.h>
int main()
{
int a=0;
float b=0;
char str[10];
printf("请输入三个数据,输入的三个数据将会分别赋值给a,b,str, 用逗号隔开
");
scanf( "%d%f%s",&a,&b,str);
printf( "%d %f %s ",a,b,str);
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
运行结果为:
- 请输入三个数据,输入的三个数据将会分别赋值给a,b,str, 用逗号隔开 输入 :1 2.0 gg 输出 : 1 2.000000 gg
P:
a,b,str=input("请输入三个数据,输入的三个数据将会分别赋值给a,b,str, 用逗号隔开
").split()
print(‘a={} b={} str={}‘.format(a,b,str),end =‘ ‘)
- 1
- 2
- 3
- 4
运行结果为:
- 请输入三个数据,输入的三个数据将会分别赋值给a,b,str, 用逗号隔开
- 输入 :test1 test2.0 22
- 输出: a=test1 b=test2.0 str=22
input()函数用于从用户那里获得一些文本,有一个用来提示用户输入信息的字符串参数,在C语言中,要想实现同样的功能,需要printf()。当然input只能接受一个值,要想输入多个,用 input().split(),前面就可以加任意多的数据了。
值得注意的是:input返回的是字符串,虽然看着是数字,但其实是字符串,需要int(input())来进行转化,如果输入的不是数字而是字符串,这个转换就会报错,在与用户输入打交道的地方,要注意检查类型是否匹配,可以用Try语句,后面再说。
控制流语句
在Python中有三种控制流语 句—— if for和while,下面比较其与C语言中的区别
If
C
#include <stdio.h>
int main()
{
int a=0;
printf("请输入一个数字
");
scanf("%d",&a);
if(a==0)
{
printf("a =0");
}
else if(a>0)
{
printf("a>0");
}
else if(a<0)
{
printf("a>0");
}
else
printf("a不是数字 ");
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
p
a=int(input("请输入一个数字
"))
if a==0:
print("a =0")
elif a>0:
print("a>0")
else:
print("a<0 ")
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
运行结果一样
- 请输入一个数字
- 23333
- a>0 条
C中:条件语句后面要用括号包含条件,把条件成立时的语句块用花括弧{}围起来,Python中 if 语句后直接接条件再添加冒号,条件成立时执行的语句块保持缩进一致,一般缩进四个空格或者一个制表符。
但是一定要记住,Python使用缩进级别来告诉编译器哪些语句分别属于哪个 块。如果同一语句块中缩进不一致,程序结果可能和预想的结果不一样甚至直接报错,这便是没有用花括弧{}所带来的弊端。
至于else if()简写成elif, Python中不存在switch语句。你可以通过使用if..elif..else语句来实现同样的事 情。
while
while语句在条件为真的前提下重复执行某块语句
C:
#include <stdio.h>
int main()
{
int a=233,b;
bool flag=1;
printf("猜猜a等于多少,随便输入一个数字
");
scanf("%d",&b);
while(flag)
{
if(a==b)
{
printf("猜对了
");
flag=0;
}
else
{
if(a>b)
{
printf("有点小了
");
}
else
{
printf("有点大了
");
}
printf("继续猜: ");
scanf("%d",&b);
}
}
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
P:
a=233
flag=1
b=int(input("猜猜a等于多少,随便输入一个数字
"))
while flag:
if a==b:
print("猜对了")
flag=0
else:
if a>b:
print("有点小了")
else:
print("有点大了")
b=int(input("继续猜"))
else:
print(‘游戏结束.‘)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
结果如下
-
猜猜a等于多少, 随便输入一个数字 2 有点小了
继续猜3 有点小了
继续猜255 有点大了
继续猜233 猜对了 游戏结束.
while在C和Python中,区别在于判断条件的括号()换成冒号:,花括弧{}换成缩进就行了,另外,Python中while可以和else配合使用,else代码块在while 循环的条件变为False时开始执行,也可以不用else语句。其他用法差异不大。
for
C:
#include <stdio.h>
int main()
{
int i;
for(i=0;i<10;i++)
{
printf("%d ",i);
}
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
P:
for i
in range(0,10,1):
print(i," ",end="")
- 1
- 2
- 3
输出结果如下
- 0 1 2 3 4 5 6 7 8 9
Range()函数的第一个参数指定了起始位置,第二个参数限定了范围,第三个参数时步长。range()每次会生成一个数字.
In 运算符 如果在指定的序列中找到值返回 True,否则返回 False,因此也可以用在其他条件语句中,测试实例中包含了一系列的成员,包括字符串,列表或元组。至于什么是列表或这元组,后面介绍。
Python 中的for和与C中的for同Python中的while与C中的while相差不多,都是把C中的括弧()转为冒号:,把循环体的{}换为一致的缩进即可。
喜欢的朋友可以加QQ群,群内有免费资料供大家一起交流学习
以上是关于从C到Python的主要内容,如果未能解决你的问题,请参考以下文章