入坑Python之 你在学些什么?

 

 

一,Python是什么?

python是一种解释型计算机语言,基于C语言基础上的弱类型语言.

 

二,print打印

我们要编写的第一个代码就是

print("hello word")

 计算机显示会出来hello word,让你感到计算机执行你的命令,据说,几乎所有的编程语言第一句话就是这个,会打出来这句话,恭喜你,入坑了!~~

 

附加:print的基本运用

在打印里面

self 表示你输入的字符都是他自己

*args 位置参数,在函数文章有些,可以接受到无数形参的传值

sep  就相当于打印出来默认的是 " " ,如果你要修改默认参数的话,会以一个下划线相加拼接

print('let\'s go',"哈哈",sep = "_")  #结果:let's go_哈哈

end   结尾默认是"\n" 如果你要修改的话直接把默认值修改就可以了,近期的话文件操作会用的到的

file 文件  默认是没有的  如果你要不觉得麻烦的话  你可以open吧文件边读边写进去比如

print('let\'s go',"哈哈",sep = "_",file=open('F:\我是.txt' ,"a")) 

最后提醒一下  新手最容易失误的就是在编码的时候误用了中文标点符号.切记!

 

三,变量(命名规则)

在编程中,最长用到的其实最重要的就是变量了!

变量是一种使用方便的占位符,就和数学小的时候学的xy一个意思

变量的命名规则:

1,由字母,数字,下划线组成

2,不能数字开头,更不能是纯数字

3,不能是关键词

4,不要太长

5,不要用中文

6,区分大小写

7,要有意义

8,建议使用驼峰体或者下划线

(有变量就会有常量: 全部字母大写常量. 约定俗成)

 

四,数据类型

0.0  int 整数  

bit_length()计算这个数在二进制中的长度

+ - * / 加减乘除 **次幂  //地板除 < >  !=不等于

a = 9
print(a.bit_length())

 来计算整数在内存中占用的二进制码的长度

32位机器上int的范围是: -2**312**31-1,即-21474836482147483647
64位机器上int的范围是: -2**632**63-1,即-92233720368547758089223372036854775807
够你用了吧. 注意这些是整数

1.0  str 字符串

用"   "表示,'   ',也可以这些引起来的就是字符串,可以保存少量数据并进行相应的操作
字符串可以用单引号,双引号,或者三引号引起来,没有什么区别,只是这些特殊的格式需要的引号
#字符串的拼接

#字符串的拼接
s1 = 'a '
s2 = 'bc'
print(s1 + s2)
#相乘 str*int
name = '坚强'
print(name*8)

 如果让两个数相加,那么python就会直接告诉你

但是如果数字两边都加了引号

>>>"5"+''8''

>>>"58"

要告诉你,python在创建一个字符串,就要在字符串两边加上引号,可以是单引号或者双引号,python表示在这一点上面不挑剔.但是必须成对,你不能一边用单引号,一边用双引号结尾,这样python就不知道你要干什么了.

