Python基础(1)——输入输出/循环/条件判断/基本数据类型

一、编程语言

1、 编译型语言:先编译,再执行 (先编译成二进制)

举例:英文书翻译成中文再看

C、C++、C#

2、解释型语言:一边执行一边编译

举例:英文书找个翻译,它翻译一行你听一行

php、js、python、java、go

 

二、输入输出

1、基础字符类型

name = '小黑'#字符串 str
age = 18 #整数类型  int
score = 97.5 #浮点型  float

2、输入输出

your_name = input('请输入你的名字:')
# python2中用raw_input
print('你的名字是:',your_name)

 

 备注:

1) input接收到的都是string类型,需要强制转换

2)单引号和双引号

使用时无区别,依据具体情况使用

word1 = "let's go"
word2 = 'tom is very "shy"'
word3 = '''let's go ,tom is very "shy"'''
print(word1)
print(word2)
print(word3)

 

3、注释

对选中代码进行注释:注释快捷键ctrl+/

多行注释 :三个引号(单引号/双引号)

print('hello world!')

# 单行注释

""" 双引号注释 多行注释 """ ''' 单引号注释 多行注释 ''' print('hello world!')

 

三、条件判断

1、运算符

>、<、 >=、 <=、 !=、==

2、if ... elif ... else

score = input('请输入你的分数:')
score = int(score)    #input接收到的都是string类型,需要强制转换
if score >= 90:
    print("优秀")
elif score<90 and score>=75:
    print("良好")
elif score>=60 and score<75:
    print("及格")
else:
    print("不及格")

if score == 90:
    print("猜对了")
if score != 83:
    print("不等于83")

 

三、循环、遍历、迭代

 while: 需要定义计数器,每次循环计数器增加,否则就会变成死循环

break:循环里面遇到break循环立即结束

continiue:循环里面遇到continue,结束本次循环

type(val) 查看变量的类型

循环对应的else:当循环正常结束后(不是通过break结束),会执行else中代码

 1、python中的while循环

1)break

count = 0 #计数器
rate = 140
while count<10:
    if rate >160 :
        break
    print("跑圈", count)
    count = count+1
    rate+=5

 

2)continue

count = 0 #计数器
rate = 140
while count<10:
    count = count+1
    if rate >160 :
        rate -= 10
        continue
    print("跑圈", count)
    rate += 5

count =1  跑圈1   rate=145

count =2  跑圈2   rate=150

count =3  跑圈3  rate=155

count =4  跑圈4  rate=160

count =5  跑圈5  rate=165 

count =6  rate=165  进if  rate=155 遇到continue不打印跑圈直接进入下一次循环

count =7  跑圈7   rate=160

count =8  跑圈8   rate=165

count =9   rate=165 进if  rate=155 遇到continue不打印跑圈直接进入下一次循环

count =10  跑圈10   rate=160

 

2、python中的for循环

1)for循环

rate=130,跑到第7圈后休息

rate = 130
for i in range(10):
    print("跑圈", i)
    if rate > 160:
        print("休息")
        break
    rate +=5

 2)for...else

循环对应的else:

    当循环正常结束后,会执行else中的代码,不是通过break结束的。

     例如 本来循环10次,循环十次后正常结束,会执行else。

for i in range(10):
    print(i)
else:
    print('什么时候执行')

 非正常结束:

for i in range(10):
    print(i)
    if i== 8:
        break
else:
    print('什么时候执行')

备注:while... else同样

count=0
while count<3:
    print(count)
    count+=1
else:
    print("执行else")

 

练习:

写一个小游戏:猜数字

# 最多输入5次,如果猜的数字不对,提示大了或小了,猜对了游戏结束,如果次数用尽没猜对,提示已经到达次数

分析:

import random
number = random.randint(1,100)
for i in range(5):
    guess = input("请输入你猜测的数字:")
    guess = int(guess)
    if guess==number:
        print("恭喜你猜对了,游戏结束")
        break
    elif guess>number:
        print("猜的数字大了")
        continue
    else:
        print("猜的数字小了")
        continue
else:
    print("错误次数过多")

方法二:使用continue实现

import random
number = random.randint(1,100)
for i in range(5):
    guess = input("请输入你猜测的数字:")
    guess = int(guess)
    if guess==number:
        print("恭喜你猜对了,游戏结束")
        break
    elif guess>number:
        print("猜的数字大了")
        continue
    else:
        print("猜的数字小了")
        continue
else:
    print("错误次数过多")

 

四、运算

1、常用运算符号:

+    -    *     /      //      %

+=  -+  *=    /=   //=  

2、地板除:

print(5//2)     #地板除,不要小数部分

#pyhon2 里面默认 /就是地板触发    5/2=2   5/2.0=2.5

3、取模:

print(5%2)      #取余数,取模

4、a+=1       #a=a+1

print(5//2) 

print(5%2) 

a=1
a+=1     #a=a+1
print(a)

print(1.5+2)

 

 5、字符串中的+ 和 *

a='my name is'
b='Marry'
print(a+' '+b)
print(b*3)

 

五、字符串格式化

1、加号连接

import datetime
name='小明'
welcome = '小明,欢迎登陆'
today = datetime.datetime.today()

print(name + ',欢迎登陆.'+'今天的日期是:'+str(today))#不推荐会在内存开创3个空间

 

 2、占位符 %s字符串 %d整数型 %f浮点型

import datetime
name='小明'
today = datetime.datetime.today()

 welcome = '%s,欢迎登陆' %name  print(welcome) welcome = '%s,欢迎登陆,今天的日期是 %s' % (name,today)  print(welcome)

age = 18
age_str = '你的年龄是:%d' %age
print(age_str)

score = 73.985
score_str = '你的成绩是:%f' %score
score_str2 = '你的成绩是:%.2f' %score  #保留2位小数
print(score_str)
print(score_str2)

 

3、大括号方式(适合参数较多的情况)

.format(大括号中定义的变量=赋值的变量)
sub_name = 'Lily'
today = datetime.datetime.today()
score = 98.133
addr="北京"

welcome = '{name1},欢迎登陆,今天的日期是{today1}'.format(today1=today,name1=sub_name)
print(welcome)
welcome2 = '{},欢迎登陆,今天的日期是{}'.format(sub_name,today)
print(welcome2)

 

六、列表

Python内置的一种数据类型是列表:list。

list是一种有序的集合,可以随时添加和删除其中的元素。

1)增加

append('xxxxx')  向列表末尾增加元素

insert(位置脚标,'xxxxxx') 向指定位置增加元素

student_new = ['张三','李四','王五']
print("增加")
student_new.append('Marry') #向列表末尾增加元素
student_new.insert(0,'Tom') #向指定位置增加元素
print(student_new[0])
print(student_new)
print(student_new[-1])

 

2)修改

