暑假python学习知识点

 Python个人学习

输入输出

输出

例子:print('hello, world')

也可以接受多个字符

print('The quick brown fox', 'jumps over', 'the lazy dog')

The quick brown fox jumps over the lazy dog

这时会将逗号当成一个空格来输出。

输入:

提供一个input()函数让用户进行输入。

>>> name = input()

Michael

当输入时,直接将用户输入的赋值。

同时,input函数可以顺便输入提示语句。

name = input('please enter your name: ')

print('hello,', name)

当在进行输入时,会提示 please enter your name,然后在用户进行输入。

小结:

任何计算机程序都是为了执行一个特定的任务,有了输入,用户才能告诉计算机程序所需的信息,有了输出,程序运行后才能告诉用户任务的结果。

输入是Input,输出是Output,因此,我们把输入输出统称为Input/Output,或者简写为IO

input()print()是在命令行下面最基本的输入和输出,但是,用户也可以通过其他更高级的图形界面完成输入和输出,比如,在网页上的一个文本框输入自己的名字,点击确定后在网页上看到输出信息。

 

 

语法有所不同:采用缩进的方式。

# print absolute value of an integer:

a = 100

if a >= 0:

    print(a)

else:

    print(-a)

其中,#用来注释,编译器会忽视注释内容。

当语句用以:结尾时,缩进的语句视为代码块。缩进并没有规定缩进是几个空格还是说Tab,按照约定俗称的管理,始终坚持使用4个空格的缩进。而且,大小写敏感。而且如果使用Tab时需要设置空格的数量。

小结:

Python使用缩进来组织代码块,请务必遵守约定俗成的习惯,坚持使用4个空格的缩进。

在文本编辑器中,需要设置把Tab自动转换为4个空格,确保不混用Tab和空格。

 

 

数据类型:

整数和浮点数:浮点数也就是小数,之所以 称之为浮点数,是因为,浮点数的小数点位置是可以改变的。浮点数和整数在计算机的内部的尺寸方式不同,整数永远是精确的,而浮点数会有误差。

字符串:

字符串是以单引号或双引号括起来的任意文本,当在字符串内部可以用转义字符\来进行表示。

布尔值:

布尔值和布尔代数表示完全一致,一个布尔值只有正确和错误两个值。当然布尔值可以使用 and,or和not运算。

And运算是与运算,只有当两个值都为ture时才为ture。

其所起到的作用是&&。

Or运算是或运算,当两个值其中一个为ture时值为ture,

其所起到的作用是||。

Not运算是非运算,作用为!。

空值

在语言中,空值是一种特殊的值,用none表示。None不能理解为0,因为0是有意义的,而none是一个特殊的空值。

变量:

变量本身类型不固定的语言为动态语言,与会对应的是静态语言。静态语言在定义时必须指定变量类型,如果类型不匹配,将会报错。

a = 'ABC'

再定义时,python翻译器就干了两件事情:

  1. 在内存中创建了一个’ABC’的字符串。
  2. 在内存中创建了一个名为a的变量,并把它指向‘ABC’。

//有点类似于指针。

在python中有两种除法,一种除法是/:

这种除法的结果是浮点数。

还有一种除法是//,称之为地板除:

10//3 得到的结果是整数 为3.只取整数部分。

还有一种是余数运算,10%3 得到 1.

小结:

Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个对象,而变量就是在程序中用来指向这些数据对象的,对变量  赋值就是把数据和变量给关联起来。

对变量赋值x = y是把变量x指向真正的对象,该对象是变量y所指向的。随后对变量y的赋值不影响变量x的指向。

注意:Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如Java32位整数的范围限制在-2147483648-2147483647

Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)。

格式化:

在python中,采用格式化与c语言是一致的,用%实现

>>> 'Hello, %s' % 'world'

'Hello, world'

>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)

'Hi, Michael, you have $1000000.'

在字符串内部,%s表示字符串替换,%d表示用整数替代,有几个%?占位符,后面就跟着几个变量或者值,顺序要对应好,如果只有一个占位符,括号可以省略。

占位符

替换内容

%d

整数

%f

浮点数

%s

字符串

%x

十六进制整数

当不确定使用什么,&是永远起作用,他可以将任意数据类型转化为字符串。

另一种格式化字符串的方法是使用字符串的format()的方法,它会用传入的参数依次替换字符串内的字符串{0}…

>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)

'Hello, 小明, 成绩提升了 17.1%'

 

List

Python内置的一种数据类型是列表:list。List是一种有序的集合,可以随时添加和删除其中的元素。

例如:

>>> classmates = ['Michael', 'Bob', 'Tracy']

>>> classmates

['Michael', 'Bob', 'Tracy']

此时,变量classmates就是一个list。

当我们想知道一个list的数量时,就可以使用len()函数。Len(list名)。

相似与c++的容量,可以使用索引来访问list中的每一个元素,索引是从0开始的。

例如刚才的list,

