一.程序交互

name = input(“你的名字是:”)  #用户输入,输入的任何东西都存储成str(字符串类型)的形式

二.注释的重要性

  以后动辄几千行代码的时候,回过头再去看的时候,发现自己都看不懂了,在工作中还会大家一起合作完成代码,不写注释的话,更难以交流了。
单行注释直接在句首写上#就好了
多行注释可用快捷键ctrl+/,或者用三个引号括起来''' 99999999
                         12345789 
                       '''
#1. 不用全部加注释,只需要在自己觉得重要或不好理解的部分加注释即可
#2. 注释可以用中文或英文,但不要用拼音 三.基本数据类型(查看数据类型的方法type())
 

1.数字类型

int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
注意:在Python3里不再有long类型了,全都是int
float(浮点型)(精度限制17位,小数点后16位)
定义:salary=3.1 #salary=float(3.1)
用于标识:工资,身高,体重,
############ if a.isdigit(): # 判断是不是a数字
2.字符串类型
python中,加了引号(单引号可以,双引号也可以,三个单引号也可以)的字符都叫字符串

你需要考虑单双的配合(特殊情况,其他情况下随意)

msg = "My name is Alex , I'm 22 years old!"
多引号什么作用呢?作用就是多行字符串必须用多引号 字符串拼接:
字符串可以进行相加和相乘的操作
>>> a='hello'
>>> b=' world'
>>>
>>> a + b
'hello world'
>>> res=a + b
>>> print(res)
hello world >>> a*3
'hellohellohello'
a.isdigit()  #  判断一字符串是否只包括数字
a.replace('old','new',max) # old被替换的字符,new换成的字符,max最大替换次数
a.find() # 查找是否含有字符串,是返回索引值,否者返回-1
a.count() # 统计字符出现次数
a.strip() # 删除一个字符串
a.center(10,'-') # 左右填充10位的-
a.split('a',2) # 在a出现是地方进行切片(a也没有了),切片2次
a.format()

通过关键字

1 print('{名字}今天{动作}'.format(名字='陈某某',动作='拍视频'))#通过关键字
2 grade = {'name' : '陈某某', 'fenshu': '59'}

通过位置

1 print('{1}今天{0}'.format('拍视频','陈某某'))#通过位置
2 print('{0}今天{1}'.format('陈某某','拍视频'))
a.join
>>> A = 'hello,world'
>>> ' '.join(A)
'h e l l o , w o r l d'
>>> '>'.join(A)
'h>e>l>l>o>,>w>o>r>l>d'
3.布尔类型(bool)
布尔类型很简单,就只有两个值,一个真(true),一个假(false),主要用于逻辑运算 4.列表类型(list)
创建 name = ['张三',‘王五’,‘李四’,1,2,5,4,5,4,‘李四’]
list('abc') # 结果为['a', 'b', 'c']
查询,取出 name[0] # 结果为'张三' name[-1] # 结果为'李四'
查询索引值 name.index('李四') # 结果为2,有重复的时候,只能找到第一个
查询重复出现的个数 name.count('李四') # 结果为2(个)
切片(顾头不顾尾) name[0:2] #结果为['张三','王五']
值得注意的是 name[-5:-1] # 结果为[5,4,5,4] name[-5:] # 结果才是[5,4,5,4,'李四']
中间隔一个取一个 name[7:2] # 结果为['张三','李四',2,4]
增加和修改 name.appeend('Xander') # 加到了最后面
name.insert(0,'lexi') # 插入到指定位置
修改(直接赋值就好了) name[1:3] = ‘abc’ # 批量修改‘王五’,‘李四’被修改成了'a','b','c'(中间还增加了一个)
删除 name.pop() # 删掉最后一个
name.remove('张三') # 删除索引到的第一个'张三'
del name[1] # 删掉了name[1],删除全局,可以删除任何东西
del name[1:5] # 批量删除
排序 n = ['a','c','b','f','e',1,3]
n1 = ['a','c','b','f','e']
n2 = [1,2]
n.sort() # 会报错int和str不能一起排序
n1.sort() # 会按照ASCII码表排序
反转 n.reverse()
拼接列表 n1 + n2 # 或者n1.extend(n2)
清空列表 n.clear()
copy n1 = n2 # 如果修改了n2列表中的值,n1也会一起被修改,这里和变量里面是不一样的
n1 = n2.copy() # 这个时候修改n2不会一起修改n1的值
5.元组(tuple)
 """
元组【有序不可变】
  作用:存多个值,对比列表来说,元组不可变(是可以当做字典的key的),主要是用来读
  定义:
    与列表类型比,只不过[]换成()
""" t = ('a',) # 元祖只有一个元素时,需要加逗号, 和字符串区分开
t = ('a', 'b', 'b', 'c') # 定义一个元组
t = tuple(('a', 'b', 'b', 'c')) print(t.index('b')) # 索引出元素第一次出现的位置,还可以指定在某一范围里查找,这里默认在整个元组里查找输出1
print(t.count('b')) # 计算元素出现的次数,这里输出2
print(len(t)) # 输出远组的长度,这里输出4
print(t[1:3]) # 切片 输出('b','b')
for i in t:
print(i) # 循环打印出元组数据

