Python入坑第一章——基础篇

Python入坑第一章——基础篇

刚挖完坑的鄙人欠着成吨的数分作业又圆润地来挖了个新坑,照这个铲子的使用频率可能我要在ACM里打铁了hhh(flag++)


2017.11.27更新:
重新调整了内容,使得对像我一样的萌新更加友好,这一定很cooooooool


前言(吐槽)

在周围的同学还在为未来的挂科率第二的c语言(第一是大物)头疼的时候,我已经欢快地跑来学Python啦
不过Python对于新人来说(应该)还是很友好的,不知道为什么大学不学Python而非要学c…不过这为我提供了一个勾搭妹子的途径hhh (那边那个妹子,免费辅导c语言,手把手教哟)
~~仔细想想还是从头开始吧,不然我可能还得开一个c语言的坑

篇幅凑够了,那么就来进入正题吧


变量(Variable)

Python相对于c/c++的一个最大的不同应该就是Python是动态类型语言(Dynamic programming language)(另一个不同是强类型(Strongly typed),这里不作解释),通俗地说就是无需声明变量的类型,举个栗子:

c/c++中,我们在使用一个变量前需要先声明这个变量

    int a;
    a=1;

而在Python中,我们无需声明,即:

    a=1

我们没有声明这个变量的类型,也就是说这个变量可以储存其他类型的数据

    a=1.0
    a='Hello world!'

附带一提,Python中的字符串可以用" "或者' '(单引号)
此外还有多行字符串,用''' ''',例:

    a='''Hello
    world
    !'''

则输出a会显示:

Hello
world
!

Python提供了list(列表)和tuple(元组)
list可以理解为c/c++中的数组:

    b=[0,1,2,3] 

声明一个空的list则为:

    b=[]

list提供了以下操作,

    b.append(a) #向list末尾加入元素a
    b.pop() #删除list的最后一个元素
    b.pop(i) #删除list下标为i的元素
    b.insert(i,a) #向list的第i个位置插入元素a

我们可以直接通过下标访问或修改list中的元素:

    b[0]=0
    a=b[1]+233

通过逻辑推理,我们可知下标为-1时,对应的元素为list末尾的元素,同理可知,下标为-2时,对应倒数第二个元素(读者自证不难):

    b=[0,1,2,3,4]
    print(b[-1])
    print(b[-2])
4
3

还记得之前提到的么,Python是动态类型语言,我们并没有声明数组的类型,也就是说数组内的元素的类型可以不一致,即:

    b=["Hello world!",1, [2,3] , 4.5 ]

至于tuple元组,可以理解为一个无法改变的list,对其中的元素进行修改操作是不合法的:

    c=(0,1,2,3) #注意初始化时用小括号

输入和输出

上帝说,学习一门语言的时候,要做的第一件事就是输出一行“Hello world!( ´・ω・`)”
于是就有了print()

    print("Hello world!")

上帝说,我的颜文字呢(。•ˇ‸ˇ•。)?
于是就有了用来隔开多个输出内容的符号,

    print("Hello world!","( ´・ω・`)")

上帝心满意足地离开了,并扔给你了Problem a+b:

输入两个整数a和b,输出他们的和

解:显然,我们有input()帮助我们完成输入

    a=input()
    b=input()
    print(a+b)

输入1 1,我们得到:

11


喵喵喵?
先不要去找体育老师,直觉告诉我们,我们的a和b储存的数据不是整型,而是字符串,也就是说我们输出的不是整型11,而是字符串"11"
经过逻辑推理我们得知,input()返回的值默认为字符串
但我们想要它返回整型怎么办?我们可以将其转化为整形:

    a=int(input())
    b=int(input())
    print(a+b)

输入1 1,输出2

但转念一想,这个程序似乎不够人性化,我们应该提示用户应该怎么做

    a=int(input("请输入a:"))
    b=int(input("请输入b:"))
    print(a+b)

input()会在输入前显示括号内的内容,若括号内为空则不显示
开开心心地点击编译,然后编译器也高高兴兴地告诉我们:

SyntaxError: Non-UTF-8 code starting with '\xc7' in file but no encoding declared

简单地说:“劳资不认识中文啊魂淡!”
Python默认使用Ascii码编译,如果要让它学会中文,我们就需要让它采用utf-8码
在开头加上:

    #coding=utf-8

这样我们就告诉编译器:“现在你tm会中文了!”


循环(Loop)

现在让我们把之前的问题变得有趣一些

输入n个整数,输出他们的和

不管这个问题是不是真的变得有趣了一些,但是整数的数量并不是固定的,也就是说我们没法用a+b的方法去解决这一问题,这需要我们使用“循环”

    n=int(input())
    ans=0
    while n>=1: #注意这里有个冒号
        ans+=int(input())
        n-=1
    print(ans)

Python中使用缩进来确定语句块(而c/c++中使用{ }),对于这个while循环而言,ans+=int(input())n-=1都是它的循环体。*注意:多余或缺少的缩进都会导致编译器错误地识别语句块,造成编译失败或者运行结果错误。(买书时记得买游标卡尺)

此外Python还有for…in…循环,直接举个栗子:

    b=["P","y","t","h","o","n"]
    for a in b:
        print(a)

运行结果为:

P
y
t
h
o
n

易知for a in b为:将b中的元素依次赋值给a然后执行循环
则那个有趣的问题可以用for…in…循环解决:

    n=int(input())
    b=[]
    ans=0
    while n>=1:
        b.append( int(input()) )
        n-=1
    for a in b:
        ans+=a
    print(ans)

…呃,手滑了

    n=int(input())
    ans=0
    for a in range(n):
        ans+=int(input())
    print(ans)

其中range(n)会生成一个以0为首项1为公差的等差数列的前n项,说人话就是生成0~n-1的整数数列


条件语句

我的女朋友让我出去买一斤苹果,如果看到卖木瓜的,就买三个
让我们用程序员的角度去理解这句话:

    if SeePapaya:
        Apple=3
    else:
        Apple='一斤'

出门前女朋友又补充:搓衣板坏了,如果看到卖搓衣板的,就买一个
同样的,我们有:

    if SeePapaya:
        Apple=3
    elif SeeWashboard:
        Apple=1
    else:
        Apple='一斤'

由于我只看到了卖搓衣板的,于是我就带了一个苹果回家,然后把键盘跪坏了
然而程序员并没有女朋友


小结

以上知识点其实都很简单,半小时以内即可掌握,但最好要多写一些代码,习惯一下Python的风格,比如if、while等语句的冒号
鄙人用的是Eclipse+PyDev,主要是写Java是用的Eclipse,就懒得装别的了hhh(废人)
在有c/c++基础的前提下学Python还是很快的,当然,写博客的速度是恒定不变的,并且指不定哪天就弃坑了
在期中考之前抓紧把这个坑填了吧(笑)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值