一、序列
(一)字符串
定义字符串单双引号都可以。
例子:根据年份计算生肖。
chinese_zodiac = '鸡猴狗猪鼠牛虎兔龙蛇马羊'
year=2019
print(chinese_zodiac[year%12])
字符串其他操作:
print(chinese_zodiac[0]) #访问第0个元素
print(chinese_zodiac[0:4]) #访问第0到4个元素
print(chinese_zodiac[-1]) #倒着访问第1个元素
print('狗'in chinese_zodiac)
print('狗' not in chinese_zodiac)
print(chinese_zodiac+chinese_zodiac) //连接两个字符串
print(chinese_zodiac+'abcd')
print(chinese_zodiac*3) #字符串重复三遍
(二)元组
例子:根据生日判断星座。
思路:将(2,15)与zodic_days中保存的元组比较,找到(2,15)小于zodic_days中元组的个数,此处为2,将2对应到zodic_name中为“水瓶座”。
zodic_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')
zodic_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))
(month,day) = (2,15) #用户输入的生日
zodic_day = filter(lambda x:x <= (month,day),zodic_days)
zodic_len = len(list(zodic_day))
print(zodic_name[zodic_len])
代码讲解:
1.zodic_name中的u表示Unicode,标志星座,防止出现乱码。
2.希望月份和日期能够同时存储,用到的是元组的功能,(1,20)即一个元组。将这些元组放在一起再加一个括号,就组成了一个新的元组,即元组嵌套。
3.关于元组的比较:
4.filter函数
(三)列表
列表与元组的区别是:
列表使用中括号,元组使用小括号;
列表中存储的元素是可变更的,元组中存储的元素是不可变更的。
a_list = ['abc','xyz']
a_list.append('N') #列表增加元素
print(a_list)
a_list.remove('abc') #列表中删除元素
print(a_list)
二、条件语句
x = 22
if x==20:
print('x==20')
elif x<20:
print('x<20')
else:
print('x>20')
例子:根据用户输入的年份输出生肖。
chinese_zodiac = '鸡猴狗猪鼠牛虎兔龙蛇马羊'
year = int(input('请输入出生年份:')) #inpu函数接收用户输入,int强制转换类型
if chinese_zodiac[year % 12] == '猪':
print('猪年运势:………………')
三、循环语句
(一)for循环
使用for语句遍历字符串:
chinese_zodiac = '鸡猴狗猪鼠牛虎兔龙蛇马羊'
for cz in chinese_zodiac:
print(cz)
for的其他用法:
借助range函数:可以接收一个或两个参数
for i in range(13): #输出13个元素,即输出0——12
print(i)
for i in range(1,13): #输出1——12
print(i)
例子:输出某年的生肖。
chinese_zodiac = '鸡猴狗猪鼠牛虎兔龙蛇马羊'
for year in range(2000,2020):
print('%s 年的生肖是 %s' %(year, chinese_zodiac[year%12]))
(二)while循环
num=5
while True:
print(num)
num = num+1
if num > 10:
break #跳出循环
import time
num=5
while True:
num = num+1
if num == 10:
continue #跳出当前循环
print(num)
time.sleep(1) #输出一个值后,让程序先暂停一下
(三)for循环中的if嵌套
例子:根据用户输入的月份和日期判断星座。
zodic_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')
zodic_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))
int_month = int(input('month:'))
int_day = int(input('day:'))
for user_date in range(len(zodic_days)):
if zodic_days[user_date] >= (int_month,int_day):
print(zodic_name[user_date])
break
elif int_month == 12 and int_day > 23:
print(zodic_name[0])
break
(四)while循环中的if嵌套
例子:根据用户输入的月份和日期判断星座。
代码1:
zodic_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')
zodic_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))
int_month = int(input('month:'))
int_day = int(input('day:'))
n=0
while n in range(len(zodic_days)):
if (int_month,int_day) < zodic_days[0]:
print(zodic_name[n])
else:
n += 1
代码2:
zodic_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')
zodic_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))
int_month = int(input('month:'))
int_day = int(input('day:'))
n=0
while (int_month,int_day) >= zodic_days[n]:
if int_month ==12 and int_day > 23:
break
n+=1
print(zodic_name[n])
四、字典的定义和操作
字典的定义
dict2 = {'x':1,'y':2}
字典元素的增加:
dict2 = {'x':1,'y':2}
dict2['z']=3
print(dict2)
实例:用字典统计用户输入的生肖和星座。
chinese_zodiac = '鸡猴狗猪鼠牛虎兔龙蛇马羊'
zodic_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')
zodic_days = ((1,20),(2,19),(3,21),(4,21),(5,21),(6,22),(7,23),(8,23),(9,23),(10,23),(11,23),(12,23))
#定义生肖和星座的字典
cz_num = {}
for i in chinese_zodiac:
cz_num[i] = 0
z_num = {}
for i in zodic_name:
z_num[i] = 0
while True:
# 用户输入
int_year = int(input('year:'))
int_month = int(input('month:'))
int_day = int(input('day:'))
# 输出星座
n = 0
while (int_month, int_day) >= zodic_days[n]:
if int_month == 12 and int_day > 23:
break
n += 1
print(zodic_name[n])
# 输出生肖
print('%s 年的生肖是 %s' % (int_year, chinese_zodiac[int_year % 12]))
# 用字典统计用户输入信息
cz_num[chinese_zodiac[int_year%12]] += 1
z_num[zodic_name[n]] +=1
# 输出生肖和星座的统计信息
for each_key in cz_num.keys():
print('生肖 %s 有%d 个' % (each_key, cz_num[each_key]))
for each_key in z_num.keys():
print('星座 %s 有 %d 个' % (each_key, z_num[each_key]))
五、列表推导式与字典推导式
(一)列表推导式
#从1到10,所有偶数的平方
#未使用推导式
alist = []
for i in range(1,11):
if(i%2==0):
alist.append(i*i)
print(alist)
#使用推导式
blist = [i*i for i in range(1,11) if i%2==0]
print(blist)
(二)字典推导式
zodic_name = (u'摩羯座',u'水瓶座',u'双鱼座',u'白羊座',u'金牛座',u'双子座',u'巨蟹座',u'狮子座',u'处女座',u'天秤座',u'天蝎座',u'射手座')
#非推导式
z_num = {}
for i in zodic_name:
z_num[i] = 0
print(z_num)
#推导式
z1_num = {i:0 for i in zodic_name}
print(z1_num)