6.字典(dict)

 """
字典【无序可变】
  作用:存多个值,key-value存取,取值速度快
  定义:
    key必须唯一,必须是不可变类型,value可以是任意类型
""" # 创建:
info = {"name": "tom", "age": 18, "gender": "male"} # 本质info=dict({"name":"tom","age":18})
# info=dict(name='tom',age=18,gender='male')
# info=dict([['name','tom'],('age',18)])
# info={}.fromkeys(('name','age','gender'),None) #{'name': None, 'gender': None, 'age': None} # 增加
info['salary'] = 50000 # {'name': 'tom', 'age': 18, 'salary': 50000, 'gender': 'male'} # 删除
info.pop('age') # 根据键删除某一元素 d={'Michael': 95, 'Tracy': 85}
info.popitem() # 随机删除
info.clear() # {} # 修改
info['age'] = '' # 如果没有该key,则在字典创建新的的的key-value # 查询
info.get('age') # 根据key获取values,如果不存在返回None,这里输出75
'''
setdefault的功能
1:key存在,则不赋值,key不存在则设置默认值
2:key存在,返回的是key对应的已有的值,key不存在,返回的则是要设置的默认值
'''
print(info.setdefault('age', 50000)) #
print(info.setdefault('salary', 50000)) #
print(info) # {'age': 18, 'name': 'tom', 'salary': 50000, 'gender': 'male'} # 其他
print(len(info)) # 输出字典长度
print('age' in info) # python3 中移除了 has_key,要判断键是否存在用in for i in info:
print(i) # 循环默认按键输出 for i in info.values(): # 循环按值输出
print(i) for k, v in info.items(): # 循环按键值输出
print(k, v)
字典相关题目及答案
 #创建一个字典

 dic = {'k1':'v1','k2':'v2','k3':'v3'}

 #1.请循环遍历出所有的KEY

 for k in dic:

 print(k)

 #2请循环遍历出所有的value

 for k in dic:

 print(dic[k])

 #3请循环遍历初所有的KEY和VALUE

 for k in dic:

 print(k,dic[k])

 #4请在字典中添加一个键值对,'k4':'v4',输出添加后的字典

 dic['k4'] = 'v4'

 print(dic)

 #5请删除字典中键值对'k1','v1',并输出删除后的字典

 dic.pop('k1')

 print(dic)

 #6请删除字典中键'k5'对应的键值对,如果字典中不存在键'k5',则不报错,并且让其返回none

 if 'k5' in dic:

 dic.pop('k5')

 else:

 print(dic.get('k5'))

 #7请获取字典中'k2'对应的值

 print(dic.get('k2'))

 #8请获取字典中'k6'对应的值,如果'k6'不存在,则不报错,并且让其返回Nnoe

 print(dic.get('k6'))

 #9现有dic2 = {'k1':'v111','a':'b'}请通过一行操作使dic2 = {'k1':'v1','k2':'v2','k3':'v3','a':'b'}

 dic = {'k1':'v1','k2':'v2','k3':'v3'}

 dic2 = {'k1':'v111','a':'b'}

 dic2.update(dic)

 print(dic2)

 #10.组合嵌套题,写代码,有如下列表,按照要求实现每一个功能

 lis = [['k',['qwe',20,{'k1':['tt',3,'']},89],'ab']]

 #10.1.将列表lis 中的'tt'变成大写(用两种方式)

 #10.1.1

 print(lis[0][1][2].get('k1')[0].upper())

 #10.1.2

 print(lis[0][1][2].get('k1')[0].swapcase())

 #10.2.将列表中的数字3 变成字符串'100'(用两种方式)

 #10.2.1

 print(lis)

 lis[0][1][2].get('k1')[1] = ''

 print(lis)

 #10.2.2

 lis = [['k',['qwe',20,{'k1':['tt',3,'']},89],'ab']]

 dic3 = {'k1':['tt','','']}

 print(lis)

 lis[0][1][2].update(dic3)

 print(lis)

 #10.3 将列表中的字符串'1'变成数字101(用两种方式)

 #10.3.1

 lis = [['k',['qwe',20,{'k1':['tt',3,'']},89],'ab']]

 print(lis)

 lis[0][1][2].get('k1')[2] = 101

 print(lis)

 #10.3.2

 lis = [['k',['qwe',20,{'k1':['tt',3,'']},89],'ab']]

 dic3 = {'k1':['tt',3,101]}

 print(lis)

 lis[0][1][2].update(dic3)

 print(lis)

 #11 按照要求实现以下功能:

 #现有一个列表li = [1,2,3,'a','b',4,'c'],有一个字典(此字典是动态生成的,你并不知道他里卖弄有多少键值对,所以

 #用dic = {}模拟此字典);现在需要完成这样的操作:如果该字典没有'k1'这个键,那就创建'k1'键和其对应的值(该键对应的值设置为空列表)

 #并将列表li 中的 索引为奇数的对应元素,添加到'k1'这个键对应的空列表中。如果该字典有'k1'这个键,且'k1'对应的value

 #是列表类型,那就将li中的索引为奇数的对应元素,添加到'k1'这个键对应的键中

 dic = {'k2':2,'k3':3}#1. dic{}字典中 没有 'k1'

 #dic = {'k1':['we','tt'],'k2':2}#2 dic{}字典中有'k1'

 #dic = {'k1':1,'k2':33} # 有'k1'但'k1'value 非列表

 li = [1,2,3,'a','b',4,'c']

 if not 'k1' in dic:

 dic.setdefault('k1',[])

 for i in li :

 if li.index(i) % 2 == 1:

 dic['k1'].append(i)

 else:

 if type(dic['k1']) == type([]):

 for i in li:

 if li.index(i) % 2 == 1:

 dic['k1'].append(i)

 else:

 print("字典K1,VALUE 不是列表,无法追加")

 print(dic)

