Python基础1

目录

1.输入输出

1.1 输入 input()

 1.2 输出 print()

2.数据类型和变量

2.1基本数据类型

2.2变量

3.字符串和编码

3.1 字符编码

3.2 Python的字符串

4.使用 list 和 tuple

4.1 列表 list

4.2 元组 tuple 

5.条件判断

6.循环

6.1 for...in 

6.2 while 

7.使用 dict 和 set 

7.1 dict 

7.2 set

 8.不可变对象(再议)


1.输入输出

1.1 输入 input()

Python提供input()函数用于获取用户键盘输入的字符。当获取用户输入后,Python将其以字符串的形式存储在一个变量中,方便后面使用。

>>> name=input()
zhangsan
>>> name
'zhangsan'

 如果要提示用户输入,可以在input()内加入要提示的内容,如:

>>> name=input('Please enter your name:')
Please enter your name:zhangsan
>>> name
'zhangsan'

 1.2 输出 print()

·在Python中使用 print() 函数进行输出;

·输出字符串时可用单引号 双引号 引起来;

·输出变量时可不加引号;

·变量字符串同时输出或多个变量同时输出时,需用 隔开。

>>> print('You are good!')
You are good!
>>> print(666)
666
>>> print('You are good!',666)
You are good! 666

2.数据类型和变量

2.1基本数据类型

数据类型描述示例
数字(Number)表示数字值10, 3.14, 1 + 2j
字符串(String)表示文本值'hello', "world", '''This is a multiline string'''
列表(List)表示可变序列[1, 2, 3], ['apple', 'banana', 'cherry']
元组(Tuple)表示不可变序列(1, 2, 3), ('apple', 'banana', 'cherry')
集合(Set)表示无序且不重复的元素集合{1, 2, 3}, {'apple', 'banana', 'cherry'}
字典(Dictionary)表示键值对集合{'name': 'John', 'age': 36, 'city': 'New York'}
布尔值(Boolean)表示True或False值True, False
空值(None)表示没有值None

整数运算永远是精确的,而浮点数运算可能会有四舍五入的误差。(列表、元组、集合、字典会在后面提到)

注意:Python中的除法 / 会得到精确数,而 // 会对得数取整。

Python允许用 '''...''' 的格式表示多行内容,在输入多行内容时,提示符由 >>> 变为 ...

>>> print('''line1
... line2
... line3''')
line1
line2
line3

多行字符串 '''...''' 还可以在前面加上 r 使用:

>>> print(r'''hello,\n
... world''')
hello,\n
world

*加上 r 说明字符串是一个原始字符串,转义字符将不再有效。

布尔值可用 and or not 运算。

2.2变量

变量名规范:必须是大小写英文、数字和_的组合,且不能用数字开头。

在Python中,等号 = 是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例:

>>> a=123
>>> print(a)
123
>>> a='ABC'
>>> print(a)
ABC

3.字符串和编码

3.1 字符编码

在计算机内存中,统一使用Unicode编码(其中包含ASCII编码),当需要保存到硬盘或者需要传输的时候,就会被转换为UTF-8编码。

3.2 Python的字符串

对于单个字符编码,Python提供了 ord() 函数获取字符的整数表示:

>>> ord('A')
65
>>> ord('中')
20013

 chr() 函数把编码转换为对应的字符:

>>> chr(65)
'A'
>>> chr(20013)
'中'

str:一个字符对应若干个字节

bytes:每个字符都只占用一个字节

以Unicode表示的 str 通过 encode() 方法可以编码为指定的 bytes ,相反则用 decode() .

>>> 'ABC'.encode('ascii')
b'ABC'
>>> b'ABC'.decode('ascii')
'ABC'

在bytes中,无法显示为ASCII字符的字节,用\x##显示。

注意:Python源代码也是一个文本文件,所以当源代码中包含中文时,在保存源代码时,务必指定为UTF-8编码。通常在文件开头写上这两行:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;

第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。

如你可在Notepad++中选中编码中的 UTF-8 编码,因版本更新原因,所以去掉了原先的 without BOM 后缀语句。

Python格式化方式与C语言一致,即%d表示用整数替换。如果有多个需要格式化,则需要加括号,如:

>>> 'Age:%d.Gender:%s'%(18,'男')
'Age:18.Gender:男'

 f-string 方法:格式化字符串,以 f 开头,字符串如果包含{xxx},就会以对应的变量替换。

>>> r=2.5
>>> s=3.14*r**2
>>> print(f'The area of a circle with radius {r} is {s:.2f}')
The area of a circle with radius 2.5 is 19.62

4.使用 list 和 tuple

4.1 列表 list

·列表 list 是一种有序的集合,可以随时添加删除其中的元素;

·可用索引访问 list 中每一个元素的位置。变量名[索引],类似于数组;

·索引从 0 开始,最后一个元素的索引可以表示为 len(变量名)-1 -1 ,依此类推,可获取倒数第2个、倒数第3个。

>>> classmates=['zhangsan','lisi','wangwu']
>>> classmates
['zhangsan', 'lisi', 'wangwu']
>>> classmates[0]
'zhangsan'
>>> classmates[len(classmates)-1]
'wangwu'
>>> classmates[-1]
'wangwu'
>>> classmates[-2]
'lisi'