>>> classmates[0]

'Michael'

>>> classmates[1]

'Bob'

>>> classmates[2]

'Tracy'

当超出元素的个数时,将会报错(indexerror)。

当然也可以使用-1这样用负数来进行反向索引,但是是直接从-1开始。

List是一个可变的有序表所以,可以再list末尾追加元素到末尾。

>>> classmates.append('Adam')

>>> classmates

['Michael', 'Bob', 'Tracy', 'Adam']

也可以插入到指定的位置,比如索引为1的位置:

>>> classmates.insert(1, 'Jack')

>>> classmates

['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

当要删除的末尾的元素时,用pop()方法:

>>> classmates.pop(1)

'Jack'

>>> classmates

['Michael', 'Bob', 'Tracy']

要把某个元素替换为别的元素,可以直接赋值给对应的索引位置。

>>> classmates[1] = 'Sarah'

>>> classmates

['Michael', 'Sarah', 'Tracy']

List元素也可以是另一个,比如:

>>> s = ['python', 'java', ['asp', 'php'], 'scheme']

>>> len(s)

4

其中可以拆开来看待

>>> p = ['asp', 'php']

>>> s = ['python', 'java', p, 'scheme']

Tuple

另一种有序列表叫做元组。其和list非常类似,但是list一旦初始化就不能修改。因此用这个元组,就会非常安全。

在定义一个tuple时就需要将元素定义下来:

>>> t = (1, 2)

>>> t

(1, 2)

当我们需要定义一个空的tuple时,可以写成()

>>> t = ()

>>> t

()

但是当定义只有一个元素的tuple时,必须要加一个逗号。

>>> t = (1)

>>> t

1

如果这样定义,将定义的是1这个数,这是因为,括号既可以表示tuple,又可以表示数学中的小括号,这时就需要使用小逗号来进行消除歧义。

>>> t = (1,)

>>> t

(1,)

当tuple中有list是,tuple有变成一个可变的元组。最后来看一个可变的”tuple

>>> t = ('a', 'b', ['A', 'B'])

>>> t[2][0] = 'X'

>>> t[2][1] = 'Y'

>>> t

('a', 'b', ['X', 'Y'])

这个tuple定义的时候有3个元素,分别是'a''b'和一个list。不是说tuple一旦定义后就不可变了吗?怎么后来又变了?

别急,我们先看看定义的时候tuple包含的3个元素:

当我们把list的元素'A''B'修改为'X''Y'后,tuple变为:

表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的不变是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

理解了指向不变后,要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。

条件判断

例如:

age = 3

if age >= 18:

    print('adult')

elif age >= 6:

    print('teenager')

else:

    print('kid')

再议 input

看一个有问题的条件判断。很多同学会用input()读取用户的输入,这样可以自己输入,程序运行得更有意思:

birth = input('birth: ')

if birth < 2000:

    print('00前')

else:

    print('00后')

输入1982,结果报错:

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: unorderable types: str() > int()

这是因为input()返回的数据类型是str,str不能直接和整数比较,必须先把str转换成整数。Python提供了int()函数来完成这件事情:

s = input('birth: ')

birth = int(s)

if birth < 2000:

    print('00前')

else:

    print('00后')

再次运行,就可以得到正确地结果。但是,如果输入abc呢?又会得到一个错误信息:

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ValueError: invalid literal for int() with base 10: 'abc'

原来int()函数发现一个字符串并不是合法的数字时就会报错,程序就退出了。

 

循环:

Python有两种循环可以使用

一种是for…in循环,依次将list与tuple中的每个元素迭代出来,例子:

names = ['Michael', 'Bob', 'Tracy']

for name in names:

    print(name)

所以for循环就是把每个元素带入变量,然后执行缩进语块。如果要计算1-100的整数之和,我们不可能从1写到100,此时python提供一个range()的函数,这个函数可以生成一个整数数列,再通过list()函数转化为一个list,例如range(5)生成一个从0到4的序列。

>>> list(range(5))

[0, 1, 2, 3, 4]

Range(101)可以生成0-100的整数序列。

第二种就是while循环,只要条件满足,就会不断循环,当条件不符合时将跳出循环。

sum = 0

n = 99

while n > 0:

    sum = sum + n

    n = n - 2

print(sum)

break

在循环中,使用break可以提前跳出循环。

Continue

在循环过程中,也可以通过continue语句,跳过当前循环,直接进行下一次的循环。

小结:

循环是让计算机做重复任务的有效的方法。

break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。

要特别注意,不要滥用breakcontinue语句。breakcontinue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到breakcontinue语句,上面的两个例子,都可以通过改写循环条件或者修改循环逻辑,去掉breakcontinue语句。

有些时候,如果代码写得有问题,会让程序陷入死循环,也就是永远循环下去。这时可以用Ctrl+C退出程序,或者强制结束Python进程。

请试写一个死循环程序。

 

 

 



 
 

 

 
 

 

 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值