直接赋值

#修改
#['Tom', '张三', '李四', '王五', 'Marry']
print("修改")
student_new[2]='Lisi'
print(student_new)

 

3)删除

4种方式删除

# ['Tom', '张三', 'Lisi', '王五', 'Marry']
print("删除")
print("1、传入指定下标,删除元素")
#1、传入指定下标,删除元素
student_new.pop(1)
print(student_new)
#2、删除指定的元素(删除第一个符合的)
print("2、删除指定的元素")
student_new.remove('Lisi')
print(student_new)
#3
print("3 del ")
del student_new[-1]
print(student_new)
#4清空
print("4清空 ")
student_new.clear()
print(student_new)

 

 

4)查询

student_new = ['张三','李四','王五']
z_count = student_new.count('张三')#统计list中某元素出现的次数
print(z_count)
print(student_new.index('张三')) #找某元素下标

 

5)把一个列表中的元素加入到另一个列表中 extend()

student_new = ['张三','李四','王五']
student_new2 = ['MARRY','TOM','JACK']
student_new.extend(student_new2)
print(student_new)

 

6)反转reverse()

#['张三', '李四', '王五', 'MARRY', 'TOM', 'JACK']
print("反转list")
student_new.reverse();
print('reverse反转之后:',student_new)

 

7)排序

升序:sort()

降序.sort(reverse=True)

print("排序")
student_new = ['MARRY','TOM','JACK']
student_new.sort()
print(student_new)
numbers = [323,455,98,11,556,899,6]
numbers.sort() #默认升序排列
print(numbers)
numbers.sort(reverse=True)#降序排列
print(numbers)

 

8)多维列表

student_info = [
    [1,'tom','beijing'],
    [2,'mary','shanghai'],
    [3,'lily','tianjin']
]
student_info2 = [
    [1,'tom','beijing',['bmz','benz','audi']],
    [2,'mary','shanghai',['bmz','benz','audi']],
    [3,'lily','tianjin']
]
student_info[0][-1]='山东'
print(student_info)

student_info2[0][-1].append('特斯拉')
print(student_info2)

student_info2[0].pop(2)
print(student_info2) #beijing删除了

student_info2[2].append(['五菱宏光','英菲尼迪'])
print(student_info2)

 

练习:

录入学生信息判断学生是否存在,如果已经存在提示并继续添加

直到输入over,结束

分析:

 

student = ['lhy','hzy','fd']

while 1>0:
    a = input('请输入学生:')
    if a == 'over':
        break
    #elif student.count(a)>0:
    elif a  in student:  #用in判断是否在list中 ; elif a not in student:不在list中
        print("已经存在")
    else:
        student.append(a)
        print("已添加%s"%a)
print('录入成功')
print(student)

 

练习2:打印多维数组中元素

 备注:len() 列表长度

student_info2 = [
    [1,'lhy','beijing'],
    [2,'hzy','beijing'],
    [3,'ljj','beijing']
]

index = 0
student_len=len(student_info2) #list长度
while index < student_len:
    stu = student_info2[index]
print(stu) stuid= stu[0] name = stu[1] addr = stu[2] sql = 'insert into student value ({id},"{name}","{addr}");'.format( id=stuid,name=name,addr=addr ) print(sql)

用拆包方式

student_info2 = [
    [1,'lhy','beijing'],
    [2,'hzy','beijing'],
    [3,'ljj','beijing']
]

index = 0
student_len=len(student_info2) #list长度
while index < student_len:
    stu = student_info2[index]
 stuid,name,addr=stu  #拆包代替以上代码(变量名称必须与数组中数量一致) sql = 'insert into student value ({id},"{name}","{addr}");'.format(id=stuid,name=name,addr=addr) print(sql) index+=1

 

 

 用for循环:

for stu in student_info2:
    stuid2,name2,addr2=stu
    sql = 'insert into student value ({id},"{name}","{addr}");'.format(
        id=stuid2,name=name2,addr=addr2
    )
    print(sql)

 

9)延伸学习——元祖tuple

另一种有序列表叫元组:tuple,tuple和list非常类似,但是tuple一旦初始化就不能修改,它没有append(),insert()这样的方法。

 student= ('张三', '李四', '王五')

获取元素:print(student[0]),但不能赋值成另外的元素

tuple的意义:因为tuple不可变,所以代码更安全。

 

 七、布尔类型

#bool 布尔类型
# true 真
# false 假

l = [1,2,3,4]
print(1>2)
print(4 in l)
print(1 not  in l)
print(len(l)>3)

 

posted @ 2020-08-13 15:32  白羽归楼  阅读(601)  评论(0)    收藏  举报