①在 list 中追加元素到末尾: append() 

>>> classmates=['zhangsan','lisi','wangwu']
>>> classmates.append('adam')
>>> classmates
['zhangsan', 'lisi', 'wangwu', 'adam']

②把元素插入到指定位置: insert() 

>>> classmates.insert(1,'jack')
>>> classmates
['zhangsan', 'jack', 'lisi', 'wangwu', 'adam']

③删除 list 末尾的元素: pop() 

>>> classmates.pop()
'adam'
>>> classmates
['zhangsan', 'jack', 'lisi', 'wangwu']

④删除指定位置的元素: pop(i) ,i是索引位置

>>> classmates.pop(1)
'jack'
>>> classmates
['zhangsan', 'lisi', 'wangwu']

⑤把某个元素替换成别的元素,可直接赋值给对应的索引位置

>>> classmates[1]='sarah'
>>> classmates
['zhangsan', 'sarah', 'wangwu']

* list 里面的元素的数据类型可以不同,如:

>>> L=['apple',123,True]
>>> L
['apple', 123, True]

* list 元素也可以是另一个 list ,如:

>>> s=['python','java',['asp','php'],'scheme']
>>> len(s)
4

也可拆开理解为:

>>> p=['asp','php']
>>> s=['python','java',p,'scheme']
>>> len(s)
4

要获取 'php' 可以写 p[1] s[2][1] ,因此 s 可看作为二维数组

空的 list :

>>> L=[]

4.2 元组 tuple 

和 list 类似,但 tuple 一旦初始化就不能修改(即指向不变)

在定义 tuple 的时候,元素就必须被确定下来。

>>> t=(1,2)
>>> t
(1, 2)

空的 tuple

>>> tuple()

如果要定义一个只有1个元素的 tuple ,必须加一个逗号 , 来消除与数学公式发生的歧义,如:

>>> t=(1,)
>>> t
(1,)

5.条件判断

age=20
if age>=6:
    print('teenager')
elif age>=18:
    print('adult')
else:
    print('kid')

运行结果:

teenager

 解释从上往下判断,如果在某个判断上是 True ,把该判断对应的语句执行后,就忽略掉剩下的 elif else

 if 判断条件可以简写:

if x:  # 只要x是非零数值、非零字符串、非空list等,就判断为True,否则false
    print('True')

** input() 返回的数据类型是 str , str 不能直接和整数比较,必须先把 str 转换成整数。

s=input('birth:')
birth=int(s)
if birth<2000:
    print('00前')
else:
    print('00后')

运行结果:

birth:2004
00后

6.循环

6.1 for...in 

依次把 list 或 tuple 中的每个元素迭代出来。

names=['zhangsan','lisi','wangwu']
for name in names:
    print(name)

运行结果:

zhangsan
lisi
wangwu

6.2 while 

计算100以内所有奇数之和:

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)

运行结果:

2500

* break continue 都必须配合 if 使用

7.使用 dict 和 set 

7.1 dict 

使用 键-值(key-value)存储,具有极快的查找速度。类似于查字典时通过偏旁部首(索引)来确定页数,而 list 是一页一页地查找。

>>> d={'zhangsan':95,'lisi':75,'wangwu':85}
>>> d['zhangsan']
95

把数据放入 dict 的方法除了初始化时指定外,还可通过 key 放入:

>>> d['adam']=67
>>> d['adam']
67

注意:一个 key 只能对应一个 value ,多次对一个 key 放入 value ,后面的值会把前面的值冲掉。

如果 key 不存在, dict 就会报错。避免 key 不存在的错误,2种方法:

①通过 in 判断

>>> 'Tom' in d
False

②通过 dict 提供的 get() 方法,如果 key 不存在,可以返回 None 或自己指定的 value 

>>> d.get('Tom')
>>> d.get('Tom',-1)
-1

*返回 None 时不显示结果。

和 list 比较, dict 的特点:

1.查找和插入的速度极快,不会随着key的增加而变慢;

2.需要占用大量的内存,内存浪费多。

7.2 set

和 dict 类似,也是一组 key 的集合,但不存储 value 。由于 key 不能重复,所以在 set 中没有重复的 key , dict 中也没有 。

要创建一个 set ,需提供一个 list 作为输入集合。

>>> s=set([1,2,3])  # 告诉set内部有这3个元素 
>>> s
{1, 2, 3}   

set 特点:

①重复元素自动被过滤;

②可通过 add(key) 添加元素;

>>> s.add(4)
>>> s
{1, 2, 3, 4}

③可通过 remove(key) 删除元素;

>>> s.remove(4)
>>> s
{1, 2, 3}

④可看作无序无重复元素的集合,即数学意义上的交集、并集。

 8.不可变对象(再议)

 str 是不变对象,而 list 是可变对象。

>>> a=['c','b','a']
>>> a.sort()
>>> a
['a', 'b', 'c']

对于不可变对象 str :

>>> a='abc'
>>> a.replace('a','A')
'Abc'
>>> a
'abc'

对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回。

看100遍不如敲1次!好啦,今天就到这里了,我们下期再见!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值