学习Python最基础的语法知识,可以用代码快速实现一些简单的功能。
编码
编程初体验
1 2 3 输入:# -*- coding:gbk -*- 建议:所有python代码文件都要以UTF-8编码保存和读取。
输出
1 2 3 4 5 6 7 8 9 例如: print("看这风景美如画") print(" **") print(" ***") print(" ****") print(" *****") print(" ******")
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 默认print 在尾部会加换行符 print ("看着风景美如画" )print ("本想吟诗赠天下" )想不要换行,则可以这样干: print ("看这风景美如画" ,end="," )print ("本想吟诗赠天下" ,end="." )
练习题:
1 2 3 4 5 6 7 8 1. 使用print 输出自己的姓名2. 使用print 输出春眠不觉晓, 处处闻啼鸟。 夜来风雨声, 花落知多少。 3. 试用print 输出春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。
认识数据类型
刚上学时,老师教我们数字、拼音、汉字、真假判断等,然后我们根据学到的内容写作文,老师来检查并打分。
现在学编程,我教大家int、str、bool等,然后大家根据这些内容来写代码,写完代码交给python解释器去运行。
整型(int)
整形,整数。
整型,其实就是以前数学课上讲的整数(不包含小数),在写代码时用于表示整数相关的东西,例如:年龄、存款、尺寸、手机号等。一般我们提到的:5、18、22、99…等整数在python中都称为是整型,且支持加/减/乘/除/取余/指数 等操作。
1 2 3 4 5 6 7 8 9 print (2 + 10 ) 表示两个整型相加print (2 * 10 ) 表示两个整型相乘print (10 / 2 ) 表示两个整型相除print (10 % 3 ) 表示两个整型相除取余数print (2 ** 4 ) 表示乘方
字符串(str)
1 2 3 4 5 6 7 8 9 10 11 12 单行字符串(也就是不能换行) print ("我是Alex" )print ('我是Alex' )print ('我是“alex”' )print ("中国北京昌平区" )如果是这样: print ("我是 alex" )程序会报错.
1 2 3 4 5 6 7 8 9 多行字符串(可以表示多行数据,即可以换行。) 例如: print ("""中国北京昌平区""" )print ('''中国北京昌平区''' )print ("""中国北京 昌平区""" )
1 2 3 4 5 6 7 8 9 10 11 12 对于字符串的运算: ·加,两个字符串可以通过加号拼接起来。 例如: print (“alex”+“是金角大王吧”) 输出:alex是金角大王吧 在效果上等于: print (“alex是金角大王吧”) ·乘,让整形和字符串进行相乘,以实现让字符串重复出现N次并拼接起来 例如: print ( 3 * "我想吃饺子" ) 输出:我想吃饺子我想吃饺子我想吃饺子
布尔类型(bool)
1 2 3 4 5 6 7 8 9 10 11 例如: print (1 > 2 )print (False )输出:False False print (1 == 1 )print (True )输出:True True
布尔类型实例:
1 2 3 4 5 6 name = input ("请输入你的用户名:" ) if name == "alex" : print ("用户登录成功" ) else :print ("用户登录失败" )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 对于两个整型是可以进行比较的,也可以比较他是否相等 例如: 1 > 2 1 == 3 对于两个字符串之间也是可以进行比较的 例如: “alex” == “eric” 字符串和整型也是可以进行比较 例如: 1 == “alex” 输出:False 注意:整型和字符串之间不能比较大小 例如:1 > “alex” 这是无法进行比较大小的,程序在运行时会报错。
类型转换
int,整型定义时,必须是数字且无引号,例如:5、8、9
str,字符串定义时,必须用双引号括起来,例如:“中国”、“武沛齐”、“666”
bool,布尔值定义时,只能写True和Fales
不同的数据类型都有不同的功能,例如:整型可以加减乘除而字符串只能加(拼接)和乘法。
如果想要做转换可遵循一个基本规则:想转换什么类型就让他包裹一些。
例如:str(666)是将整型转换为字符串、int(“888”)是将字符串转
转换为整型
字符串转换为整型(渡可渡之人)
1 2 3 4 5 6 7 8 9 10 int ("666" ) 将字符串“666 ”转换为整型666 int ("999" ) 将字符串“999 ”转换为整型999 "6" + "9" 的结果应该是:"69" int ("6" ) + int ("9" )的结果是:15 特别的: int (“alex是sb”) 这种情况不能转换为整型,程序会报错。注意:在字符串转换为整型的时候一定是那些数字加上引号(例如:“9 ”)才能转换为整型
布尔类型转换为整型
1 2 int (True ) 转换完等于 1 int (False ) 转换完等于0
转换为字符串
1 2 3 4 5 6 7 8 9 10 str (345 ) 结果为:“345 ” (是字符串)str (666 ) + str (9 ) 结果为:“6669 ” (是字符串)str (True ) 结果为:“True ”str (False ) 结果为:“False ”
转换为布尔类型
整型转换为布尔类型
1 2 3 4 5 6 7 bool (1 ) 结果为:True bool (2 ) 结果为:True bool (0 ) 结果为:False bool (-10 ) 结果为:True 注意:整型转换为布尔类型的时候,只有0 转换为Falese,其他的整型都转换为True
字符串转换为布尔
1 2 3 4 5 6 bool (“alex”) 结果为:True bool (“沙坡帮你”) 结果为:True bool (“”) 结果为:False 注意:这里是空字符串bool (“ ”) 结果为:True 注意:这里是用按一个空格的字符串注意:在字符串转换为布尔类型的时候,只有空字符串转换为False ,其他字符串均转换为True
总结
1 2 3 4 5 6 7 8 三句话搞定类型转换: ·其他所有类型转换为布尔类型时,除了空字符串、0 以外其他都是True 。 ·字符串转整型时,只有那种“998 ”格式的字符串才可以转换为整型,其他都报错。 ·想要转换为哪种类型,就用这类型的英文包裹一下就行。 例如: str (...) int (...) bool (...)
练习题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1. 计算整型50 乘以10 再除以5 的商并使用print 输出。2. 判断整型8 是否大于10 的结果并使用print 输出3. 计算整型30 除以2 得到的余数并使用print 输出4. 使用字符串乘法实现把字符串“我爱我的祖国”创建三遍并拼接起来最终使用print 输出5. 判断字符串“wupeiqi”和“alex”是否相等的结果并使用print 输出6. 判断整型666 和整型666 是否相等的结果并使用print 输出7. 判断字符串“666 ”和整型666 是否相等的结果并使用print 输出8. 看代码写结果(禁止运行代码):print ( int ("100" )*3 )print ( int ("123" ) + int ("88" ))print ( str (111 ) + str (222 ) )print ( str (111 )*3 )print ( str (111 ) == 111 )print ( bool (-1 ))print ( bool (0 ) )print ( bool ("" ) )print ( bool ("你好" ) )print ( True == True )print ( True == False )print ( bool ("" ) == bool (0 ) )注意:类型转换不是改变原来的值,实际在底层是新创建了一个值。例如有整数6 ,然后使用str (6 )转化了一下得到“6 ”,实际上这个字符串“6 ”是依据整数6 新创建的。
变量
变量,其实就是我们生活中起别名和外号,让变量名指向某个值,格式为:【变量名 = 值】,以后可以通过变量名来操作其对应的值。
1 2 3 4 5 6 7 8 9 10 11 12 例如: name = "武沛齐" print(name) 输出结果:武沛齐 age = 18 name = "alex" flge = 1 > 18 address = "北京昌平" + "沙河" addr = "北京昌平" + "沙河" + name print(addr) 输出结果:北京昌平沙河alex print(flge) 输出结果:Fales
1 2 3 4 5 6 7 8 9 例如: age = 18 还可以这样写: number = 1 == 2 (前面的一个等于号指的是赋值,后面两个等于号是比较这两个值是否相等,如果相等则是True ,如果不想等则是False ) 注意: ·给变量赋值 例如:age = 18 ·让age代指值 例如: age = 18
变量名的规范
1 2 3 4 5 6 7 8 三个规范: ·变量名只能由字母、数字、下划线组成。 ·不能以数字开头 例如:9name = “alex” (这种情况会报错) ·不能使用python内置的关键字 例如:def = “alex” (def是python内置的关键字,这种情况会报错。) break = 123 (break也是python内置的关键字,这种情况也会报错) python的关键字有:and as assert break class continue def del elif else except exec finally for from global if import in is lambdo not or pass print raise return try while with yield......
1 2 3 4 5 6 7 8 9 下划线连接命名(小写) 例如: father_name = “wupeiqi” brother_age = 19 见名知意 age = 18 color = “red” current_user_name = “吉诺比利”
1 2 3 4 5 6 7 8 9 10 练习题: name = “吉诺比利” name0 = “帕克” name_1 = “邓肯” _coach = “波波维奇” _ = “卡哇伊” year_1_ = “1990” _1_year = “1990” nba-team = “马刺” new*name = “伦纳德”
变量内存指向关系
通过学习上述变量知识让我们对变量有了初步认识,接下来我们就要从稍稍高级一些的角度来学习变量,即:内存指向(在电脑的内存中是怎么存储的)。
情景一
在计算机的内存中创建一块区域保存字符串“wupeiqi”,name变量名则指向这块区域。
情景二
1 2 name = “wupeiqi” name = “alex”
在计算机的内存中创建一块区域保存字符串“wupeiqi”,name变量名则指向这块区域。然后又再内存中创建了一块区域保存字符串“alex”name变量名则指向“alex”所在的区域,不再指向“wupeiqi”所在区域(无人指向的数据会被标记为垃圾,由解释器自动化回收)
情景三
1 2 name = “wupeiqi” new_name = name
在计算机的内存中创建一块区域保存字符串“wupeiqi”,name变量名则指向这块区域。new_name变量名指向name变量,因为被指向的是变量名,所以自动会转指向到name变量代表的内存区域。
情景四
1 2 3 name = “wupeiqi” new_name = name name =”alex”
在计算机的内存中创建一块区域保存字符串“wupeiqi”,name变量名则指向这块区域(灰色线),然后new_name指向name所指向的内存区域,最后又创建了一块区域存放“alex”,让name变量指向“alex”所在区域。
情景五
在计算机的内存中创建一块区域保存整型18,name变量名则指向这块区域。通过类型转换依据整型18再在内存中创建一个字符串“18”,age变量指向保存这个字符串的内存区域。
练习题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 1. 看代码写结果 alex_length = 3 wupeiqi_length = 18 total = alex_length +wupeiqi_length print (total)2. 按要求写代码 age = 18 ming_age = 3. 看代码写结果nicekname = "一米八大高个" username = nicekname username = "弟弟" print (nicekname)print (username)4. 看代码写结果nickname = "一米八大高个" username = nickname nickname = "弟弟" print (nickname)print (username)5 看代码写结果nickname = "一米八大高个" username = "弟弟" text = username + nickname print (text)6 看代码写结果nickname = "一米八大高个" username = nickname nickname = "弟弟" text = username + nickname print (text)7. 看代码写结果string_number = "20" num = int (string_number) data = string_number * 3 print (data)value = num * 3 print (value)
补充
print()函数
上面的只是print函数的简单用法
现在对print函数的可选项进行补充
1 print (输出项1 [,输出项2 ,...,输出项n,sep=分隔符,end=结束符])
print()函数的简单用法 :输出不同类型的变量和常量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1. 输出整型a = 1 print (a)2. 输出字符串a = "abc" print (a)3. 输出列表a = {"a" ,"b" ,"c" } print (a)
print()函数输出多个变量
1 2 3 4 5 6 7 8 9 10 11 12 a = 1 b = 2 c = 3 print (a,b,c)a = "abc" b = "de" c = "fh" print (a,b,c)
print()函数修改分隔符