python基本语法学习

前言:

1、python是解释型语言

2、尽量使用python3。2014年的时候python官方宣布2.7支持到2020年,以后不会再发行2.8版本,尽快把程序迁移到3.x版本

基本语法:

1、变量

和C 等语言不一样,python定义语言时,不需要事先制定变量类型

变量名只能是 字母、数字或下划线的任意组合

变量名的第一个字符不能是数字

系统使用的关键字不能声明为变量名

2、输入

输入:input("请输入:").strip() --接受输入字符串,并去掉头尾空格和换行符

3、条件判断

4、循环

注意break、 continue的使用

5、格式化输出

输出:print('%s 占位符 %s'%(变量1,变量2)

具体可以参考牛牛杂货铺的文章

http://www.nnzhp.cn/archives/131

6、数据类型

  • int
  • float
  • bool
  • 列表
print(lis[:11:2]) #最后一个参数叫 步长  ,如果步数为正数,从左往右取值
print(lis[::-1]) #列表反转 ,但不会改变原来list的值;步数为负数,从右往左开始取值
print(lis[::-2])
print(lis.reverse()) # 也反转,会改变原来list 的值
  • 元组tuple
words = (1)   #还是int
word2 = (1,) #如果元组里面只有一个元素,那么必须在这个元素后面加一个逗号
word2.index(1)
word2.count(1) #元组只有这两个方法
  • 字典dic

字典的特性:
字典是无序的,因为它没有下标,用key来当索引,所以是无序的
字典的key必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重

增:

# 增加
# infos['phone']= 123456
# print(infos) #字典是无序的
# infos.setdefault('小金库','200')

# infos.setdefault('name','liu') # 如果key存在,不会修改之前的值
# print(infos)
# infos['name'] = 'pengmm' # 中括号如果key存在,之前的值是能修改的
# print(infos)

修改只有一种方式
# infos['name'] = 'liuy'

删:
# infos.pop('name')
# print(infos)
#
# infos.popitem() #随机删除一个key
# print(infos)
# del infos['小金库']
# print(infos)
# infos.clear() #清空字典

内置方法:
print(infos.values())  #所有的values 放到一个 list 里
print(infos.keys()) #所有的key放到list里
print(infos.items()) #字典转换成一个list,例如[('addr', 'chanpging'), ('name', 'zll'), ('age', 888)]

字典循环:
dic = {'stu1':'cc','stu2':'andashu','stu3':'niuniu'}
for k in dic:
print(k,dic[k])#打印key和value的值,推荐使用这种方式,速度快
for k,v in dic.items():
print(k,v)#打印key和value的值,这种方式不推荐,因为会把字典转换成列表,效率不高
  • 字符串string
# a = '   字  符  串  \n\n\n'
# c = a.strip() #不传,删除空格和回车
# print('c..',c)
# print('a..',a)
#
#words = 'HTTPS://day is a wonderfulday '
# # print(words.strip('day')) #删除前后指定的字符。后面如果有空格,则只删除空格,不会再次删除day
# # print(words.count('a')) #字符串中该字符出现的次数
# # print(words.index('is')) #找下标,如果元素找不到的话,会报错
# #
# # print(words.find('z')) # 返回-1,不会报错
# print(words.find('is')) #查找字符串的索引
# # print(words.replace('day','DAY'))
title = 'This Is A Title'
print(title.capitalize()) #首字母大写,其他单词的首字母为小写
print(title.istitle()) #是否为标题,所有单词的首字母都需要为大写

# print(words.center(50,'*')) #字符加分隔符(*)一共50个,然后字符放中间
# print(words.startswith('HTTPS')) #是否以字符开头,返回true 或false
# print(words.endswith('day1')) #是否以字符结尾
username = 'aAABBcede1 ss ss ss\tww'
# print(username.expandtabs(16))
#当使用字符串的这个expandtabs函数时,默认8个字符为1个Tab,
# expandtabs函数会把字符串中转义字符\t转化成空格,且从字符串的开头开始算起,以8位为1个循环,而不是简单地用8个空格来替代\t,
# 倘若在这8个位里有之前原始的字符串里的字符,则不用空格替换,不够8位的时候才用空格去补充。括号里指定代替的空格数,例如16代替8。

# print(username.isalpha()) #是否全为数字
# print(username.isalnum()) #只要有字母或数字都行
# print(words.isdigit()) #是否全为数字

# name = 'my name is {name},my age is {age}'
# print(name.format_map({'name':'niuniu','age':19})) #格式化字符串,字符串里的变量名 须和字典中的key 一致
#
# print(username.lower()) #变成小写
# print(username.upper()) #变成大写
# print(username.islower()) #是否全为小写
# print(username.isupper()) #是否全为大写

print('*'.join(['this','is','a','string']))

p = str.maketrans('abcdefg','1234567')#前面的字符串和后面的字符串做映射
print('cc ae gg'.translate(p))#输出按照上面maketrans做映射后的字符串, 结果 = 33 15 77
#下面是反解
new_p = str.maketrans('1234567','abcdefg')
print('33 15 77'.translate(new_p))

print('mysql is db.'.replace('mysql', 'oracle', 1)) # 替换字符串
print('mysql is is db'.rfind('is')) # 返回最右边字符的下标
print('1+2+3+4'.split('+')) # 切割字符串,返回一个list
print('1+2+3\n1+2+3+4'.splitlines()) # 按照换行符分割
print('Abcdef'.swapcase()) # 大小写反转
  • 集合

交集

合并

差集

posted @ 2018-03-21 16:43  liuyanerfly  阅读(219)  评论(0编辑  收藏  举报