print("python 我爱你哟~')
#结果EOL while scanning string literal

这个就有点像你,一遍跟python说我爱你,却一边搂着小c,所以面对这么完美的语言,我们不写不别扭的语法.

那么如果字符串需要内容中需要单引号或者双引号怎么办?

print('let's go')
#结果:invalid syntax  语法错误

像上面两种方法,第一种比较常见,就是使用转义符号(\)对字符串中的引号进行转义.

print('let\'s go')

还有就是一种方法就是利用python 既可以用单引号,也可以用双引号表示这一个字符串的特点,只要用上不同的引号表示字符串,那么python就不会误解你的意思了~

 

 

1.1切片和索引

指向每一个字符,字符都有一个唯一的下标

切片:

[start:end:step]

start 起始位置

end 结束位置

step  步长

1.2方法

upper()  把字符全部转换成大写

stirp()  去空白

replace()  替换

strartswith()  是否以xxx开头

find() 查找  index查找()  区别:index找不到会报错,find找不到会返回-1

count()计数

isdigit()  判断是否是数字

len()  长度

jion() 把列表拼接成字符串

 

1.3编码

encode(编码)

decode()解码

ASCII    8bit   1byte

GBK  国标码 GB2312  16bit,2byte  因为国标码向下兼容ASCII码  所以是英文1byte

Unicode   万国码  32bit  4bit   

UTF-8  可变长度的ASCII码 

  英文:1byte

  欧洲:2byte

  中文: 3byte

编码之后数据bytes  用dicode()解码

1.4.  格式化输出

  前面讲了字符串大部分方法,唯独漏了 一个format()方法因为我觉得format()方法和格式化话题有点如出一辙,都是关于格式化输出,所以一起说一下.

  什么是字符串格式化?哪里会用到呢?

  当我们写代码写的多的时候,就会觉得总是输出一样的东西,都差不多,那就简单了直接格式化就可以了,格式化字符就是按照统一的字符规格去输出一个字符串,如果规格不统一,就可能会造成误会,例如16进制的10和十进制的10或者二进制的10都是不一样的,字符串格式化,正是帮助我们矫正并规范着类问题而存在的.

1.4.1 format()

这个方法是可以接收位置参数和关键字参数的(函数有说明) 两者传递到一个叫作replacement 字段.而这个reliacement字段在字符串中内由大括号表示

print("{1}6666666{0}".format("你好","我叫赛利亚"))
#结果:我叫赛利亚6666666你好

如果要把{}打印出来,你可以用(\)转义,只需要用转义字符本身(\\)

 

1.4.1格式化%

 

python格式化符号的含义
符号 含义
%c 格式化字符及其他ASCII码

%s

格式化字符串
%d 格式化整数
%o 格式化无符号八进制数
%x 格式化无符号的十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数的精度
%e 用科学技术法格式浮点数
%E 和是上面方法一样
%g 根据值的大小决定使用%f或者%e
%G 上面方法一样

 

 

 

 

 

 

 

 

 

 

附赠:python转义字符及含义

python部分转义符已经使用了,是时候和他来一个了断了

符号 说明 符号 说明
\' 单引号 \r 回车符
\" 双引号 \f 换页符
\a 发出系统响铃声 \o 八进制数代表的字符
\b 退格符 \x 十六进制数代表的字符
\n 换行符 \0 表示一个空字符
\t 制表符tab \\ 反斜杠
\v 纵向制表符    

 

2.bool  布尔值

取值只有True, False. bool值没有操作
0False 0True

类型转换:

False: 0, '', None, [], {}, tuple(), set()
True: 除了上面的都是True
int_1 = 1
str_1 = "2"
"str => int "
int(str)
"int => str "
str(int)
"int => bool"
bool(int) #0是False 非0是True
"bool=>int"
int(bool) #True是1, False是0
"str => bool" 
bool(str) #空字符串是False, 不空是True
"bool => str"
str(bool) #把bool值转换成相应的"值

 

3.0   list 列表  [  ]

列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. 比如JS中的数
, java中的数组等等. 它是以[ ]括起来, 每个元素以' , '隔开并且可以存放各种数据类型
:

lst = [1, '哈哈', [1,8,0,"百度"], ("我","叫", "元", "组"), "abc",
       {"我叫":"dict字典"},{"集合","集合"}]
print(lst)

列表相比于字符串. 不仅可以存放不同的数据类型. ⽽且可以存放⼤量的数据. 32python可以存放: 536870912个元素,64位可以存放: 1152921504606846975个元素.并且列

表是有序的(按照你保存的顺序),有索引, 可以切片便取值

 3.1 列表的增删改除

3.1.1 增加

  list.append()在列表后面追加

lis = ["我不是药神","你好北京","爱情公寓","流年"]
lis.append("胡桃夹子")
print(lis) #结果:['我不是药神', '你好北京', '爱情公寓', '流年', '胡桃夹子']

 

  list.insert()在列表指定索引地方添加元素

lis = ["我不是药神","你好北京","爱情公寓","流年"]
lis.insert(1,"我不是潘金莲")#在第1项添加元素
print(lis) #结果:['我不是药神', '我不是潘金莲', '你好北京', '爱情公寓', '流年']

 

  list.extend(Iterable可迭代对象) 迭代添加

lis = ["我不是药神","你好北京","爱情公寓","流年"]
lis.extend("哈哈哈哈")  #迭代添加
print(lis) #结果:['我不是药神', '你好北京', '爱情公寓', '流年', '', '', '', '']

 

3.1.2 删除

这个方法一共四种,我们来看一下吧:

  list.pop(0) 把第0个元素弹出去  

lis = ["我不是药神","你好北京","爱情公寓","流年"]
lis.pop(0)
print(lis)  #结果['你好北京', '爱情公寓', '流年']

 

  list.remove("需要删除的列表中的词")删除指定元素

lis = ["我不是药神","你好北京","爱情公寓","流年"]
lis.remove("爱情公寓")
print(lis)  #结果:['我不是药神', '你好北京', '流年']

 

  还有一种,但是要注意del是一个语句,不是一个列表的方法,所以不必再后面加小括号().另外如果你想要删除整个列表,还可以用del加列表名删除.

lis = ["我不是药神","你好北京","爱情公寓","流年"]
del lis[:2]
print(lis)#['爱情公寓', '流年']

  最后一种办法list.clear()清空列表

lis = ["我不是药神","你好北京","爱情公寓","流年"]
lis.clear()
print(lis)  #结果:[]

 

3.1.2删除的坑:

如果不用clear清空列表的话,for循环是删不干净的,因为他是根据索引来进行删除的,可是当我第0项挪过来的时候,排在第一个往前挪,所以删除的话是会剩下的,若要用for的办法需要这样写:

lis = ["我不是药神","你好北京","爱情公寓","流年"]
lst = []
for i in lis :
    lst.append(i)
for el in lst :
    lis.remove(el)
print(lis)  #结果:[]

 

3.1.3 更改

  上面讲了这么多办法,更改的你应该已经了解了索引了,所以更改的话你可以通过索引进行更改

lis = ["我不是药神","你好北京","爱情公寓","流年"]
lis[0] = "世界末日"
print(lis)

 

3.1.4查询

lis = ["我不是药神","你好北京","爱情公寓","流年"]
print(lis[0])

 

for el in lis :
    print(el)
#结果:
我不是药神
你好北京
爱情公寓
流年

3.3 列表的其他操作

count()计数

lis = ["我不是药神","你好北京","爱情公寓","流年","流年"]
print(lis.count("流年"))  #2

index()查找元素

lis = ["我不是药神","你好北京","爱情公寓","流年","流年"]
print(lis.index("流年"))  #3
但是如果输入一个错误的系统会报错:
lis = ["我不是药神","你好北京","爱情公寓","流年","流年"]
print(lis.index("我是个神"))
#ValueError: '我是个神' is not in list  这个元素不在这个列表中

 

sort()排序

lis = [1,2,93,54,8]
lis.sort()
print(lis)  #[1, 2, 8, 54, 93]

 

reverse()翻转

lis = ["我不是药神","你好北京","爱情公寓","流年","流年"]
lis.reverse()
print(lis)#['流年', '流年', '爱情公寓', '你好北京', '我不是药神']

 

3.4拷贝

1. = 赋值操作. 没有创建对象. 两个变量使用同一个对象.
2. 浅拷贝. 只拷贝一层. list.copy(), list[:]
3. 深拷贝. 和这个对象相关的内部信息全部拷贝一份. deepcopy() 原型模式

3.5 推导式

[结果 for循环 if判断]

 

 

4.0  tuple 元组

元组: 俗称不可变的列表.被成为只读列表, 元组也是python的基本数据类型之一, 用小括号括起来, 里面可以放任何数据类型的数据, 查询也可以. 循环也可以. 切片也可以. 但就是不能改

元组中如果只有一个元素. 一定要添加一个逗号, 否则就不是元组

 

dict 字典 [key:velue]

 

用大括号{} 括起来. 内部使用key:value的形式来保存数据

{'jay':'周杰伦', "jj":'林俊杰'} 注意:字典的key必须是可哈希的. 不可变的, value 没有限制 不是按照我们保存的顺序保存的, 无序的

网址: https://www.cnblogs.com/zhaodingding/p/9620086.html

set  集合

特点: 无序, 不重复, 元素必须可哈希(不可变) 
作用: 去重复 本身是可变的数据类型. 有增删改查操作.
frozenset()冻结的集合. 不可变的. 可哈希的

python中集合的运算:https://www.cnblogs.com/zhaodingding/p/9688495.html





五,用户交互

使用
input()函数,可以让我们和计算机互动起来
a = input("请输入你叫什么")
print(a)

 显示就会出来你输入的内容



六,流程if语句

 if的话,就像回家,我是应该走大道还是走小道,大道会遇到什么,小道的话会遇到什么.其实用if公式说实话,很皮的可以做很多事情,比如diss不会编程的人

学了这个突然有了学习的兴趣,毕竟皮一下很有趣哟~

 

if的话有三种语法:请拿好小本本记上~~~~

 

第一种语法:
if 条件: #引号是将条件与结果分开。
结果1。 # 四个空格,或者⼀个tab键,这个是告诉程序满⾜这个条件的
结果2。
如果条件是真(True) 执⾏结果1, 然后结果2, 如果条件假(False) 直接结果2

a = int(input("请输入一个数字"))
if a == 1:
    print("你回答的是1")
print("你回答的是其他的")

如果你输入的是1的话,他就会执行if条件后面的话

 

第二种if语法:

 

a = int(input("请输入一个数字"))
if a == 1:
    print("你回答的是1")
else:
    print("你回答的是其他的")

按照刚才的输入,就直接回答你输入的是1,没有你回答是其他的那句话了== 

 

第三种if语法:

 

a = int(input("请输入一个数字"))
if a == 1:
    print("你回答的是1")
elif a ==2:
    print("你回答的是2")
else:
    print("你回答的是其他的")

就和超市购物一样,如果你有100元去超市,你可以购买老干妈八罐,如果你有50,你可以购买几包乐事薯片,如果你有10元,你可以购买俩个冰棍.

如果你有5毛,你可能只能吃卫龙了......这个看你主要的条件是什么!

 

 第四种if语法(嵌套):

 

if gender == '女的':
	age = input("你多大了啊?") # 年龄大于60就不开门了. 小于60可以考虑
	if int(age) < 60:
		print("请进")
	else:
		print("大妈您去隔壁看看金老板")
else:
	print("不开不开我不开!")


可以⽆限的嵌套. 但是在实际开发中. 尽量不要超过三层嵌套

 

七,流程控制-while循环
这个东西很棒的!作为一个小喷子,恨不得给他们装上轰炸机,那我们就可以用Python模拟一个轰炸机一样的东西,这个就叫while,一直循环一句话,
就问你怕不怕!服不服!

 

循环的听一首歌:你试试?

while True:
print("你是我的小啊小苹果")
print("怎么爱你都不嫌多")
print("小苹果啊!小苹果!")

如果条件是真, 则直接执行结果. 然后再次判断条件. 直到条件是假. 停止循环
一直听这首歌曲,总有腻了的一天.那怎么办呢?
结束循环:
1,改变条件.
2,break
结束循环,break



八,流程控制-breakcontinue
1, break: 立刻跳出循环. 打断的意思

比如我要歌曲停止,需要摁暂停键这个东西就是break的意思....

 

while 1 :
    print("我很皮对不对")
    break

结果他就出现一遍了,就没有然后了.....为了能有一个回复我就得这样回答!~

 


2, continue: 停⽌本次循环, 继续执⾏下⼀次循环

while True:
    s = input("请开始喷:")
    if s == 'q':
        break   # 停止当前循环
    # 过滤掉晓梅
    if  "晓梅" in s: # 在xxx中出现了xx
        print("你输入的内容有少儿不宜. 不能输出")
        continue    # 停止当前本次循环. 继续执行下一次循环
    print("喷的内容是:"+s)

请get这个技能~~~

 

 



 

 

 

 

 

 

 

 

 

posted @ 2018-08-08 17:57  赵瑞鑫  阅读(462)  评论(0编辑  收藏  举报