字典习题及答案


6集合(set)

 """
集合【无序可变】
  作用:去重,关系运算
  定义:
     1:每个元素必须是不可变类型(可hash,可作为字典的key)
2:没有重复的元素
3:无序
4:可以包含多个元素,用逗号分割,
"""
a = {1, 2, 3, 4, 5, 6, 7, 8, 9}
b = {1, 3, 9, 10, 11} a.add(10) # 添加一个元素 a.discard(1) # 删除元素1,不存在的话不报错
a.remove(1) # 删除元素1,不存在的话报错
a.pop() # 随机删除 a.update([1, 8, 34]) # 更新,没有就添加,有就不添加 # 并集
a.union(b)
a | b
# 返回一个新的集合包含a和b的所有元素 # 交集
a.intersection(b)
a & b
# 返回一个新的集合包含a和b的公共元素 # 差集
a.difference(b)
a - b
# 返回一个新的集合,包含a中的元素,但是没有b中的元素 # 对称差集
a.symmetric_difference(b)
print(a ^ b)
# 返回一个新的集合包含 a和b中不重复的元素

数据类型总结

  • 【有序】: 列表,元组
  • 【无序】: 字典,集合
  • 【可变】:列表,字典,集合
  • 【不可变】:数字,字符串,元组
  • 【存单值】:数字,字符串
  • 【存多值】:列表,元组,字典
四.格式化输出
  利用占位符
%s就是代表字符串占位符,除此之外,还有%d,是数字占位符, 如果把上面的age后面的换成%d,就代表你必须只能输入数字啦;
%f小数
 name = input('Name:')
age = input('Age:')
job = input('Job:')
hometown = input('Hometown:') info='''
--------info of %s---------------
Name: %s
Age: %s
Job: %s
Hometown: %s
------------end------------------
'''%(name,name,age,job,hometown)
print(info)

格式化


最新文章

  1. Eclipse Maven Spring MyBatis 配置
  2. js与多行字符串
  3. SPSS数据分析—多分类Logistic回归模型
  4. Iframe指定页面,并使其与该页面显示一致
  5. Linux删除包含特殊符号文件名的文件
  6. Android MonkeyRunner自动拨打电话
  7. Bootstrap_表单_表单控件状态
  8. Selenium索引
  9. iOS开发-CGAffineTransformMakeRotation改变了中心解决的方法
  10. CATransform3D参数的意义
  11. POJ3187 Backward Digit Sums
  12. c++ 常见问题之 vector 和数组
  13. vue的动态路由(登录之后拿到动态路由通过addRouters()动态添加路由)
  14. Couldn't find preset "es2015" relative to directory问题解决
  15. Bootstrap 前端UI框架
  16. git代码同步服务器代码需要注意的问题
  17. 【JS点滴】substring和substr以及slice和splice的用法和区别。
  18. TL 重构
  19. 封装一个简单的原生js焦点轮播图插件
  20. Python string interning原理

热门文章

  1. DataTable 设置primarykey 后进行 Merge操作
  2. 利用 Aspose.Words 组件,在不依赖与 Office 组件的情况下把 Word 文件转换成 HTML 代码。
  3. c#事务的使用、示例及注意事项
  4. The Difference Between @Helpers and @Functions In WebMatrix
  5. MongoDB整理笔记の管理Replica Sets
  6. 在sql server数据库可以插入在回车的数据
  7. SpringMVC+Hibernate 使用 session.update(obj) 未更新的问题
  8. linux chmod对文件权限的操作
  9. ubuntu14.10,解决按照最新版Gnome 15.10后,经典Gnome桌面字体问题!
  10. ubuntu14.10,安装ksnapshot(截图软件)