Python攻克之路-基础介绍篇
1.IDE介绍及设置:集成开发环境(IDE,Integrated Development Environment )
VIM #经典的linux下的文本编辑器
Emacs #linux 文本编辑器, 比vim更容易使用
Eclipse # Java IDE,支持python, c ,c++
Visual Studio # 微软开发的 IDE, python,c++,java,C#
notepad++ ,
sublime python开发的
Pycharm ,是主要用于python开发的ide
设置修改默认作者和日期:settings --> Editor --> File and Code Templates --> Python Script --> 使用变量${USER} ,${DATE}
使用技巧:给程序打断点,在程序左边显示行号的地方点击,然后右击debug运行
2.引号:在Python中,单引号与双引号是没有区别的,只是在一些特别场景中一起使用以示区别,如print "hello,it's raining"
三引号:可以注释,还可以打印多行
[root@zabbix py]# cat print_more_lines.py #!/usr/local/python3/bin/python3 msg = ''' you are great you you''' print(msg) [root@zabbix py]# python3 print_more_lines.py you are great you you
3.字符格式化输出
占位符 %s s = string
%d d = digit 整数
%f f = float 浮点数,约等于小数
[root@zabbix day1]# cat printif.py
#!/usr/local/python3/bin/python3
name = input("Name: ")
age = int(input("Age: "))
job = input("Job: ")
salary = input("Salary: ")
if salary.isdigit: #判断是否数据,是就转换成整数
salary = int(salary)
else:
print('input the real digit')
msg = '''
Name = %s
Age = %s
Job = %s
Salary = %f #可以定义是以什么格式输出
You will retire after %s years
'''%(name,age,job,salary,66-age)
print(msg)
4.数据类型-数值、布尔值、字符串简介
数据运算
数据类型出初识
数字
整数 int(integer)
整型:数据有限
长整型:数据大
in py3 已经不区分整型与长整型,统一都叫整型
in C int age 22 , long age
布尔 只有2种状态,分别是
真 True
假 False
a = 9 b = 7 a < b False a > b True
(1).字符串
salary.isdigit()
计算机中, 一切皆为对象
世界万物,皆为对象,一切对象皆可分类
字符串之间是可以用加号拼接的,但是相当于多开内存
>>> name = "reid"
>>> age = "22"
>>> print ("my name is" + name + age)
my name isreid22
循环loop
有限循环 ,次数限制
无限循环=死循环
continue 结束本次循环,继续下一次循环
break 跳出整个当前的循环
循环取奇数:
[root@zabbix day1]# cat loop.py
#!/usr/local/python3/bin/python3
for i in range(1,101): ##range可以产生序列
if i % 2 == 1: ##整除2得1的奇数,得0是偶数
print("loop: ",i)
[root@zabbix day1]# python3 loop.py
loop: 1
loop: 3
loop: 5
loop: 7
[root@zabbix day1]# cat loop.py
#!/usr/local/python3/bin/python3
for i in range(1,101,2): ##直接使用range的步长
print("loop: ",i)
应用例子:登陆程序简单版
[root@zabbix day1]# cat login.py
#!/usr/local/python3/bin/python3
_user = "reid"
_passwd = "123"
for i in range(3):
username = input("username: ")
password = input("password: ")
if username == _user and password == _passwd:
print("welcome")
break
else:
print("wrong")
标志位的使用
[root@zabbix day1]# cat login.py
#!/usr/local/python3/bin/python3
_user = "reid"
_passwd = "123"
passed_authentication = False ##标志位,默认为False
for i in range(3):
username = input("username: ")
password = input("password: ")
if username == _user and password == _passwd:
print("welcome")
passed_authentication = True ##登陆成功后,标志为True
break
else:
print("wrong")
if not passed_authentication: ##如果False,则操作
print('you lost serveral times')
使用for循环与else结合,实现标志位的效果
[root@zabbix day1]# cat login.py
#!/usr/local/python3/bin/python3
_user = "reid"
_passwd = "123"
for i in range(3):
username = input("username: ")
password = input("password: ")
if username == _user and password == _passwd:
print("welcome") ##
break #中断后,不会执行最后的else语句
else:
print("wrong")
else: #如果for循环正常执行,中间没有被中断过,else就会正常执行
print('you lost serveral times
使用while循环替换for循环
[root@zabbix day1]# cat login_while.py
#!/usr/local/python3/bin/python3
_user = "reid"
_passwd = "123"
couter = 0 #设置计数器
while couter < 3: #当couter <3的条件成立,就表示为True,才会执行如下代码
username = input("username: ")
password = input("password: ")
if username == _user and password == _passwd:
print("welcome")
break
else:
print("wrong")
couter += 1 ##计数,默认为0,执行一次+1,当到3时代码就执行下来的else
else:
print('you lost serveral times')
增加需求:更改三次后还是继续使用
[root@zabbix day1]# cat login_while.py
#!/usr/local/python3/bin/python3
_user = "reid"
_passwd = "123"
counter = 0
while counter < 3:
username = input("username: ")
password = input("password: ")
if username == _user and password == _passwd:
print("welcome")
break
else:
print("wrong")
counter += 1
if counter == 3: ##先判断已经是三次
keep_trying = input("try again: [y/n]")
if keep_trying == 'y': ##如果选y后,让计数器重新为0
counter = 0
else:
print('you lost serveral times')
使用continue与标志位结合
[root@zabbix day1]# cat continue.py
#!/usr/local/python3/bin/python3
for i in range(10):
if i < 5:
print("layer1",i)
continue
for j in range(3):
print("layer2",j)
if j == 3:
exit_tag = True ##标志位,如果j=3时会退出
break
if exit_tag: ##如果标志位是为真,这时循环也会退出
break
(2).Python数据类型之列表的使用
描述:把某些数据存储下来,以实现增删查改
method1:
一般情况下存储,以变量的形式,缺点:有多少变量,就要用多少空间来存,最大问题他们之间没有任何关联性
name0 = 'a' name1 = 'b' name2 = 'c' name3 = 'd' name4 = 'e'
method2: 只是把数据存储下来,对其中的进行操作都很难实现
names = 'a b c d e'
method3: 列表形式存储,这种有位置关系,有下标,实现增删改查
number=['a','b','c','d','e']
列表
查 : 索引(下标) ,都是从0开始
切片
.count 查某个元素的出现次数
.index 根据内容找其对应的位置
"hi" in a 列表里是否有某个元素
切片:查的操作,左包括,右不包括number[1:3] ,负号是从右往左走,第三个值是步长 print(number[1:]) # [1:] 取到最后一个值 print(number[1:-1]) # 取到倒数最后二个值 print(number[1:-1:1]) # 从左到右一个一个取 print(number[1:-1:2]) # 从左到右隔一个取一个 print(number[3::-2]) # 负号是从右开始走,第一个值下标是3,步长是2,中间是空是表示到最后
增加
a.append() 追加
a.insert(index, "内容")
a.extend 扩展
append
number.append('guanwei') # append里面是放的是添加内容的值,其实number是一个对象
print(number)
insert
number.insert(0,'guanwei') # 第一个值是位置,insert执行时,还有一步查询的动作
print(number)
修改
a[index] = "新的值"
a[start:end] = [a,b,c]
修改 通过取出某值赋值的形式来修改 number[1]='taindi' print(number) 修改两个值 number[1:3]=['you','me'] ## 中间赋值多个,如果没有对应赋值,会被删除 print(number)
删除
remove("内容")
pop(index)
del a, del a[index]
a.clear() 清空
删除 remove pop del
remove 删除只对应内容,元素。为能用下标
number.remove('a')
print(number)
pop 删除后还会返回给对应的值,看需求,有时删除后还要对其内容进行操作
不指定默认是删除最后一个
number.pop(0)
print(number)
you=number.pop(0) # 有返回值
print(you)
del 怎么删除都可以,甚至对象
del number[0]
print(number)
补充:取多个一样的值不同位置的方法
a = ['wuchao','jinxin','xiaohu','ligang','sanpang','ligang']
first_lg_index = a.index("ligang") # 取和一个lg
print("first_lg_index",first_lg_index)
以第一个lg为开始,做切片,加1不想以第一个lg为开始,直接以'sanpang','ligang'开始
little_list = a[first_lg_index+1:]
print(little_list)
second_lg_index = little_list.index("ligang") # 在小列表里以取第二个lg
print("second_lg_ligang",second_lg_index)
在第一个的基础上+上第二个加1
second_lg_index_in_big_list = first_lg_index + second_lg_index +1
print("second_lg_index_in_big_list",second_lg_index_in_big_list)
print("second lg: ",a[second_lg_index_in_big_list])
其它方法:
extend
>>> a = [1,2,3] >>> b = [4,5,6] >>> a.extend(b) >>> print(a) [1, 2, 3, 4, 5, 6] >>> print(b) [4, 5, 6]
排序
sort () 排序 x = [3,4,1,2] x.sort() print(x) reverse() 倒序 a = ['wuchao','jinxin','xiaohu','ligang','sanpang','ligang'] a.reverse() print(a)
身份判断
>>> type(a) is list True
(3).Python数据类型之tuple(元组)
元组被称为只读列表,即数据可以被查询,但不能被修改,所以,列表的切片操作同样适用于元组。
虽然tuple的元素不可改变,但它可以包含可变的对象,比如List列表构造包含0个或1个元素的元组比较特殊,所以有一些额外的语法法则
注意:元组里面加一个逗号,无论有无值
作用:
1.对于一些数据我们不想被修改,可以使用元组
2.另外,元组的意义不害于,元组可以在映射,(和集合成员)中当作使用一一列表则不行
元组作为很多内建函数和方法的返回值存在。

浙公网安备 33010602011771号